
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Type propagation algorithm not settling */

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

{
  char cVar1;
  char *pcVar2;
  long lVar3;
  FILE *__stream;
  char *pcVar4;
  Filename *pFVar5;
  int iVar6;
  int iVar7;
  int iVar8;
  uint uVar9;
  char *pcVar10;
  byte *pbVar11;
  byte *pbVar12;
  bool bVar13;
  bool bVar14;
  undefined1 uVar15;
  bool bVar16;
  undefined1 uVar17;
  byte bVar18;
  undefined1 auStack_2c [8];
  size_t local_24;
  int local_20;
  undefined4 uStack_14;
  
  bVar18 = 0;
  iVar7 = 6;
  uStack_14 = 0x15b6e;
  bVar13 = &stack0xfffffff0 < (undefined1 *)0x1c;
  bVar16 = &stack0x00000000 == (undefined1 *)0x2c;
  pbVar11 = (byte *)p;
  pbVar12 = (byte *)"-load";
  do {
    if (iVar7 == 0) break;
    iVar7 = iVar7 + -1;
    bVar13 = *pbVar11 < *pbVar12;
    bVar16 = *pbVar11 == *pbVar12;
    pbVar11 = pbVar11 + 1;
    pbVar12 = pbVar12 + 1;
  } while (bVar16);
  bVar14 = false;
  bVar13 = (!bVar13 && !bVar16) == bVar13;
  if (bVar13) {
    if (value == (char *)0x0) {
      return -2;
    }
    if (need_save < 0) {
      return 2;
    }
    do_defaults(value,conf);
    loaded_session = 1;
    cmdline_session_name = dupstr(value);
    return 2;
  }
  iVar7 = 5;
  pbVar11 = (byte *)p;
  pbVar12 = &DAT_0004b0b5;
  do {
    if (iVar7 == 0) break;
    iVar7 = iVar7 + -1;
    bVar14 = *pbVar11 < *pbVar12;
    bVar13 = *pbVar11 == *pbVar12;
    pbVar11 = pbVar11 + 1;
    pbVar12 = pbVar12 + 1;
  } while (bVar13);
  bVar16 = false;
  bVar13 = (!bVar14 && !bVar13) == bVar14;
  if (bVar13) {
    if (need_save < 0) {
      return 1;
    }
    if (((byte)cmdline_tooltype & 3) == 0) {
      if (need_save == 0) {
        default_protocol = 3;
        default_port = 0x16;
        iVar7 = 3;
LAB_00015c0d:
        conf_set_int(conf,2,iVar7);
        conf_set_int(conf,1,default_port);
        return 1;
      }
      goto LAB_00015c78;
    }
    goto LAB_00015d50;
  }
  iVar7 = 8;
  pbVar11 = (byte *)p;
  pbVar12 = (byte *)"-telnet";
  do {
    if (iVar7 == 0) break;
    iVar7 = iVar7 + -1;
    bVar16 = *pbVar11 < *pbVar12;
    bVar13 = *pbVar11 == *pbVar12;
    pbVar11 = pbVar11 + 1;
    pbVar12 = pbVar12 + 1;
  } while (bVar13);
  bVar14 = false;
  bVar13 = (!bVar16 && !bVar13) == bVar16;
  if (bVar13) {
    if (need_save < 0) {
      return 1;
    }
    if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;
    if (need_save == 0) {
      default_protocol = 1;
      default_port = 0x17;
      iVar7 = 1;
      goto LAB_00015c0d;
    }
    goto LAB_00015c78;
  }
  iVar7 = 8;
  pbVar11 = (byte *)p;
  pbVar12 = (byte *)"-rlogin";
  do {
    if (iVar7 == 0) break;
    iVar7 = iVar7 + -1;
    bVar14 = *pbVar11 < *pbVar12;
    bVar13 = *pbVar11 == *pbVar12;
    pbVar11 = pbVar11 + 1;
    pbVar12 = pbVar12 + 1;
  } while (bVar13);
  bVar16 = false;
  bVar13 = (!bVar14 && !bVar13) == bVar14;
  if (bVar13) {
    if (need_save < 0) {
      return 1;
    }
    if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;
    if (need_save == 0) {
      default_protocol = 2;
      default_port = 0x201;
      iVar7 = 2;
      goto LAB_00015c0d;
    }
    goto LAB_00015c78;
  }
  iVar7 = 5;
  pbVar11 = (byte *)p;
  pbVar12 = &DAT_0004b0ca;
  do {
    if (iVar7 == 0) break;
    iVar7 = iVar7 + -1;
    bVar16 = *pbVar11 < *pbVar12;
    bVar13 = *pbVar11 == *pbVar12;
    pbVar11 = pbVar11 + 1;
    pbVar12 = pbVar12 + 1;
  } while (bVar13);
  bVar14 = false;
  bVar13 = (!bVar16 && !bVar13) == bVar16;
  if (bVar13) {
    if (need_save < 0) {
      return 1;
    }
    if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;
    if (need_save != 0) goto LAB_00015c78;
    uVar15 = auStack_2c < (undefined1 *)0x4;
    uVar17 = &stack0x00000000 == (undefined1 *)0x30;
    default_protocol = 0;
    conf_set_int(conf,2,0);
    iVar7 = 8;
    pbVar11 = (byte *)p;
    pbVar12 = (byte *)"-serial";
    do {
      if (iVar7 == 0) break;
      iVar7 = iVar7 + -1;
      uVar15 = *pbVar11 < *pbVar12;
      uVar17 = *pbVar11 == *pbVar12;
      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;
      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;
    } while ((bool)uVar17);
    bVar13 = false;
    bVar16 = (!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15;
    if (bVar16) {
      if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;
      goto LAB_00015dd0;
    }
    iVar7 = 3;
    pbVar11 = (byte *)p;
    pbVar12 = &DAT_0004b0d7;
    do {
      if (iVar7 == 0) break;
      iVar7 = iVar7 + -1;
      bVar13 = *pbVar11 < *pbVar12;
      bVar16 = *pbVar11 == *pbVar12;
      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;
      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;
    } while (bVar16);
    bVar13 = (!bVar13 && !bVar16) == bVar13;
    if (bVar13) goto LAB_00015e28;
LAB_00015e31:
    iVar7 = 1;
  }
  else {
    iVar7 = 8;
    pbVar11 = (byte *)p;
    pbVar12 = (byte *)"-serial";
    do {
      if (iVar7 == 0) break;
      iVar7 = iVar7 + -1;
      bVar14 = *pbVar11 < *pbVar12;
      bVar13 = *pbVar11 == *pbVar12;
      pbVar11 = pbVar11 + 1;
      pbVar12 = pbVar12 + 1;
    } while (bVar13);
    bVar16 = false;
    bVar13 = (!bVar14 && !bVar13) == bVar14;
    if (bVar13) {
      if (need_save < 0) {
        return 1;
      }
      if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;
      if (need_save != 0) goto LAB_00015c78;
LAB_00015dd0:
      default_protocol = 4;
      conf_set_int(conf,2,4);
      pcVar2 = conf_get_str(conf,0);
      uVar15 = (undefined1 *)0xfffffff3 < &stack0xffffffc4;
      uVar17 = &stack0x00000000 == (undefined1 *)0x30;
      conf_set_str(conf,0x39,pcVar2);
      iVar7 = 3;
      pbVar11 = (byte *)p;
      pbVar12 = &DAT_0004b0d7;
      do {
        if (iVar7 == 0) break;
        iVar7 = iVar7 + -1;
        uVar15 = *pbVar11 < *pbVar12;
        uVar17 = *pbVar11 == *pbVar12;
        pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;
        pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;
      } while ((bool)uVar17);
      bVar13 = (!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15;
      if (bVar13) goto LAB_00015e28;
      goto LAB_00015e31;
    }
    iVar7 = 3;
    pbVar11 = (byte *)p;
    pbVar12 = &DAT_0004b0d7;
    do {
      if (iVar7 == 0) break;
      iVar7 = iVar7 + -1;
      bVar16 = *pbVar11 < *pbVar12;
      bVar13 = *pbVar11 == *pbVar12;
      pbVar11 = pbVar11 + 1;
      pbVar12 = pbVar12 + 1;
    } while (bVar13);
    if ((!bVar16 && !bVar13) == bVar16) {
      if (need_save < 0) {
        return 1;
      }
LAB_00015e28:
      flags = flags | 1;
      bVar13 = flags == 0;
      goto LAB_00015e31;
    }
    iVar7 = 0;
    bVar13 = true;
  }
  bVar16 = false;
  iVar8 = 3;
  pbVar11 = (byte *)p;
  pbVar12 = (byte *)0x53a29;
  do {
    if (iVar8 == 0) break;
    iVar8 = iVar8 + -1;
    bVar16 = *pbVar11 < *pbVar12;
    bVar13 = *pbVar11 == *pbVar12;
    pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;
    pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;
  } while (bVar13);
  bVar14 = false;
  bVar13 = (!bVar16 && !bVar13) == bVar16;
  if (bVar13) {
    if (value == (char *)0x0) {
      return -2;
    }
    if (need_save < 0) {
      return 2;
    }
    if (((byte)cmdline_tooltype & 2) != 0) goto LAB_000161c3;
    if (need_save != 0) goto LAB_00016123;
    uVar15 = auStack_2c < (undefined1 *)0x4;
    uVar17 = &stack0x00000000 == (undefined1 *)0x30;
    conf_set_str(conf,0x34,value);
    iVar7 = 9;
    pbVar11 = (byte *)p;
    pbVar12 = (byte *)"-loghost";
    do {
      if (iVar7 == 0) break;
      iVar7 = iVar7 + -1;
      uVar15 = *pbVar11 < *pbVar12;
      uVar17 = *pbVar11 == *pbVar12;
      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;
      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;
    } while ((bool)uVar17);
    bVar13 = false;
    bVar16 = (!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15;
    if (bVar16) {
      if (((byte)cmdline_tooltype & 2) != 0) goto LAB_000161c3;
      goto LAB_00015ec5;
    }
    iVar7 = 9;
    pbVar11 = (byte *)p;
    pbVar12 = (byte *)"-hostkey";
    do {
      if (iVar7 == 0) break;
      iVar7 = iVar7 + -1;
      bVar13 = *pbVar11 < *pbVar12;
      bVar16 = *pbVar11 == *pbVar12;
      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;
      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;
    } while (bVar16);
    bVar13 = (!bVar13 && !bVar16) == bVar13;
    if (bVar13) goto LAB_00016218;
LAB_00016248:
    iVar7 = 2;
LAB_0001624d:
    bVar16 = false;
    iVar8 = 3;
    pbVar11 = (byte *)p;
    pbVar12 = &DAT_0004b0ec;
    do {
      if (iVar8 == 0) break;
      iVar8 = iVar8 + -1;
      bVar16 = *pbVar11 < *pbVar12;
      bVar13 = *pbVar11 == *pbVar12;
      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;
      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;
    } while (bVar13);
    bVar13 = (!bVar16 && !bVar13) == bVar16;
    if (bVar13) {
LAB_00016647:
      if (value == (char *)0x0) {
        return -2;
      }
      if (need_save < 0) {
        return 2;
      }
      if (((byte)cmdline_tooltype & 3) != 0) goto LAB_000161c3;
      bVar13 = need_save == 0;
      if (!bVar13) goto LAB_00016123;
      goto LAB_00015f8f;
    }
LAB_0001626b:
    bVar16 = false;
    iVar8 = 3;
    pbVar11 = (byte *)p;
    pbVar12 = &DAT_0004b0ef;
    do {
      if (iVar8 == 0) break;
      iVar8 = iVar8 + -1;
      bVar16 = *pbVar11 < *pbVar12;
      bVar13 = *pbVar11 == *pbVar12;
      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;
      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;
    } while (bVar13);
    bVar14 = false;
    bVar13 = (!bVar16 && !bVar13) == bVar16;
    if (bVar13) goto LAB_00016647;
    iVar8 = 3;
    pbVar11 = (byte *)p;
    pbVar12 = (byte *)0x53a3b;
    do {
      if (iVar8 == 0) break;
      iVar8 = iVar8 + -1;
      bVar14 = *pbVar11 < *pbVar12;
      bVar13 = *pbVar11 == *pbVar12;
      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;
      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;
    } while (bVar13);
    bVar16 = false;
    bVar13 = (!bVar14 && !bVar13) == bVar14;
    if (bVar13) goto LAB_00016647;
    iVar8 = 4;
    pbVar11 = (byte *)p;
    pbVar12 = &DAT_0004b0fd;
    do {
      if (iVar8 == 0) break;
      iVar8 = iVar8 + -1;
      bVar16 = *pbVar11 < *pbVar12;
      bVar13 = *pbVar11 == *pbVar12;
      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;
      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;
    } while (bVar13);
    bVar13 = (!bVar16 && !bVar13) == bVar16;
    if (!bVar13) goto LAB_00016698;
    if (value == (char *)0x0) {
      return -2;
    }
    if (need_save < 0) {
      return 2;
    }
    if (((byte)cmdline_tooltype & 3) != 0) goto LAB_000161c3;
    if (need_save != 0) goto LAB_00016123;
LAB_000162ed:
    pcVar2 = host_strchr(value,0x3a);
    if (pcVar2 == (char *)0x0) {
      cmdline_error("-nc expects argument of form \'host:port\'");
      return 2;
    }
    iVar7 = 2;
    pcVar4 = dupprintf("%.*s");
    conf_set_str(conf,0x2e,pcVar4);
    lVar3 = strtol(pcVar2 + 1,(char **)0x0,10);
    uVar15 = (undefined1 *)0xfffffff3 < &stack0xffffffc4;
    uVar17 = &stack0x00000000 == (undefined1 *)0x30;
    conf_set_int(conf,0x2f,lVar3);
    safefree(pcVar4);
    iVar8 = 3;
    pbVar11 = (byte *)p;
    pbVar12 = &DAT_0004b101;
    do {
      if (iVar8 == 0) break;
      iVar8 = iVar8 + -1;
      uVar15 = *pbVar11 < *pbVar12;
      uVar17 = *pbVar11 == *pbVar12;
      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;
      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;
    } while ((bool)uVar17);
    bVar13 = (!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15;
    if (!bVar13) goto LAB_000166e0;
    if (((byte)cmdline_tooltype & 3) != 0) goto LAB_000161c3;
LAB_0001639b:
    iVar7 = 0;
    pcVar2 = (char *)0x0;
    __stream = fopen64(value,"r");
    local_24 = 0;
    if (__stream == (FILE *)0x0) {
      cmdline_error("unable to open command file \"%s\"");
      return 2;
    }
    while (iVar8 = fgetc(__stream), iVar8 != -1) {
      if (iVar7 < (int)local_24) {
        pcVar2[iVar7] = (char)iVar8;
      }
      else {
        local_24 = iVar7 + 0x200;
        local_20 = iVar8;
        pcVar2 = (char *)saferealloc(pcVar2,local_24,1);
        pcVar2[iVar7] = (char)local_20;
      }
      iVar7 = iVar7 + 1;
    }
    if (iVar7 < (int)local_24) {
      pcVar2[iVar7] = '\0';
    }
    else {
      pcVar2 = (char *)saferealloc(pcVar2,iVar7 + 0x200,1);
      pcVar2[iVar7] = '\0';
    }
    iVar7 = 2;
    fclose(__stream);
    conf_set_str(conf,0x14,pcVar2);
    conf_set_str(conf,0x15,"");
    uVar15 = (undefined1 *)0xfffffff3 < &stack0xffffffc4;
    uVar17 = &stack0x00000000 == (undefined1 *)0x30;
    conf_set_int(conf,0x16,1);
    safefree(pcVar2);
    iVar8 = 3;
    pbVar11 = (byte *)p;
    pbVar12 = &DAT_0004b104;
    do {
      if (iVar8 == 0) break;
      iVar8 = iVar8 + -1;
      uVar15 = *pbVar11 < *pbVar12;
      uVar17 = *pbVar11 == *pbVar12;
      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;
      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;
    } while ((bool)uVar17);
    bVar13 = (!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15;
    if (!bVar13) goto LAB_00016777;
    if (((byte)cmdline_tooltype & 2) != 0) goto LAB_000161c3;
LAB_000164a7:
    lVar3 = strtol(value,(char **)0x0,10);
    conf_set_int(conf,1,lVar3);
    iVar7 = strcmp(p,"-pw");
    if (iVar7 == 0) {
      if (((byte)cmdline_tooltype & 2) != 0) goto LAB_000161c3;
LAB_000164f6:
      iVar7 = conf_get_int(conf,2);
      if (iVar7 == 3) {
        cmdline_password = dupstr(value);
        uVar9 = 0xffffffff;
        pcVar2 = value;
        do {
          if (uVar9 == 0) break;
          uVar9 = uVar9 - 1;
          cVar1 = *pcVar2;
          pcVar2 = pcVar2 + (uint)bVar18 * -2 + 1;
        } while (cVar1 != '\0');
        smemclr(value,~uVar9 - 1);
      }
      else {
        cmdline_error("the -pw option can only be used with the SSH protocol");
      }
      iVar7 = strcmp(p,"-agent");
      if ((iVar7 == 0) || (iVar7 = strcmp(p,"-pagent"), iVar7 == 0)) goto LAB_00015d3a;
      iVar7 = 2;
      iVar8 = strcmp(p,"-pageant");
      if (iVar8 == 0) goto LAB_0001688c;
    }
    else {
      iVar7 = strcmp(p,"-agent");
      if (iVar7 == 0) {
LAB_00015d3a:
        if (((byte)cmdline_tooltype & 2) != 0) goto LAB_00015d50;
        goto LAB_000168a1;
      }
      iVar7 = 2;
      iVar8 = strcmp(p,"-pagent");
      if (iVar8 == 0) goto LAB_0001688c;
LAB_0001685f:
      iVar8 = strcmp(p,"-pageant");
      if (iVar8 == 0) goto LAB_00016884;
    }
    iVar8 = strcmp(p,"-noagent");
    if ((iVar8 == 0) || (iVar8 = strcmp(p,"-nopagent"), iVar8 == 0)) {
LAB_00016e5e:
      if (need_save < 0) {
        return 1;
      }
LAB_00016e44:
      if (((byte)cmdline_tooltype & 2) != 0) goto LAB_00015d50;
      if (need_save != 0) goto LAB_00015c78;
      goto LAB_000168e1;
    }
LAB_000165eb:
    iVar8 = strcmp(p,"-nopageant");
    if (iVar8 == 0) goto LAB_00016e5e;
    iVar8 = strcmp(p,"-A");
    if (iVar8 != 0) {
      iVar8 = strcmp(p,"-a");
      if (iVar8 != 0) goto LAB_00016f0f;
      if (need_save < 0) {
        return 1;
      }
      goto LAB_0001700b;
    }
    if (need_save < 0) {
      return 1;
    }
    if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;
    if (need_save != 0) goto LAB_00015c78;
LAB_00016921:
    conf_set_int(conf,0x1d,1);
    iVar7 = strcmp(p,"-a");
    if (iVar7 != 0) {
      iVar7 = 1;
      iVar8 = strcmp(p,"-X");
      if (iVar8 == 0) goto LAB_00016f38;
LAB_00016f97:
      iVar8 = strcmp(p,"-x");
      if (iVar8 != 0) goto LAB_0001704f;
      if (need_save < 0) {
        return 1;
      }
LAB_00016fc4:
      if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;
      if (need_save != 0) goto LAB_00015c78;
      goto LAB_000169e4;
    }
    if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;
LAB_00016961:
    conf_set_int(conf,0x1d,0);
    iVar7 = strcmp(p,"-X");
    if (iVar7 == 0) {
      if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;
      goto LAB_000169a1;
    }
    iVar7 = 1;
    iVar8 = strcmp(p,"-x");
    if (iVar8 == 0) goto LAB_00016fc4;
LAB_0001704f:
    iVar8 = strcmp(p,"-t");
    if (iVar8 == 0) {
      if (need_save < 0) {
        return 1;
      }
      goto LAB_0001707c;
    }
LAB_000177b1:
    iVar8 = strcmp(p,"-T");
    if (iVar8 != 0) goto LAB_00017759;
    if (need_save < 0) {
      return 1;
    }
LAB_0001770d:
    if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;
    if (need_save != 0) goto LAB_00017091;
LAB_00016a67:
    conf_set_int(conf,0x16,1);
    iVar7 = strcmp(p,"-N");
    if (iVar7 == 0) {
      if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;
LAB_00016aa7:
      conf_set_int(conf,0x2d,1);
      iVar7 = strcmp(p,"-C");
      if (iVar7 == 0) {
        if (((byte)cmdline_tooltype & 2) != 0) goto LAB_00015d50;
        goto LAB_00016ae7;
      }
      iVar7 = 1;
      iVar8 = strcmp(p,"-1");
      if (iVar8 != 0) goto LAB_00017647;
LAB_000175ed:
      if (((byte)cmdline_tooltype & 2) != 0) goto LAB_00015d50;
      if (need_save != 0) goto LAB_00015c78;
      goto LAB_00016b27;
    }
    iVar7 = 1;
    iVar8 = strcmp(p,"-C");
    if (iVar8 == 0) goto LAB_0001762d;
LAB_00017679:
    iVar8 = strcmp(p,"-1");
    if (iVar8 == 0) {
      if (need_save < 0) {
        return 1;
      }
      goto LAB_000175ed;
    }
LAB_00017647:
    iVar8 = strcmp(p,"-2");
    if (iVar8 == 0) {
      if (need_save < 0) {
        return 1;
      }
LAB_000175ad:
      if (((byte)cmdline_tooltype & 2) != 0) goto LAB_00015d50;
      if (need_save != 0) {
LAB_00015c78:
        cmdline_save_param(p,value,0);
        return 1;
      }
LAB_00016b67:
      iVar7 = 1;
      conf_set_int(conf,0x21,3);
    }
  }
  else {
    iVar8 = 9;
    pbVar11 = (byte *)p;
    pbVar12 = (byte *)"-loghost";
    do {
      if (iVar8 == 0) break;
      iVar8 = iVar8 + -1;
      bVar14 = *pbVar11 < *pbVar12;
      bVar13 = *pbVar11 == *pbVar12;
      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;
      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;
    } while (bVar13);
    bVar16 = false;
    bVar13 = (!bVar14 && !bVar13) == bVar14;
    if (!bVar13) {
      iVar8 = 9;
      pbVar11 = (byte *)p;
      pbVar12 = (byte *)"-hostkey";
      do {
        if (iVar8 == 0) break;
        iVar8 = iVar8 + -1;
        bVar16 = *pbVar11 < *pbVar12;
        bVar13 = *pbVar11 == *pbVar12;
        pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;
        pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;
      } while (bVar13);
      bVar13 = (!bVar16 && !bVar13) == bVar16;
      if (bVar13) {
        if (value == (char *)0x0) {
          return -2;
        }
        if (need_save < 0) {
          return 2;
        }
LAB_00016218:
        if (((byte)cmdline_tooltype & 2) != 0) goto LAB_000161c3;
        if (need_save != 0) goto LAB_00016123;
        goto LAB_00015f0d;
      }
      goto LAB_0001624d;
    }
    if (value == (char *)0x0) {
      return -2;
    }
    if (need_save < 0) {
      return 2;
    }
    if (((byte)cmdline_tooltype & 2) != 0) goto LAB_000161c3;
    if (need_save != 0) goto LAB_00016123;
LAB_00015ec5:
    uVar15 = auStack_2c < (undefined1 *)0x4;
    uVar17 = &stack0x00000000 == (undefined1 *)0x30;
    conf_set_str(conf,9,value);
    iVar7 = 9;
    pbVar11 = (byte *)p;
    pbVar12 = (byte *)"-hostkey";
    do {
      if (iVar7 == 0) break;
      iVar7 = iVar7 + -1;
      uVar15 = *pbVar11 < *pbVar12;
      uVar17 = *pbVar11 == *pbVar12;
      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;
      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;
    } while ((bool)uVar17);
    bVar13 = (!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15;
    if (!bVar13) goto LAB_00016248;
    if (((byte)cmdline_tooltype & 2) != 0) goto LAB_000161c3;
LAB_00015f0d:
    pcVar2 = dupstr(value);
    iVar7 = validate_manual_hostkey(pcVar2);
    uVar15 = 0;
    uVar17 = iVar7 == 0;
    if ((bool)uVar17) {
      cmdline_error("\'%s\' is not a valid format for a manual host key specification");
      safefree(pcVar2);
      return 2;
    }
    iVar7 = 2;
    conf_set_str_str(conf,0xad,pcVar2,"");
    safefree(pcVar2);
    iVar8 = 3;
    pbVar11 = (byte *)p;
    pbVar12 = &DAT_0004b0ec;
    do {
      if (iVar8 == 0) break;
      iVar8 = iVar8 + -1;
      uVar15 = *pbVar11 < *pbVar12;
      uVar17 = *pbVar11 == *pbVar12;
      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;
      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;
    } while ((bool)uVar17);
    bVar13 = (!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15;
    if (!bVar13) goto LAB_0001626b;
    bVar13 = ((byte)cmdline_tooltype & 3) == 0;
    if (!bVar13) goto LAB_000161c3;
LAB_00015f8f:
    bVar16 = false;
    iVar7 = 3;
    pbVar11 = (byte *)p;
    pbVar12 = (byte *)0x53a3b;
    do {
      if (iVar7 == 0) break;
      iVar7 = iVar7 + -1;
      bVar16 = *pbVar11 < *pbVar12;
      bVar13 = *pbVar11 == *pbVar12;
      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;
      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;
    } while (bVar13);
    if ((!bVar16 && !bVar13) == bVar16) {
      pcVar2 = dupprintf("L%s");
      pcVar4 = dupstr("D");
    }
    else {
      pcVar2 = host_strchr(value,0x3a);
      pcVar4 = pcVar2;
      if (pcVar2 == (char *)0x0) {
        cmdline_error("-%c expects at least two colons in its argument");
        return 2;
      }
      do {
        pcVar10 = pcVar4;
        pcVar4 = pcVar2;
        pcVar2 = host_strchr(pcVar4 + 1,0x3a);
      } while (pcVar2 != (char *)0x0);
      pcVar2 = dupprintf("%c%.*s");
      pcVar4 = dupstr(pcVar10 + 1);
    }
    uVar15 = (undefined1 *)0xffffffef < &stack0xffffffc4;
    uVar17 = &stack0x00000000 == (undefined1 *)0x2c;
    iVar7 = 2;
    conf_set_str_str(conf,0x9b,pcVar2,pcVar4);
    safefree(pcVar2);
    safefree(pcVar4);
    iVar8 = 4;
    pbVar11 = (byte *)p;
    pbVar12 = &DAT_0004b0fd;
    do {
      if (iVar8 == 0) break;
      iVar8 = iVar8 + -1;
      uVar15 = *pbVar11 < *pbVar12;
      uVar17 = *pbVar11 == *pbVar12;
      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;
      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;
    } while ((bool)uVar17);
    bVar13 = (!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15;
    if (bVar13) {
      if (((byte)cmdline_tooltype & 3) != 0) goto LAB_000161c3;
      goto LAB_000162ed;
    }
LAB_00016698:
    bVar16 = false;
    iVar8 = 3;
    pbVar11 = (byte *)p;
    pbVar12 = &DAT_0004b101;
    do {
      if (iVar8 == 0) break;
      iVar8 = iVar8 + -1;
      bVar16 = *pbVar11 < *pbVar12;
      bVar13 = *pbVar11 == *pbVar12;
      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;
      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;
    } while (bVar13);
    bVar13 = (!bVar16 && !bVar13) == bVar16;
    if (bVar13) {
      if (value == (char *)0x0) {
        return -2;
      }
      if (need_save < 0) {
        return 2;
      }
      if (((byte)cmdline_tooltype & 3) != 0) goto LAB_000161c3;
      if (need_save != 0) goto LAB_00016123;
      goto LAB_0001639b;
    }
LAB_000166e0:
    bVar16 = false;
    iVar8 = 3;
    pbVar11 = (byte *)p;
    pbVar12 = &DAT_0004b104;
    do {
      if (iVar8 == 0) break;
      iVar8 = iVar8 + -1;
      bVar16 = *pbVar11 < *pbVar12;
      bVar13 = *pbVar11 == *pbVar12;
      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;
      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;
    } while (bVar13);
    bVar13 = (!bVar16 && !bVar13) == bVar16;
    if (bVar13) {
      if (value == (char *)0x0) {
        return -2;
      }
      if (need_save < 0) {
        return 2;
      }
      if (((byte)cmdline_tooltype & 2) != 0) goto LAB_000161c3;
      if (need_save != 0) goto LAB_00016723;
      goto LAB_000164a7;
    }
LAB_00016777:
    bVar16 = false;
    iVar8 = 4;
    pbVar11 = (byte *)p;
    pbVar12 = &DAT_0004b107;
    do {
      if (iVar8 == 0) break;
      iVar8 = iVar8 + -1;
      bVar16 = *pbVar11 < *pbVar12;
      bVar13 = *pbVar11 == *pbVar12;
      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;
      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;
    } while (bVar13);
    if ((!bVar16 && !bVar13) == bVar16) {
      if (value == (char *)0x0) {
        return -2;
      }
      if (need_save < 0) {
        return 2;
      }
      if (((byte)cmdline_tooltype & 2) != 0) goto LAB_000161c3;
      if (need_save != 0) goto LAB_00016723;
      goto LAB_000164f6;
    }
    iVar8 = strcmp(p,"-agent");
    if ((iVar8 != 0) && (iVar8 = strcmp(p,"-pagent"), iVar8 != 0)) goto LAB_0001685f;
LAB_00016884:
    if (need_save < 0) {
      return 1;
    }
LAB_0001688c:
    if (((byte)cmdline_tooltype & 2) != 0) goto LAB_00015d50;
    if (need_save != 0) goto LAB_00015c78;
LAB_000168a1:
    conf_set_int(conf,0x1c,1);
    iVar7 = strcmp(p,"-noagent");
    if (iVar7 != 0) {
      iVar7 = 1;
      iVar8 = strcmp(p,"-nopagent");
      if (iVar8 != 0) goto LAB_000165eb;
      goto LAB_00016e44;
    }
    if (((byte)cmdline_tooltype & 2) != 0) goto LAB_00015d50;
LAB_000168e1:
    conf_set_int(conf,0x1c,0);
    iVar7 = strcmp(p,"-A");
    if (iVar7 == 0) {
      if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;
      goto LAB_00016921;
    }
    iVar7 = 1;
    iVar8 = strcmp(p,"-a");
    if (iVar8 == 0) {
LAB_0001700b:
      if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;
      if (need_save != 0) goto LAB_00015c78;
      goto LAB_00016961;
    }
LAB_00016f0f:
    iVar8 = strcmp(p,"-X");
    if (iVar8 != 0) goto LAB_00016f97;
    if (need_save < 0) {
      return 1;
    }
LAB_00016f38:
    if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;
    if (need_save != 0) goto LAB_00015c78;
LAB_000169a1:
    conf_set_int(conf,0x95,1);
    iVar7 = strcmp(p,"-x");
    if (iVar7 == 0) {
      if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;
LAB_000169e4:
      conf_set_int(conf,0x95,0);
      iVar7 = strcmp(p,"-t");
      if (iVar7 == 0) {
        if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;
        goto LAB_00016a27;
      }
      iVar7 = 1;
      iVar8 = strcmp(p,"-T");
      if (iVar8 == 0) goto LAB_0001770d;
LAB_00017759:
      iVar8 = strcmp(p,"-N");
      if (iVar8 != 0) goto LAB_00017727;
      if (need_save < 0) {
        return 1;
      }
LAB_000176cd:
      if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;
      if (need_save != 0) goto LAB_00015c78;
      goto LAB_00016aa7;
    }
    iVar7 = 1;
    iVar8 = strcmp(p,"-t");
    if (iVar8 != 0) goto LAB_000177b1;
LAB_0001707c:
    if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;
    if (need_save != 0) goto LAB_00017091;
LAB_00016a27:
    conf_set_int(conf,0x16,0);
    iVar7 = strcmp(p,"-T");
    if (iVar7 == 0) {
      if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;
      goto LAB_00016a67;
    }
    iVar7 = 1;
    iVar8 = strcmp(p,"-N");
    if (iVar8 == 0) goto LAB_000176cd;
LAB_00017727:
    iVar8 = strcmp(p,"-C");
    if (iVar8 != 0) goto LAB_00017679;
    if (need_save < 0) {
      return 1;
    }
LAB_0001762d:
    if (((byte)cmdline_tooltype & 2) != 0) goto LAB_00015d50;
    if (need_save != 0) goto LAB_00015c78;
LAB_00016ae7:
    conf_set_int(conf,0x17,1);
    iVar7 = strcmp(p,"-1");
    if (iVar7 == 0) {
      if (((byte)cmdline_tooltype & 2) != 0) goto LAB_00015d50;
LAB_00016b27:
      conf_set_int(conf,0x21,0);
      iVar7 = strcmp(p,"-2");
      if (iVar7 == 0) {
        if (((byte)cmdline_tooltype & 2) != 0) {
LAB_00015d50:
          cmdline_error("option \"%s\" not available in this tool");
          return 1;
        }
        goto LAB_00016b67;
      }
    }
    else {
      iVar7 = strcmp(p,"-2");
      if (iVar7 == 0) goto LAB_000175ad;
    }
    iVar7 = 1;
  }
  iVar8 = strcmp(p,"-i");
  if (iVar8 == 0) {
    if (value == (char *)0x0) {
      return -2;
    }
    if (need_save < 0) {
      return 2;
    }
    if (((byte)cmdline_tooltype & 2) != 0) goto LAB_000161c3;
    if (need_save != 0) goto LAB_00016123;
    pFVar5 = filename_from_str(value);
    conf_set_filename(conf,0x20,pFVar5);
    filename_free(pFVar5);
    iVar7 = strcmp(p,"-4");
    if ((iVar7 == 0) || (iVar7 = strcmp(p,"-ipv4"), iVar7 == 0)) goto LAB_00017485;
    iVar7 = strcmp(p,"-6");
    if (iVar7 == 0) goto LAB_00016c88;
    iVar7 = 2;
    iVar8 = strcmp(p,"-ipv6");
joined_r0x000174dc:
    if (iVar8 == 0) goto LAB_00016c88;
  }
  else {
    iVar8 = strcmp(p,"-4");
    if ((iVar8 == 0) || (iVar8 = strcmp(p,"-ipv4"), iVar8 == 0)) {
      if (need_save < 0) {
        return 1;
      }
      if (need_save != 0) {
LAB_00017091:
        cmdline_save_param(p,value,1);
        return 1;
      }
LAB_00017485:
      conf_set_int(conf,3,1);
      iVar7 = strcmp(p,"-6");
      if (iVar7 != 0) {
        iVar7 = 1;
        iVar8 = strcmp(p,"-ipv6");
        goto joined_r0x000174dc;
      }
    }
    else {
      iVar8 = strcmp(p,"-6");
      if ((iVar8 != 0) && (iVar8 = strcmp(p,"-ipv6"), iVar8 != 0)) goto LAB_00016ca6;
      if (need_save < 0) {
        return 1;
      }
      if (need_save != 0) goto LAB_00017091;
    }
LAB_00016c88:
    iVar7 = 1;
    conf_set_int(conf,3,2);
  }
LAB_00016ca6:
  iVar8 = strcmp(p,"-sercfg");
  if (iVar8 == 0) {
    if (value == (char *)0x0) {
      return -2;
    }
    if (need_save < 0) {
      return 2;
    }
    if (((byte)cmdline_tooltype & 3) != 0) goto LAB_000161c3;
    if (need_save != 0) {
LAB_00016723:
      cmdline_save_param(p,value,1);
      return 2;
    }
    iVar7 = conf_get_int(conf,2);
    pcVar2 = value;
    if (iVar7 != 4) {
      cmdline_error("the -sercfg option can only be used with the serial protocol");
    }
    for (; *pcVar2 != '\0'; pcVar2 = pcVar2 + iVar8 + iVar7) {
      pcVar4 = strchr(pcVar2,0x2c);
      if (pcVar4 == (char *)0x0) {
        uVar9 = 0xffffffff;
        iVar7 = 0;
        pcVar4 = pcVar2;
        do {
          if (uVar9 == 0) break;
          uVar9 = uVar9 - 1;
          cVar1 = *pcVar4;
          pcVar4 = pcVar4 + (uint)bVar18 * -2 + 1;
        } while (cVar1 != '\0');
        iVar8 = ~uVar9 - 1;
      }
      else {
        *pcVar4 = '\0';
        iVar7 = 1;
        iVar8 = (int)pcVar4 - (int)pcVar2;
      }
      if (iVar8 == 1) {
        iVar6 = (int)*pcVar2;
        switch(iVar6 - 0x31U & 0xff) {
        case 0:
        case 1:
          conf_set_int(conf,0x3c,(iVar6 + -0x30) * 2);
          break;
        default:
          cmdline_error("Unrecognised suboption \"-sercfg %c\"");
          break;
        case 4:
        case 5:
        case 6:
        case 7:
        case 8:
          conf_set_int(conf,0x3b,iVar6 + -0x30);
          break;
        case 0x13:
          conf_set_int(conf,0x3e,3);
          break;
        case 0x1d:
          conf_set_int(conf,0x3e,0);
          break;
        case 0x21:
          conf_set_int(conf,0x3e,2);
          break;
        case 0x27:
          conf_set_int(conf,0x3e,1);
          break;
        case 0x34:
          conf_set_int(conf,0x3d,2);
          break;
        case 0x3c:
          conf_set_int(conf,0x3d,3);
          break;
        case 0x3d:
          conf_set_int(conf,0x3d,0);
          break;
        case 0x3e:
          conf_set_int(conf,0x3d,1);
          break;
        case 0x42:
          conf_set_int(conf,0x3d,4);
        }
      }
      else if ((iVar8 == 3) && (iVar6 = strncmp(pcVar2,"1.5",3), iVar6 == 0)) {
        conf_set_int(conf,0x3c,3);
      }
      else {
        lVar3 = strtol(pcVar2,(char **)0x0,10);
        if (lVar3 == 0) {
          cmdline_error("Unrecognised suboption \"-sercfg %s\"");
        }
        else {
          conf_set_int(conf,0x3a,lVar3);
        }
      }
    }
    iVar7 = strcmp(p,"-sessionlog");
    if (iVar7 == 0) {
      if (((byte)cmdline_tooltype & 1) != 0) goto LAB_000161c3;
      goto LAB_0001722b;
    }
    iVar7 = strcmp(p,"-sshlog");
    if (iVar7 != 0) goto LAB_000173ff;
LAB_000173c4:
    if (((byte)cmdline_tooltype & 2) != 0) goto LAB_000161c3;
    if (need_save != 0) {
LAB_00016123:
      cmdline_save_param(p,value,0);
      return 2;
    }
  }
  else {
    iVar8 = strcmp(p,"-sessionlog");
    if (iVar8 != 0) {
      iVar8 = strcmp(p,"-sshlog");
      if (iVar8 != 0) goto LAB_00017404;
LAB_000173b1:
      if (value == (char *)0x0) {
        return -2;
      }
      if (need_save < 0) {
        return 2;
      }
      goto LAB_000173c4;
    }
    if (value == (char *)0x0) {
      return -2;
    }
    if (need_save < 0) {
      return 2;
    }
    if (((byte)cmdline_tooltype & 1) != 0) goto LAB_000161c3;
    if (need_save != 0) goto LAB_00016123;
LAB_0001722b:
    pFVar5 = filename_from_str(value);
    conf_set_filename(conf,0x77,pFVar5);
    conf_set_int(conf,0x78,2);
    filename_free(pFVar5);
    iVar7 = strcmp(p,"-sshlog");
    if (iVar7 != 0) {
LAB_000173ff:
      iVar7 = 2;
LAB_00017404:
      iVar8 = strcmp(p,"-sshrawlog");
      if (iVar8 != 0) {
        iVar8 = strcmp(p,"-proxycmd");
        if (iVar8 != 0) {
          return iVar7;
        }
        if (value == (char *)0x0) {
          return -2;
        }
        if (need_save < 0) {
          return 2;
        }
        if (((byte)cmdline_tooltype & 2) != 0) goto LAB_000161c3;
        if (need_save != 0) goto LAB_00016123;
        goto LAB_00017304;
      }
      goto LAB_000173b1;
    }
    if (((byte)cmdline_tooltype & 2) != 0) goto LAB_000161c3;
  }
  pFVar5 = filename_from_str(value);
  conf_set_filename(conf,0x77,pFVar5);
  iVar7 = strcmp(p,"-sshlog");
  conf_set_int(conf,0x78,4 - (uint)(iVar7 == 0));
  filename_free(pFVar5);
  iVar7 = strcmp(p,"-proxycmd");
  if (iVar7 != 0) {
    return 2;
  }
  if (((byte)cmdline_tooltype & 2) == 0) {
LAB_00017304:
    conf_set_int(conf,0xd,5);
    conf_set_str(conf,0x12,value);
    return 2;
  }
LAB_000161c3:
  cmdline_error("option \"%s\" not available in this tool");
  return 2;
}



/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Type propagation algorithm not settling */

undefined4 FUN_00015b60(byte *param_1,char *param_2,int param_3)

{
  char cVar1;
  FILE *__stream;
  int iVar2;
  long lVar3;
  char *pcVar4;
  int iVar5;
  uint uVar6;
  undefined4 uVar7;
  char *pcVar8;
  byte *pbVar9;
  int iVar10;
  byte *pbVar11;
  bool bVar12;
  bool bVar13;
  undefined1 uVar14;
  bool bVar15;
  undefined1 uVar16;
  byte bVar17;
  undefined1 auStack_2c [8];
  int local_24;
  int local_20;
  undefined4 uStack_14;
  
  bVar17 = 0;
  iVar5 = 6;
  uStack_14 = 0x15b6e;
  bVar12 = &stack0xfffffff0 < (undefined1 *)0x1c;
  bVar15 = &stack0x00000000 == (undefined1 *)0x2c;
  pbVar9 = param_1;
  pbVar11 = (byte *)"-load";
  do {
    if (iVar5 == 0) break;
    iVar5 = iVar5 + -1;
    bVar12 = *pbVar9 < *pbVar11;
    bVar15 = *pbVar9 == *pbVar11;
    pbVar9 = pbVar9 + 1;
    pbVar11 = pbVar11 + 1;
  } while (bVar15);
  bVar13 = false;
  bVar12 = (!bVar12 && !bVar15) == bVar12;
  if (bVar12) {
    if (param_2 == (char *)0x0) {
      return 0xfffffffe;
    }
    if (param_3 < 0) {
      return 2;
    }
    thunk_FUN_000249b0();
    DAT_0006f2f4 = 1;
    DAT_0006f2f8 = FUN_00019990();
    return 2;
  }
  iVar5 = 5;
  pbVar9 = param_1;
  pbVar11 = &DAT_0004b0b5;
  do {
    if (iVar5 == 0) break;
    iVar5 = iVar5 + -1;
    bVar13 = *pbVar9 < *pbVar11;
    bVar12 = *pbVar9 == *pbVar11;
    pbVar9 = pbVar9 + 1;
    pbVar11 = pbVar11 + 1;
  } while (bVar12);
  bVar15 = false;
  bVar12 = (!bVar13 && !bVar12) == bVar13;
  if (bVar12) {
    if (param_3 < 0) {
      return 1;
    }
    if ((DAT_0006f0a0 & 3) == 0) {
      if (param_3 == 0) {
        DAT_0006f2dc = 3;
        DAT_0006f2e4 = 0x16;
LAB_00015c0d:
        FUN_000183f0();
        FUN_000183f0();
        return 1;
      }
      goto LAB_00015c78;
    }
    goto LAB_00015d50;
  }
  iVar5 = 8;
  pbVar9 = param_1;
  pbVar11 = (byte *)"-telnet";
  do {
    if (iVar5 == 0) break;
    iVar5 = iVar5 + -1;
    bVar15 = *pbVar9 < *pbVar11;
    bVar12 = *pbVar9 == *pbVar11;
    pbVar9 = pbVar9 + 1;
    pbVar11 = pbVar11 + 1;
  } while (bVar12);
  bVar13 = false;
  bVar12 = (!bVar15 && !bVar12) == bVar15;
  if (bVar12) {
    if (param_3 < 0) {
      return 1;
    }
    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;
    if (param_3 == 0) {
      DAT_0006f2dc = 1;
      DAT_0006f2e4 = 0x17;
      goto LAB_00015c0d;
    }
    goto LAB_00015c78;
  }
  iVar5 = 8;
  pbVar9 = param_1;
  pbVar11 = (byte *)"-rlogin";
  do {
    if (iVar5 == 0) break;
    iVar5 = iVar5 + -1;
    bVar13 = *pbVar9 < *pbVar11;
    bVar12 = *pbVar9 == *pbVar11;
    pbVar9 = pbVar9 + 1;
    pbVar11 = pbVar11 + 1;
  } while (bVar12);
  bVar15 = false;
  bVar12 = (!bVar13 && !bVar12) == bVar13;
  if (bVar12) {
    if (param_3 < 0) {
      return 1;
    }
    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;
    if (param_3 == 0) {
      DAT_0006f2dc = 2;
      DAT_0006f2e4 = 0x201;
      goto LAB_00015c0d;
    }
    goto LAB_00015c78;
  }
  iVar5 = 5;
  pbVar9 = param_1;
  pbVar11 = &DAT_0004b0ca;
  do {
    if (iVar5 == 0) break;
    iVar5 = iVar5 + -1;
    bVar15 = *pbVar9 < *pbVar11;
    bVar12 = *pbVar9 == *pbVar11;
    pbVar9 = pbVar9 + 1;
    pbVar11 = pbVar11 + 1;
  } while (bVar12);
  bVar13 = false;
  bVar12 = (!bVar15 && !bVar12) == bVar15;
  if (bVar12) {
    if (param_3 < 0) {
      return 1;
    }
    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;
    if (param_3 != 0) goto LAB_00015c78;
    uVar14 = auStack_2c < (undefined1 *)0x4;
    uVar16 = &stack0x00000000 == (undefined1 *)0x30;
    DAT_0006f2dc = 0;
    FUN_000183f0();
    iVar5 = 8;
    pbVar9 = param_1;
    pbVar11 = (byte *)"-serial";
    do {
      if (iVar5 == 0) break;
      iVar5 = iVar5 + -1;
      uVar14 = *pbVar9 < *pbVar11;
      uVar16 = *pbVar9 == *pbVar11;
      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;
      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;
    } while ((bool)uVar16);
    bVar12 = false;
    bVar15 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;
    if (bVar15) {
      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;
      goto LAB_00015dd0;
    }
    iVar5 = 3;
    pbVar9 = param_1;
    pbVar11 = &DAT_0004b0d7;
    do {
      if (iVar5 == 0) break;
      iVar5 = iVar5 + -1;
      bVar12 = *pbVar9 < *pbVar11;
      bVar15 = *pbVar9 == *pbVar11;
      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;
      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;
    } while (bVar15);
    bVar12 = (!bVar12 && !bVar15) == bVar12;
    if (bVar12) goto LAB_00015e28;
LAB_00015e31:
    uVar7 = 1;
  }
  else {
    iVar5 = 8;
    pbVar9 = param_1;
    pbVar11 = (byte *)"-serial";
    do {
      if (iVar5 == 0) break;
      iVar5 = iVar5 + -1;
      bVar13 = *pbVar9 < *pbVar11;
      bVar12 = *pbVar9 == *pbVar11;
      pbVar9 = pbVar9 + 1;
      pbVar11 = pbVar11 + 1;
    } while (bVar12);
    bVar15 = false;
    bVar12 = (!bVar13 && !bVar12) == bVar13;
    if (bVar12) {
      if (param_3 < 0) {
        return 1;
      }
      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;
      if (param_3 != 0) goto LAB_00015c78;
LAB_00015dd0:
      DAT_0006f2dc = 4;
      FUN_000183f0();
      FUN_00017e80();
      uVar14 = (undefined1 *)0xfffffff3 < &stack0xffffffc4;
      uVar16 = &stack0x00000000 == (undefined1 *)0x30;
      FUN_00018530();
      iVar5 = 3;
      pbVar9 = param_1;
      pbVar11 = &DAT_0004b0d7;
      do {
        if (iVar5 == 0) break;
        iVar5 = iVar5 + -1;
        uVar14 = *pbVar9 < *pbVar11;
        uVar16 = *pbVar9 == *pbVar11;
        pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;
        pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;
      } while ((bool)uVar16);
      bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;
      if (bVar12) goto LAB_00015e28;
      goto LAB_00015e31;
    }
    iVar5 = 3;
    pbVar9 = param_1;
    pbVar11 = &DAT_0004b0d7;
    do {
      if (iVar5 == 0) break;
      iVar5 = iVar5 + -1;
      bVar15 = *pbVar9 < *pbVar11;
      bVar12 = *pbVar9 == *pbVar11;
      pbVar9 = pbVar9 + 1;
      pbVar11 = pbVar11 + 1;
    } while (bVar12);
    if ((!bVar15 && !bVar12) == bVar15) {
      if (param_3 < 0) {
        return 1;
      }
LAB_00015e28:
      DAT_0006f2e8 = DAT_0006f2e8 | 1;
      bVar12 = DAT_0006f2e8 == 0;
      goto LAB_00015e31;
    }
    uVar7 = 0;
    bVar12 = true;
  }
  bVar15 = false;
  iVar5 = 3;
  pbVar9 = param_1;
  pbVar11 = (byte *)0x53a29;
  do {
    if (iVar5 == 0) break;
    iVar5 = iVar5 + -1;
    bVar15 = *pbVar9 < *pbVar11;
    bVar12 = *pbVar9 == *pbVar11;
    pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;
    pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;
  } while (bVar12);
  bVar13 = false;
  bVar12 = (!bVar15 && !bVar12) == bVar15;
  if (bVar12) {
    if (param_2 == (char *)0x0) {
      return 0xfffffffe;
    }
    if (param_3 < 0) {
      return 2;
    }
    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;
    if (param_3 != 0) goto LAB_00016123;
    uVar14 = auStack_2c < (undefined1 *)0x4;
    uVar16 = &stack0x00000000 == (undefined1 *)0x30;
    FUN_00018530();
    iVar5 = 9;
    pbVar9 = param_1;
    pbVar11 = (byte *)"-loghost";
    do {
      if (iVar5 == 0) break;
      iVar5 = iVar5 + -1;
      uVar14 = *pbVar9 < *pbVar11;
      uVar16 = *pbVar9 == *pbVar11;
      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;
      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;
    } while ((bool)uVar16);
    bVar12 = false;
    bVar15 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;
    if (bVar15) {
      if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;
      goto LAB_00015ec5;
    }
    iVar5 = 9;
    pbVar9 = param_1;
    pbVar11 = (byte *)"-hostkey";
    do {
      if (iVar5 == 0) break;
      iVar5 = iVar5 + -1;
      bVar12 = *pbVar9 < *pbVar11;
      bVar15 = *pbVar9 == *pbVar11;
      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;
      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;
    } while (bVar15);
    bVar12 = (!bVar12 && !bVar15) == bVar12;
    if (bVar12) goto LAB_00016218;
LAB_00016248:
    uVar7 = 2;
LAB_0001624d:
    bVar15 = false;
    iVar5 = 3;
    pbVar9 = param_1;
    pbVar11 = &DAT_0004b0ec;
    do {
      if (iVar5 == 0) break;
      iVar5 = iVar5 + -1;
      bVar15 = *pbVar9 < *pbVar11;
      bVar12 = *pbVar9 == *pbVar11;
      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;
      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;
    } while (bVar12);
    bVar12 = (!bVar15 && !bVar12) == bVar15;
    if (bVar12) {
LAB_00016647:
      if (param_2 == (char *)0x0) {
        return 0xfffffffe;
      }
      if (param_3 < 0) {
        return 2;
      }
      if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;
      bVar12 = param_3 == 0;
      if (!bVar12) goto LAB_00016123;
      goto LAB_00015f8f;
    }
LAB_0001626b:
    bVar15 = false;
    iVar5 = 3;
    pbVar9 = param_1;
    pbVar11 = &DAT_0004b0ef;
    do {
      if (iVar5 == 0) break;
      iVar5 = iVar5 + -1;
      bVar15 = *pbVar9 < *pbVar11;
      bVar12 = *pbVar9 == *pbVar11;
      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;
      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;
    } while (bVar12);
    bVar13 = false;
    bVar12 = (!bVar15 && !bVar12) == bVar15;
    if (bVar12) goto LAB_00016647;
    iVar5 = 3;
    pbVar9 = param_1;
    pbVar11 = (byte *)0x53a3b;
    do {
      if (iVar5 == 0) break;
      iVar5 = iVar5 + -1;
      bVar13 = *pbVar9 < *pbVar11;
      bVar12 = *pbVar9 == *pbVar11;
      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;
      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;
    } while (bVar12);
    bVar15 = false;
    bVar12 = (!bVar13 && !bVar12) == bVar13;
    if (bVar12) goto LAB_00016647;
    iVar5 = 4;
    pbVar9 = param_1;
    pbVar11 = &DAT_0004b0fd;
    do {
      if (iVar5 == 0) break;
      iVar5 = iVar5 + -1;
      bVar15 = *pbVar9 < *pbVar11;
      bVar12 = *pbVar9 == *pbVar11;
      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;
      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;
    } while (bVar12);
    bVar12 = (!bVar15 && !bVar12) == bVar15;
    if (!bVar12) goto LAB_00016698;
    if (param_2 == (char *)0x0) {
      return 0xfffffffe;
    }
    if (param_3 < 0) {
      return 2;
    }
    if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;
    if (param_3 != 0) goto LAB_00016123;
LAB_000162ed:
    iVar5 = FUN_00019140();
    if (iVar5 == 0) {
      FUN_00044820();
      return 2;
    }
    uVar7 = 2;
    FUN_00019ef0();
    FUN_00018530();
    strtol((char *)(iVar5 + 1),(char **)0x0,10);
    uVar14 = (undefined1 *)0xfffffff3 < &stack0xffffffc4;
    uVar16 = &stack0x00000000 == (undefined1 *)0x30;
    FUN_000183f0();
    FUN_0001a110();
    iVar5 = 3;
    pbVar9 = param_1;
    pbVar11 = &DAT_0004b101;
    do {
      if (iVar5 == 0) break;
      iVar5 = iVar5 + -1;
      uVar14 = *pbVar9 < *pbVar11;
      uVar16 = *pbVar9 == *pbVar11;
      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;
      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;
    } while ((bool)uVar16);
    bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;
    if (!bVar12) goto LAB_000166e0;
    if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;
LAB_0001639b:
    iVar10 = 0;
    iVar5 = 0;
    __stream = fopen64(param_2,"r");
    local_24 = 0;
    if (__stream == (FILE *)0x0) {
      FUN_00044820();
      return 2;
    }
    while (iVar2 = fgetc(__stream), iVar2 != -1) {
      if (iVar10 < local_24) {
        *(char *)(iVar5 + iVar10) = (char)iVar2;
      }
      else {
        local_24 = iVar10 + 0x200;
        local_20 = iVar2;
        iVar5 = FUN_00019c80();
        *(char *)(iVar5 + iVar10) = (char)local_20;
      }
      iVar10 = iVar10 + 1;
    }
    if (iVar10 < local_24) {
      *(undefined1 *)(iVar5 + iVar10) = 0;
    }
    else {
      iVar5 = FUN_00019c80();
      *(undefined1 *)(iVar5 + iVar10) = 0;
    }
    uVar7 = 2;
    fclose(__stream);
    FUN_00018530();
    FUN_00018530();
    uVar14 = (undefined1 *)0xfffffff3 < &stack0xffffffc4;
    uVar16 = &stack0x00000000 == (undefined1 *)0x30;
    FUN_000183f0();
    FUN_0001a110();
    iVar5 = 3;
    pbVar9 = param_1;
    pbVar11 = &DAT_0004b104;
    do {
      if (iVar5 == 0) break;
      iVar5 = iVar5 + -1;
      uVar14 = *pbVar9 < *pbVar11;
      uVar16 = *pbVar9 == *pbVar11;
      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;
      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;
    } while ((bool)uVar16);
    bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;
    if (!bVar12) goto LAB_00016777;
    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;
LAB_000164a7:
    strtol(param_2,(char **)0x0,10);
    FUN_000183f0();
    iVar5 = strcmp((char *)param_1,"-pw");
    if (iVar5 == 0) {
      if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;
LAB_000164f6:
      iVar5 = FUN_00017cd0();
      if (iVar5 == 3) {
        DAT_0006f0a8 = FUN_00019990();
        iVar5 = -1;
        pcVar8 = param_2;
        do {
          if (iVar5 == 0) break;
          iVar5 = iVar5 + -1;
          cVar1 = *pcVar8;
          pcVar8 = pcVar8 + (uint)bVar17 * -2 + 1;
        } while (cVar1 != '\0');
        FUN_0001a1f0();
      }
      else {
        FUN_00044820();
      }
      iVar5 = strcmp((char *)param_1,"-agent");
      if ((iVar5 == 0) || (iVar5 = strcmp((char *)param_1,"-pagent"), iVar5 == 0))
      goto LAB_00015d3a;
      uVar7 = 2;
      iVar5 = strcmp((char *)param_1,"-pageant");
      if (iVar5 == 0) goto LAB_0001688c;
    }
    else {
      iVar5 = strcmp((char *)param_1,"-agent");
      if (iVar5 == 0) {
LAB_00015d3a:
        if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;
        goto LAB_000168a1;
      }
      uVar7 = 2;
      iVar5 = strcmp((char *)param_1,"-pagent");
      if (iVar5 == 0) goto LAB_0001688c;
LAB_0001685f:
      iVar5 = strcmp((char *)param_1,"-pageant");
      if (iVar5 == 0) goto LAB_00016884;
    }
    iVar5 = strcmp((char *)param_1,"-noagent");
    if ((iVar5 == 0) || (iVar5 = strcmp((char *)param_1,"-nopagent"), iVar5 == 0)) {
LAB_00016e5e:
      if (param_3 < 0) {
        return 1;
      }
LAB_00016e44:
      if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;
      if (param_3 != 0) goto LAB_00015c78;
      goto LAB_000168e1;
    }
LAB_000165eb:
    iVar5 = strcmp((char *)param_1,"-nopageant");
    if (iVar5 == 0) goto LAB_00016e5e;
    iVar5 = strcmp((char *)param_1,"-A");
    if (iVar5 != 0) {
      iVar5 = strcmp((char *)param_1,"-a");
      if (iVar5 != 0) goto LAB_00016f0f;
      if (param_3 < 0) {
        return 1;
      }
      goto LAB_0001700b;
    }
    if (param_3 < 0) {
      return 1;
    }
    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;
    if (param_3 != 0) goto LAB_00015c78;
LAB_00016921:
    FUN_000183f0();
    iVar5 = strcmp((char *)param_1,"-a");
    if (iVar5 != 0) {
      uVar7 = 1;
      iVar5 = strcmp((char *)param_1,"-X");
      if (iVar5 == 0) goto LAB_00016f38;
LAB_00016f97:
      iVar5 = strcmp((char *)param_1,"-x");
      if (iVar5 != 0) goto LAB_0001704f;
      if (param_3 < 0) {
        return 1;
      }
LAB_00016fc4:
      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;
      if (param_3 != 0) goto LAB_00015c78;
      goto LAB_000169e4;
    }
    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;
LAB_00016961:
    FUN_000183f0();
    iVar5 = strcmp((char *)param_1,"-X");
    if (iVar5 == 0) {
      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;
      goto LAB_000169a1;
    }
    uVar7 = 1;
    iVar5 = strcmp((char *)param_1,"-x");
    if (iVar5 == 0) goto LAB_00016fc4;
LAB_0001704f:
    iVar5 = strcmp((char *)param_1,"-t");
    if (iVar5 == 0) {
      if (param_3 < 0) {
        return 1;
      }
      goto LAB_0001707c;
    }
LAB_000177b1:
    iVar5 = strcmp((char *)param_1,"-T");
    if (iVar5 != 0) goto LAB_00017759;
    if (param_3 < 0) {
      return 1;
    }
LAB_0001770d:
    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;
    if (param_3 != 0) goto LAB_00017091;
LAB_00016a67:
    FUN_000183f0();
    iVar5 = strcmp((char *)param_1,"-N");
    if (iVar5 == 0) {
      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;
LAB_00016aa7:
      FUN_000183f0();
      iVar5 = strcmp((char *)param_1,"-C");
      if (iVar5 == 0) {
        if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;
        goto LAB_00016ae7;
      }
      uVar7 = 1;
      iVar5 = strcmp((char *)param_1,"-1");
      if (iVar5 != 0) goto LAB_00017647;
LAB_000175ed:
      if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;
      if (param_3 != 0) goto LAB_00015c78;
      goto LAB_00016b27;
    }
    uVar7 = 1;
    iVar5 = strcmp((char *)param_1,"-C");
    if (iVar5 == 0) goto LAB_0001762d;
LAB_00017679:
    iVar5 = strcmp((char *)param_1,"-1");
    if (iVar5 == 0) {
      if (param_3 < 0) {
        return 1;
      }
      goto LAB_000175ed;
    }
LAB_00017647:
    iVar5 = strcmp((char *)param_1,"-2");
    if (iVar5 == 0) {
      if (param_3 < 0) {
        return 1;
      }
LAB_000175ad:
      if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;
      if (param_3 != 0) {
LAB_00015c78:
        FUN_00015950();
        return 1;
      }
LAB_00016b67:
      uVar7 = 1;
      FUN_000183f0();
    }
  }
  else {
    iVar5 = 9;
    pbVar9 = param_1;
    pbVar11 = (byte *)"-loghost";
    do {
      if (iVar5 == 0) break;
      iVar5 = iVar5 + -1;
      bVar13 = *pbVar9 < *pbVar11;
      bVar12 = *pbVar9 == *pbVar11;
      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;
      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;
    } while (bVar12);
    bVar15 = false;
    bVar12 = (!bVar13 && !bVar12) == bVar13;
    if (!bVar12) {
      iVar5 = 9;
      pbVar9 = param_1;
      pbVar11 = (byte *)"-hostkey";
      do {
        if (iVar5 == 0) break;
        iVar5 = iVar5 + -1;
        bVar15 = *pbVar9 < *pbVar11;
        bVar12 = *pbVar9 == *pbVar11;
        pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;
        pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;
      } while (bVar12);
      bVar12 = (!bVar15 && !bVar12) == bVar15;
      if (bVar12) {
        if (param_2 == (char *)0x0) {
          return 0xfffffffe;
        }
        if (param_3 < 0) {
          return 2;
        }
LAB_00016218:
        if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;
        if (param_3 != 0) goto LAB_00016123;
        goto LAB_00015f0d;
      }
      goto LAB_0001624d;
    }
    if (param_2 == (char *)0x0) {
      return 0xfffffffe;
    }
    if (param_3 < 0) {
      return 2;
    }
    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;
    if (param_3 != 0) goto LAB_00016123;
LAB_00015ec5:
    uVar14 = auStack_2c < (undefined1 *)0x4;
    uVar16 = &stack0x00000000 == (undefined1 *)0x30;
    FUN_00018530();
    iVar5 = 9;
    pbVar9 = param_1;
    pbVar11 = (byte *)"-hostkey";
    do {
      if (iVar5 == 0) break;
      iVar5 = iVar5 + -1;
      uVar14 = *pbVar9 < *pbVar11;
      uVar16 = *pbVar9 == *pbVar11;
      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;
      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;
    } while ((bool)uVar16);
    bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;
    if (!bVar12) goto LAB_00016248;
    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;
LAB_00015f0d:
    FUN_00019990();
    iVar5 = FUN_0001a210();
    uVar14 = 0;
    uVar16 = iVar5 == 0;
    if ((bool)uVar16) {
      FUN_00044820();
      FUN_0001a110();
      return 2;
    }
    uVar7 = 2;
    FUN_000185e0();
    FUN_0001a110();
    iVar5 = 3;
    pbVar9 = param_1;
    pbVar11 = &DAT_0004b0ec;
    do {
      if (iVar5 == 0) break;
      iVar5 = iVar5 + -1;
      uVar14 = *pbVar9 < *pbVar11;
      uVar16 = *pbVar9 == *pbVar11;
      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;
      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;
    } while ((bool)uVar16);
    bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;
    if (!bVar12) goto LAB_0001626b;
    bVar12 = (DAT_0006f0a0 & 3) == 0;
    if (!bVar12) goto LAB_000161c3;
LAB_00015f8f:
    bVar15 = false;
    iVar5 = 3;
    pbVar9 = param_1;
    pbVar11 = (byte *)0x53a3b;
    do {
      if (iVar5 == 0) break;
      iVar5 = iVar5 + -1;
      bVar15 = *pbVar9 < *pbVar11;
      bVar12 = *pbVar9 == *pbVar11;
      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;
      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;
    } while (bVar12);
    if ((!bVar15 && !bVar12) == bVar15) {
      FUN_00019ef0();
      FUN_00019990();
    }
    else {
      iVar5 = FUN_00019140();
      if (iVar5 == 0) {
        FUN_00044820();
        return 2;
      }
      do {
        iVar5 = FUN_00019140();
      } while (iVar5 != 0);
      FUN_00019ef0();
      FUN_00019990();
    }
    uVar14 = (undefined1 *)0xffffffef < &stack0xffffffc4;
    uVar16 = &stack0x00000000 == (undefined1 *)0x2c;
    uVar7 = 2;
    FUN_000185e0();
    FUN_0001a110();
    FUN_0001a110();
    iVar5 = 4;
    pbVar9 = param_1;
    pbVar11 = &DAT_0004b0fd;
    do {
      if (iVar5 == 0) break;
      iVar5 = iVar5 + -1;
      uVar14 = *pbVar9 < *pbVar11;
      uVar16 = *pbVar9 == *pbVar11;
      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;
      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;
    } while ((bool)uVar16);
    bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;
    if (bVar12) {
      if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;
      goto LAB_000162ed;
    }
LAB_00016698:
    bVar15 = false;
    iVar5 = 3;
    pbVar9 = param_1;
    pbVar11 = &DAT_0004b101;
    do {
      if (iVar5 == 0) break;
      iVar5 = iVar5 + -1;
      bVar15 = *pbVar9 < *pbVar11;
      bVar12 = *pbVar9 == *pbVar11;
      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;
      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;
    } while (bVar12);
    bVar12 = (!bVar15 && !bVar12) == bVar15;
    if (bVar12) {
      if (param_2 == (char *)0x0) {
        return 0xfffffffe;
      }
      if (param_3 < 0) {
        return 2;
      }
      if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;
      if (param_3 != 0) goto LAB_00016123;
      goto LAB_0001639b;
    }
LAB_000166e0:
    bVar15 = false;
    iVar5 = 3;
    pbVar9 = param_1;
    pbVar11 = &DAT_0004b104;
    do {
      if (iVar5 == 0) break;
      iVar5 = iVar5 + -1;
      bVar15 = *pbVar9 < *pbVar11;
      bVar12 = *pbVar9 == *pbVar11;
      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;
      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;
    } while (bVar12);
    bVar12 = (!bVar15 && !bVar12) == bVar15;
    if (bVar12) {
      if (param_2 == (char *)0x0) {
        return 0xfffffffe;
      }
      if (param_3 < 0) {
        return 2;
      }
      if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;
      if (param_3 != 0) goto LAB_00016723;
      goto LAB_000164a7;
    }
LAB_00016777:
    bVar15 = false;
    iVar5 = 4;
    pbVar9 = param_1;
    pbVar11 = &DAT_0004b107;
    do {
      if (iVar5 == 0) break;
      iVar5 = iVar5 + -1;
      bVar15 = *pbVar9 < *pbVar11;
      bVar12 = *pbVar9 == *pbVar11;
      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;
      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;
    } while (bVar12);
    if ((!bVar15 && !bVar12) == bVar15) {
      if (param_2 == (char *)0x0) {
        return 0xfffffffe;
      }
      if (param_3 < 0) {
        return 2;
      }
      if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;
      if (param_3 != 0) goto LAB_00016723;
      goto LAB_000164f6;
    }
    iVar5 = strcmp((char *)param_1,"-agent");
    if ((iVar5 != 0) && (iVar5 = strcmp((char *)param_1,"-pagent"), iVar5 != 0)) goto LAB_0001685f;
LAB_00016884:
    if (param_3 < 0) {
      return 1;
    }
LAB_0001688c:
    if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;
    if (param_3 != 0) goto LAB_00015c78;
LAB_000168a1:
    FUN_000183f0();
    iVar5 = strcmp((char *)param_1,"-noagent");
    if (iVar5 != 0) {
      uVar7 = 1;
      iVar5 = strcmp((char *)param_1,"-nopagent");
      if (iVar5 != 0) goto LAB_000165eb;
      goto LAB_00016e44;
    }
    if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;
LAB_000168e1:
    FUN_000183f0();
    iVar5 = strcmp((char *)param_1,"-A");
    if (iVar5 == 0) {
      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;
      goto LAB_00016921;
    }
    uVar7 = 1;
    iVar5 = strcmp((char *)param_1,"-a");
    if (iVar5 == 0) {
LAB_0001700b:
      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;
      if (param_3 != 0) goto LAB_00015c78;
      goto LAB_00016961;
    }
LAB_00016f0f:
    iVar5 = strcmp((char *)param_1,"-X");
    if (iVar5 != 0) goto LAB_00016f97;
    if (param_3 < 0) {
      return 1;
    }
LAB_00016f38:
    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;
    if (param_3 != 0) goto LAB_00015c78;
LAB_000169a1:
    FUN_000183f0();
    iVar5 = strcmp((char *)param_1,"-x");
    if (iVar5 == 0) {
      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;
LAB_000169e4:
      FUN_000183f0();
      iVar5 = strcmp((char *)param_1,"-t");
      if (iVar5 == 0) {
        if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;
        goto LAB_00016a27;
      }
      uVar7 = 1;
      iVar5 = strcmp((char *)param_1,"-T");
      if (iVar5 == 0) goto LAB_0001770d;
LAB_00017759:
      iVar5 = strcmp((char *)param_1,"-N");
      if (iVar5 != 0) goto LAB_00017727;
      if (param_3 < 0) {
        return 1;
      }
LAB_000176cd:
      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;
      if (param_3 != 0) goto LAB_00015c78;
      goto LAB_00016aa7;
    }
    uVar7 = 1;
    iVar5 = strcmp((char *)param_1,"-t");
    if (iVar5 != 0) goto LAB_000177b1;
LAB_0001707c:
    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;
    if (param_3 != 0) goto LAB_00017091;
LAB_00016a27:
    FUN_000183f0();
    iVar5 = strcmp((char *)param_1,"-T");
    if (iVar5 == 0) {
      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;
      goto LAB_00016a67;
    }
    uVar7 = 1;
    iVar5 = strcmp((char *)param_1,"-N");
    if (iVar5 == 0) goto LAB_000176cd;
LAB_00017727:
    iVar5 = strcmp((char *)param_1,"-C");
    if (iVar5 != 0) goto LAB_00017679;
    if (param_3 < 0) {
      return 1;
    }
LAB_0001762d:
    if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;
    if (param_3 != 0) goto LAB_00015c78;
LAB_00016ae7:
    FUN_000183f0();
    iVar5 = strcmp((char *)param_1,"-1");
    if (iVar5 == 0) {
      if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;
LAB_00016b27:
      FUN_000183f0();
      iVar5 = strcmp((char *)param_1,"-2");
      if (iVar5 == 0) {
        if ((DAT_0006f0a0 & 2) != 0) {
LAB_00015d50:
          FUN_00044820();
          return 1;
        }
        goto LAB_00016b67;
      }
    }
    else {
      iVar5 = strcmp((char *)param_1,"-2");
      if (iVar5 == 0) goto LAB_000175ad;
    }
    uVar7 = 1;
  }
  iVar5 = strcmp((char *)param_1,"-i");
  if (iVar5 == 0) {
    if (param_2 == (char *)0x0) {
      return 0xfffffffe;
    }
    if (param_3 < 0) {
      return 2;
    }
    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;
    if (param_3 != 0) goto LAB_00016123;
    FUN_00041790();
    FUN_00018770();
    FUN_00041820();
    iVar5 = strcmp((char *)param_1,"-4");
    if ((iVar5 == 0) || (iVar5 = strcmp((char *)param_1,"-ipv4"), iVar5 == 0)) goto LAB_00017485;
    iVar5 = strcmp((char *)param_1,"-6");
    if (iVar5 == 0) goto LAB_00016c88;
    uVar7 = 2;
    iVar5 = strcmp((char *)param_1,"-ipv6");
joined_r0x000174dc:
    if (iVar5 == 0) goto LAB_00016c88;
  }
  else {
    iVar5 = strcmp((char *)param_1,"-4");
    if ((iVar5 == 0) || (iVar5 = strcmp((char *)param_1,"-ipv4"), iVar5 == 0)) {
      if (param_3 < 0) {
        return 1;
      }
      if (param_3 != 0) {
LAB_00017091:
        FUN_00015950();
        return 1;
      }
LAB_00017485:
      FUN_000183f0();
      iVar5 = strcmp((char *)param_1,"-6");
      if (iVar5 != 0) {
        uVar7 = 1;
        iVar5 = strcmp((char *)param_1,"-ipv6");
        goto joined_r0x000174dc;
      }
    }
    else {
      iVar5 = strcmp((char *)param_1,"-6");
      if ((iVar5 != 0) && (iVar5 = strcmp((char *)param_1,"-ipv6"), iVar5 != 0)) goto LAB_00016ca6;
      if (param_3 < 0) {
        return 1;
      }
      if (param_3 != 0) goto LAB_00017091;
    }
LAB_00016c88:
    uVar7 = 1;
    FUN_000183f0();
  }
LAB_00016ca6:
  iVar5 = strcmp((char *)param_1,"-sercfg");
  if (iVar5 == 0) {
    if (param_2 == (char *)0x0) {
      return 0xfffffffe;
    }
    if (param_3 < 0) {
      return 2;
    }
    if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;
    if (param_3 != 0) {
LAB_00016723:
      FUN_00015950();
      return 2;
    }
    iVar5 = FUN_00017cd0();
    pcVar8 = param_2;
    if (iVar5 != 4) {
      FUN_00044820();
    }
    for (; *pcVar8 != '\0'; pcVar8 = pcVar8 + iVar10 + iVar5) {
      pcVar4 = strchr(pcVar8,0x2c);
      if (pcVar4 == (char *)0x0) {
        uVar6 = 0xffffffff;
        iVar5 = 0;
        pcVar4 = pcVar8;
        do {
          if (uVar6 == 0) break;
          uVar6 = uVar6 - 1;
          cVar1 = *pcVar4;
          pcVar4 = pcVar4 + (uint)bVar17 * -2 + 1;
        } while (cVar1 != '\0');
        iVar10 = ~uVar6 - 1;
      }
      else {
        *pcVar4 = '\0';
        iVar5 = 1;
        iVar10 = (int)pcVar4 - (int)pcVar8;
      }
      if (iVar10 == 1) {
        switch(*pcVar8) {
        case '1':
        case '2':
          FUN_000183f0();
          break;
        default:
          FUN_00044820();
          break;
        case '5':
        case '6':
        case '7':
        case '8':
        case '9':
          FUN_000183f0();
          break;
        case 'D':
          FUN_000183f0();
          break;
        case 'N':
          FUN_000183f0();
          break;
        case 'R':
          FUN_000183f0();
          break;
        case 'X':
          FUN_000183f0();
          break;
        case 'e':
          FUN_000183f0();
          break;
        case 'm':
          FUN_000183f0();
          break;
        case 'n':
          FUN_000183f0();
          break;
        case 'o':
          FUN_000183f0();
          break;
        case 's':
          FUN_000183f0();
        }
      }
      else if ((iVar10 == 3) && (iVar2 = strncmp(pcVar8,"1.5",3), iVar2 == 0)) {
        FUN_000183f0();
      }
      else {
        lVar3 = strtol(pcVar8,(char **)0x0,10);
        if (lVar3 == 0) {
          FUN_00044820();
        }
        else {
          FUN_000183f0();
        }
      }
    }
    iVar5 = strcmp((char *)param_1,"-sessionlog");
    if (iVar5 == 0) {
      if ((DAT_0006f0a0 & 1) != 0) goto LAB_000161c3;
      goto LAB_0001722b;
    }
    iVar5 = strcmp((char *)param_1,"-sshlog");
    if (iVar5 != 0) goto LAB_000173ff;
LAB_000173c4:
    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;
    if (param_3 != 0) {
LAB_00016123:
      FUN_00015950();
      return 2;
    }
  }
  else {
    iVar5 = strcmp((char *)param_1,"-sessionlog");
    if (iVar5 != 0) {
      iVar5 = strcmp((char *)param_1,"-sshlog");
      if (iVar5 != 0) goto LAB_00017404;
LAB_000173b1:
      if (param_2 == (char *)0x0) {
        return 0xfffffffe;
      }
      if (param_3 < 0) {
        return 2;
      }
      goto LAB_000173c4;
    }
    if (param_2 == (char *)0x0) {
      return 0xfffffffe;
    }
    if (param_3 < 0) {
      return 2;
    }
    if ((DAT_0006f0a0 & 1) != 0) goto LAB_000161c3;
    if (param_3 != 0) goto LAB_00016123;
LAB_0001722b:
    FUN_00041790();
    FUN_00018770();
    FUN_000183f0();
    FUN_00041820();
    iVar5 = strcmp((char *)param_1,"-sshlog");
    if (iVar5 != 0) {
LAB_000173ff:
      uVar7 = 2;
LAB_00017404:
      iVar5 = strcmp((char *)param_1,"-sshrawlog");
      if (iVar5 != 0) {
        iVar5 = strcmp((char *)param_1,"-proxycmd");
        if (iVar5 != 0) {
          return uVar7;
        }
        if (param_2 == (char *)0x0) {
          return 0xfffffffe;
        }
        if (param_3 < 0) {
          return 2;
        }
        if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;
        if (param_3 != 0) goto LAB_00016123;
        goto LAB_00017304;
      }
      goto LAB_000173b1;
    }
    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;
  }
  FUN_00041790();
  FUN_00018770();
  strcmp((char *)param_1,"-sshlog");
  FUN_000183f0();
  FUN_00041820();
  iVar5 = strcmp((char *)param_1,"-proxycmd");
  if (iVar5 != 0) {
    return 2;
  }
  if ((DAT_0006f0a0 & 2) == 0) {
LAB_00017304:
    FUN_000183f0();
    FUN_00018530();
    return 2;
  }
LAB_000161c3:
  FUN_00044820();
  return 2;
}


PUSH EBP
MOV ECX,0x6
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x000152d0
ADD EBX,0x5917a
SUB ESP,0x1c
MOV ESI,dword ptr [ESP + 0x30]
MOV EDX,dword ptr [ESP + 0x38]
LEA EDI,[EBX + 0xfffdc3c7]
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JNZ 0x00015bb8
MOV EAX,dword ptr [ESP + 0x34]
TEST EAX,EAX
JZ 0x000160a2
TEST EDX,EDX
JNS 0x00015ca0
MOV EBP,0x2
ADD ESP,0x1c
MOV EAX,EBP
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV ESI,dword ptr [ESP + 0x30]
MOV ECX,0x5
LEA EDI,[EBX + 0xfffdc3cd]
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JNZ 0x00015c38
MOV EBP,0x1
TEST EDX,EDX
JS 0x00015ba9
TEST byte ptr [EBX + 0x3b8],0x3
JNZ 0x00015d50
TEST EDX,EDX
JNZ 0x00015c78
LEA EAX,[EBX + 0x5f4]
LEA ESI,[EBX + 0x5fc]
SUB ESP,0x4
MOV dword ptr [EAX],0x3
MOV dword ptr [ESI],0x16
PUSH 0x3
PUSH 0x2
PUSH dword ptr [ESP + 0x48]
CALL 0x000183f0
ADD ESP,0xc
PUSH dword ptr [ESI]
PUSH 0x1
PUSH dword ptr [ESP + 0x48]
CALL 0x000183f0
ADD ESP,0x10
MOV EAX,EBP
ADD ESP,0x1c
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV ESI,dword ptr [ESP + 0x30]
MOV ECX,0x8
LEA EDI,[EBX + 0xfffdc3d2]
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JNZ 0x00015ce0
MOV EBP,0x1
TEST EDX,EDX
JS 0x00015ba9
TEST byte ptr [EBX + 0x3b8],0x3
JNZ 0x00015d50
TEST EDX,EDX
JZ 0x00016000
MOV EAX,dword ptr [ESP + 0x30]
MOV EDX,dword ptr [ESP + 0x34]
XOR ECX,ECX
MOV EBP,0x1
CALL 0x00015950
ADD ESP,0x1c
MOV EAX,EBP
POP EBX
POP ESI
POP EDI
POP EBP
RET
SUB ESP,0x8
MOV EBP,0x2
PUSH dword ptr [ESP + 0x44]
PUSH dword ptr [ESP + 0x40]
CALL 0x000249f0
LEA EAX,[EBX + 0x60c]
MOV dword ptr [EAX],0x1
POP EAX
PUSH dword ptr [ESP + 0x40]
CALL 0x00019990
LEA EDX,[EBX + 0x610]
ADD ESP,0x10
MOV dword ptr [EDX],EAX
ADD ESP,0x1c
MOV EAX,EBP
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV ESI,dword ptr [ESP + 0x30]
MOV ECX,0x8
LEA EDI,[EBX + 0xfffdc3da]
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JNZ 0x00015d70
MOV EBP,0x1
TEST EDX,EDX
JS 0x00015ba9
TEST byte ptr [EBX + 0x3b8],0x3
JNZ 0x00015d50
TEST EDX,EDX
JNZ 0x00015c78
LEA EAX,[EBX + 0x5f4]
LEA ESI,[EBX + 0x5fc]
SUB ESP,0x4
MOV dword ptr [EAX],0x2
MOV dword ptr [ESI],0x201
PUSH 0x2
JMP 0x00015c0d
TEST byte ptr [EBX + 0x3b8],0x2
JZ 0x000168a1
LEA ESI,[ESI]
NOP
SUB ESP,0x8
LEA EAX,[EBX + 0xfffdc4bc]
MOV EBP,0x1
PUSH dword ptr [ESP + 0x38]
PUSH EAX
CALL 0x00044820
ADD ESP,0x10
JMP 0x00015ba9
MOV ESI,dword ptr [ESP + 0x30]
MOV ECX,0x5
LEA EDI,[EBX + 0xfffdc3e2]
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JZ 0x00016028
MOV ESI,dword ptr [ESP + 0x30]
MOV ECX,0x8
LEA EDI,[EBX + 0xfffdc3e7]
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JNZ 0x000160b0
MOV EBP,0x1
TEST EDX,EDX
JS 0x00015ba9
TEST byte ptr [EBX + 0x3b8],0x3
JNZ 0x00015d50
TEST EDX,EDX
JNZ 0x00015c78
LEA EBP,[EBX + 0x5f4]
MOV dword ptr [ESP + 0x38],EDX
SUB ESP,0x4
LEA EDI,[EBX + 0xfffdc3ef]
MOV dword ptr [EBP],0x4
PUSH 0x4
PUSH 0x2
PUSH dword ptr [ESP + 0x48]
CALL 0x000183f0
POP EBP
POP EAX
PUSH 0x0
PUSH dword ptr [ESP + 0x48]
CALL 0x00017e80
ADD ESP,0xc
PUSH EAX
PUSH 0x39
PUSH dword ptr [ESP + 0x48]
CALL 0x00018530
MOV ESI,dword ptr [ESP + 0x40]
MOV ECX,0x3
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x38]
TEST AL,AL
JNZ 0x00015e31
LEA EAX,[EBX + 0x600]
OR dword ptr [EAX],0x1
MOV EBP,0x1
MOV ESI,dword ptr [ESP + 0x30]
MOV ECX,0x3
LEA EDI,[EBX + 0xfffe4d41]
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JNZ 0x000160e0
MOV EDI,dword ptr [ESP + 0x34]
TEST EDI,EDI
JZ 0x000160a2
TEST EDX,EDX
JS 0x00015ba4
TEST byte ptr [EBX + 0x3b8],0x2
JNZ 0x000161c3
TEST EDX,EDX
JNZ 0x00016123
MOV dword ptr [ESP + 0x38],EDX
SUB ESP,0x4
LEA EDI,[EBX + 0xfffdc3f2]
PUSH dword ptr [ESP + 0x38]
PUSH 0x34
PUSH dword ptr [ESP + 0x48]
CALL 0x00018530
MOV ESI,dword ptr [ESP + 0x40]
MOV ECX,0x9
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x38]
TEST AL,AL
JNZ 0x0001622e
TEST byte ptr [EBX + 0x3b8],0x2
JNZ 0x000161c3
MOV dword ptr [ESP + 0x38],EDX
SUB ESP,0x4
LEA EDI,[EBX + 0xfffdc3fb]
PUSH dword ptr [ESP + 0x38]
PUSH 0x9
PUSH dword ptr [ESP + 0x48]
CALL 0x00018530
MOV ESI,dword ptr [ESP + 0x40]
MOV ECX,0x9
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x38]
TEST AL,AL
JNZ 0x00016248
TEST byte ptr [EBX + 0x3b8],0x2
JNZ 0x000161c3
MOV dword ptr [ESP + 0x38],EDX
SUB ESP,0xc
PUSH dword ptr [ESP + 0x40]
CALL 0x00019990
MOV dword ptr [ESP],EAX
MOV ESI,EAX
CALL 0x0001a210
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x38]
TEST EAX,EAX
JZ 0x000167f6
LEA EAX,[EBX + 0xfffdd115]
MOV dword ptr [ESP + 0x38],EDX
LEA EDI,[EBX + 0xfffdc404]
MOV EBP,0x2
PUSH EAX
PUSH ESI
PUSH 0xad
PUSH dword ptr [ESP + 0x48]
CALL 0x000185e0
MOV dword ptr [ESP],ESI
CALL 0x0001a110
MOV ESI,dword ptr [ESP + 0x40]
MOV ECX,0x3
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x38]
TEST AL,AL
JNZ 0x0001626b
TEST byte ptr [EBX + 0x3b8],0x3
JNZ 0x000161c3
MOV ESI,dword ptr [ESP + 0x30]
MOV ECX,0x3
LEA EDI,[EBX + 0xfffe4d53]
MOV dword ptr [ESP + 0x38],EDX
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JZ 0x0001613c
MOV EAX,dword ptr [ESP + 0x30]
SUB ESP,0x8
MOVZX EDI,byte ptr [EAX + 0x1]
PUSH 0x3a
PUSH dword ptr [ESP + 0x40]
CALL 0x00019140
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x38]
TEST EAX,EAX
MOV EBP,EAX
MOV ESI,EAX
JZ 0x00016e68
MOV dword ptr [ESP + 0x38],EDX
NOP
SUB ESP,0x8
LEA EAX,[EBP + 0x1]
PUSH 0x3a
PUSH EAX
CALL 0x00019140
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0001673f
MOV ESI,EBP
MOV EBP,EAX
JMP 0x00015fe0
LEA EAX,[EBX + 0x5f4]
LEA ESI,[EBX + 0x5fc]
SUB ESP,0x4
MOV dword ptr [EAX],0x1
MOV dword ptr [ESI],0x17
PUSH 0x1
JMP 0x00015c0d
MOV EBP,0x1
TEST EDX,EDX
JS 0x00015ba9
TEST byte ptr [EBX + 0x3b8],0x3
JNZ 0x00015d50
TEST EDX,EDX
MOV dword ptr [ESP + 0x38],EDX
JNZ 0x00015c78
LEA EBP,[EBX + 0x5f4]
SUB ESP,0x4
LEA EDI,[EBX + 0xfffdc3e7]
MOV dword ptr [EBP],0x0
PUSH 0x0
PUSH 0x2
PUSH dword ptr [ESP + 0x48]
CALL 0x000183f0
MOV ESI,dword ptr [ESP + 0x40]
MOV ECX,0x8
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x38]
TEST AL,AL
JNZ 0x00016675
TEST byte ptr [EBX + 0x3b8],0x3
JZ 0x00015dd0
JMP 0x00015d50
MOV EBP,0xfffffffe
JMP 0x00015ba9
MOV ESI,dword ptr [ESP + 0x30]
MOV ECX,0x3
LEA EDI,[EBX + 0xfffdc3ef]
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JNZ 0x000161e3
MOV EBP,0x1
TEST EDX,EDX
JS 0x00015ba9
JMP 0x00015e28
MOV ESI,dword ptr [ESP + 0x30]
MOV ECX,0x9
LEA EDI,[EBX + 0xfffdc3f2]
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JNZ 0x000161ea
MOV ESI,dword ptr [ESP + 0x34]
TEST ESI,ESI
JZ 0x000160a2
TEST EDX,EDX
JS 0x00015ba4
TEST byte ptr [EBX + 0x3b8],0x2
JNZ 0x000161c3
TEST EDX,EDX
JZ 0x00015ec5
MOV EDX,dword ptr [ESP + 0x34]
MOV EAX,dword ptr [ESP + 0x30]
XOR ECX,ECX
MOV EBP,0x2
CALL 0x00015950
JMP 0x00015ba9
SUB ESP,0x8
LEA EAX,[EBX + 0xfffdc411]
PUSH dword ptr [ESP + 0x3c]
PUSH EAX
CALL 0x00019ef0
MOV EDI,EAX
LEA EAX,[EBX + 0xfffe4d54]
MOV dword ptr [ESP],EAX
CALL 0x00019990
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x38]
MOV ESI,EAX
MOV dword ptr [ESP + 0x38],EDX
MOV EBP,0x2
PUSH ESI
PUSH EDI
PUSH 0x9b
PUSH dword ptr [ESP + 0x48]
CALL 0x000185e0
MOV dword ptr [ESP],EDI
LEA EDI,[EBX + 0xfffdc415]
CALL 0x0001a110
MOV dword ptr [ESP],ESI
CALL 0x0001a110
MOV ESI,dword ptr [ESP + 0x40]
MOV ECX,0x4
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x38]
TEST AL,AL
JNZ 0x00016698
TEST byte ptr [EBX + 0x3b8],0x3
JZ 0x000162ed
SUB ESP,0x8
LEA EAX,[EBX + 0xfffdc4bc]
MOV EBP,0x2
PUSH dword ptr [ESP + 0x38]
PUSH EAX
CALL 0x00044820
ADD ESP,0x10
JMP 0x00015ba9
XOR EBP,EBP
JMP 0x00015e36
MOV ESI,dword ptr [ESP + 0x30]
MOV ECX,0x9
LEA EDI,[EBX + 0xfffdc3fb]
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JNZ 0x0001624d
MOV ECX,dword ptr [ESP + 0x34]
TEST ECX,ECX
JZ 0x000160a2
TEST EDX,EDX
JS 0x00015ba4
TEST byte ptr [EBX + 0x3b8],0x2
JNZ 0x000161c3
TEST EDX,EDX
JZ 0x00015f0d
JMP 0x00016123
MOV ESI,dword ptr [ESP + 0x30]
MOV ECX,0x9
LEA EDI,[EBX + 0xfffdc3fb]
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JZ 0x00016218
MOV EBP,0x2
MOV ESI,dword ptr [ESP + 0x30]
MOV ECX,0x3
LEA EDI,[EBX + 0xfffdc404]
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JZ 0x00016647
MOV ESI,dword ptr [ESP + 0x30]
MOV ECX,0x3
LEA EDI,[EBX + 0xfffdc407]
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JZ 0x00016647
MOV ESI,dword ptr [ESP + 0x30]
MOV ECX,0x3
LEA EDI,[EBX + 0xfffe4d53]
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JZ 0x00016647
MOV ESI,dword ptr [ESP + 0x30]
MOV ECX,0x4
LEA EDI,[EBX + 0xfffdc415]
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JNZ 0x00016698
CMP dword ptr [ESP + 0x34],0x0
JZ 0x000160a2
TEST EDX,EDX
JS 0x00015ba4
TEST byte ptr [EBX + 0x3b8],0x3
JNZ 0x000161c3
TEST EDX,EDX
JNZ 0x00016123
MOV dword ptr [ESP + 0x38],EDX
SUB ESP,0x8
PUSH 0x3a
PUSH dword ptr [ESP + 0x40]
CALL 0x00019140
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x38]
TEST EAX,EAX
MOV ESI,EAX
JZ 0x00016e89
MOV dword ptr [ESP + 0x38],EDX
SUB ESP,0x4
ADD ESI,0x1
MOV EBP,0x2
PUSH dword ptr [ESP + 0x38]
SUB EAX,dword ptr [ESP + 0x3c]
PUSH EAX
LEA EAX,[EBX + 0xfffdc40c]
PUSH EAX
CALL 0x00019ef0
ADD ESP,0xc
PUSH EAX
MOV EDI,EAX
PUSH 0x2e
PUSH dword ptr [ESP + 0x48]
CALL 0x00018530
ADD ESP,0xc
PUSH 0xa
PUSH 0x0
PUSH ESI
CALL 0x000146a0
ADD ESP,0xc
PUSH EAX
PUSH 0x2f
PUSH dword ptr [ESP + 0x48]
CALL 0x000183f0
MOV dword ptr [ESP],EDI
LEA EDI,[EBX + 0xfffdc419]
CALL 0x0001a110
MOV ESI,dword ptr [ESP + 0x40]
MOV ECX,0x3
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x38]
TEST AL,AL
JNZ 0x000166e0
TEST byte ptr [EBX + 0x3b8],0x3
JNZ 0x000161c3
MOV dword ptr [ESP + 0x38],EDX
LEA EAX,[EBX + 0xfffde860]
SUB ESP,0x8
XOR ESI,ESI
PUSH EAX
XOR EDI,EDI
PUSH dword ptr [ESP + 0x40]
CALL 0x00014310
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x38]
TEST EAX,EAX
MOV EBP,EAX
MOV dword ptr [ESP + 0x8],0x0
JZ 0x00016f52
MOV dword ptr [ESP + 0x38],EDX
JMP 0x000163e5
CMP ESI,dword ptr [ESP + 0x8]
JGE 0x000167cb
MOV byte ptr [EDI + ESI*0x1],CL
ADD ESI,0x1
SUB ESP,0xc
PUSH EBP
CALL 0x00014770
ADD ESP,0x10
MOV ECX,EAX
CMP EAX,-0x1
JNZ 0x000163d5
MOV EDX,dword ptr [ESP + 0x38]
CMP ESI,dword ptr [ESP + 0x8]
JL 0x000167c2
LEA EAX,[ESI + 0x200]
MOV dword ptr [ESP + 0x38],EDX
PUSH EDX
PUSH 0x1
PUSH EAX
PUSH EDI
CALL 0x00019c80
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x38]
MOV byte ptr [EAX + ESI*0x1],0x0
MOV EDI,EAX
MOV dword ptr [ESP + 0x38],EDX
SUB ESP,0xc
PUSH EBP
MOV EBP,0x2
CALL 0x00014a50
ADD ESP,0xc
PUSH EDI
PUSH 0x14
PUSH dword ptr [ESP + 0x48]
CALL 0x00018530
ADD ESP,0xc
LEA EAX,[EBX + 0xfffdd115]
PUSH EAX
PUSH 0x15
PUSH dword ptr [ESP + 0x48]
CALL 0x00018530
ADD ESP,0xc
PUSH 0x1
PUSH 0x16
PUSH dword ptr [ESP + 0x48]
CALL 0x000183f0
MOV dword ptr [ESP],EDI
LEA EDI,[EBX + 0xfffdc41c]
CALL 0x0001a110
MOV ESI,dword ptr [ESP + 0x40]
MOV ECX,0x3
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x38]
TEST AL,AL
JNZ 0x00016777
TEST byte ptr [EBX + 0x3b8],0x2
JNZ 0x000161c3
MOV dword ptr [ESP + 0x38],EDX
PUSH ESI
PUSH 0xa
PUSH 0x0
PUSH dword ptr [ESP + 0x40]
CALL 0x000146a0
ADD ESP,0xc
PUSH EAX
PUSH 0x1
PUSH dword ptr [ESP + 0x48]
CALL 0x000183f0
LEA EAX,[EBX + 0xfffdc41f]
POP EDI
POP EBP
PUSH EAX
PUSH dword ptr [ESP + 0x3c]
CALL 0x000143b0
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x38]
TEST EAX,EAX
JNZ 0x00016dc6
TEST byte ptr [EBX + 0x3b8],0x2
JNZ 0x000161c3
MOV dword ptr [ESP + 0x38],EDX
PUSH ECX
PUSH ECX
PUSH 0x2
PUSH dword ptr [ESP + 0x48]
CALL 0x00017cd0
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x38]
CMP EAX,0x3
JZ 0x00016ea5
SUB ESP,0xc
LEA EAX,[EBX + 0xfffdc5a4]
PUSH EAX
CALL 0x00044820
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x38]
MOV dword ptr [ESP + 0x38],EDX
PUSH EAX
PUSH EAX
LEA EAX,[EBX + 0xfffdc423]
PUSH EAX
PUSH dword ptr [ESP + 0x3c]
CALL 0x000143b0
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x38]
TEST EAX,EAX
JZ 0x00015d3a
MOV dword ptr [ESP + 0x38],EDX
PUSH EAX
PUSH EAX
LEA EAX,[EBX + 0xfffdc42a]
PUSH EAX
PUSH dword ptr [ESP + 0x3c]
CALL 0x000143b0
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x38]
TEST EAX,EAX
JZ 0x00015d3a
LEA EAX,[EBX + 0xfffdc432]
MOV dword ptr [ESP + 0x38],EDX
MOV EBP,0x2
PUSH ESI
PUSH ESI
PUSH EAX
PUSH dword ptr [ESP + 0x3c]
CALL 0x000143b0
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x38]
TEST EAX,EAX
JZ 0x0001688c
MOV dword ptr [ESP + 0x38],EDX
PUSH EAX
PUSH EAX
LEA EAX,[EBX + 0xfffdc43b]
PUSH EAX
PUSH dword ptr [ESP + 0x3c]
CALL 0x000143b0
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x38]
TEST EAX,EAX
JZ 0x00016e5e
MOV dword ptr [ESP + 0x38],EDX
PUSH EAX
PUSH EAX
LEA EAX,[EBX + 0xfffdc444]
PUSH EAX
PUSH dword ptr [ESP + 0x3c]
CALL 0x000143b0
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x38]
TEST EAX,EAX
JZ 0x00016e5e
MOV dword ptr [ESP + 0x38],EDX
PUSH EAX
PUSH EAX
LEA EAX,[EBX + 0xfffdc44e]
PUSH EAX
PUSH dword ptr [ESP + 0x3c]
CALL 0x000143b0
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x38]
TEST EAX,EAX
JZ 0x00016e5e
LEA EAX,[EBX + 0xfffdc459]
MOV dword ptr [ESP + 0x38],EDX
PUSH ECX
PUSH ECX
PUSH EAX
PUSH dword ptr [ESP + 0x3c]
CALL 0x000143b0
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x38]
TEST EAX,EAX
JNZ 0x00016fde
TEST EDX,EDX
JNS 0x000170a8
MOV EBP,0x1
JMP 0x00015ba9
MOV EAX,dword ptr [ESP + 0x34]
TEST EAX,EAX
JZ 0x000160a2
TEST EDX,EDX
JS 0x00015ba4
TEST byte ptr [EBX + 0x3b8],0x3
JNZ 0x000161c3
TEST EDX,EDX
JZ 0x00015f8f
JMP 0x00016123
MOV ESI,dword ptr [ESP + 0x30]
MOV ECX,0x3
LEA EDI,[EBX + 0xfffdc3ef]
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JZ 0x00015e28
JMP 0x00015e31
MOV ESI,dword ptr [ESP + 0x30]
MOV ECX,0x3
LEA EDI,[EBX + 0xfffdc419]
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JNZ 0x000166e0
MOV EAX,dword ptr [ESP + 0x34]
TEST EAX,EAX
JZ 0x000160a2
TEST EDX,EDX
JS 0x00015ba4
TEST byte ptr [EBX + 0x3b8],0x3
JNZ 0x000161c3
TEST EDX,EDX
JZ 0x0001639b
JMP 0x00016123
MOV ESI,dword ptr [ESP + 0x30]
MOV ECX,0x3
LEA EDI,[EBX + 0xfffdc41c]
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JNZ 0x00016777
MOV EAX,dword ptr [ESP + 0x34]
TEST EAX,EAX
JZ 0x000160a2
TEST EDX,EDX
JS 0x00015ba4
TEST byte ptr [EBX + 0x3b8],0x2
JNZ 0x000161c3
TEST EDX,EDX
JZ 0x000164a7
MOV EDX,dword ptr [ESP + 0x34]
MOV EAX,dword ptr [ESP + 0x30]
MOV ECX,0x1
MOV EBP,0x2
CALL 0x00015950
JMP 0x00015ba9
PUSH dword ptr [ESP + 0x34]
MOV EAX,ESI
SUB EAX,dword ptr [ESP + 0x38]
ADD ESI,0x1
PUSH EAX
MOV EAX,EDI
MOVSX EDI,AL
LEA EAX,[EBX + 0xfffdc40a]
PUSH EDI
PUSH EAX
CALL 0x00019ef0
MOV dword ptr [ESP],ESI
MOV EDI,EAX
CALL 0x00019990
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x38]
MOV ESI,EAX
JMP 0x00016168
MOV ESI,dword ptr [ESP + 0x30]
MOV ECX,0x4
LEA EDI,[EBX + 0xfffdc41f]
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JNZ 0x0001681d
CMP dword ptr [ESP + 0x34],0x0
JZ 0x000160a2
TEST EDX,EDX
JS 0x00015ba4
TEST byte ptr [EBX + 0x3b8],0x2
JNZ 0x000161c3
TEST EDX,EDX
JZ 0x000164f6
JMP 0x00016723
MOV byte ptr [EDI + ESI*0x1],0x0
JMP 0x00016427
MOV dword ptr [ESP + 0xc],EAX
LEA EAX,[ESI + 0x200]
SUB ESP,0x4
MOV dword ptr [ESP + 0xc],EAX
PUSH 0x1
PUSH EAX
PUSH EDI
CALL 0x00019c80
MOV ECX,dword ptr [ESP + 0x1c]
ADD ESP,0x10
MOV EDI,EAX
MOV byte ptr [EAX + ESI*0x1],CL
JMP 0x000163e2
PUSH EAX
MOV EBP,0x2
PUSH EAX
LEA EAX,[EBX + 0xfffdc4e4]
PUSH dword ptr [ESP + 0x3c]
PUSH EAX
CALL 0x00044820
MOV dword ptr [ESP],ESI
CALL 0x0001a110
ADD ESP,0x10
JMP 0x00015ba9
LEA EAX,[EBX + 0xfffdc423]
MOV dword ptr [ESP + 0x38],EDX
PUSH EDI
PUSH EDI
PUSH EAX
PUSH dword ptr [ESP + 0x3c]
CALL 0x000143b0
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x38]
TEST EAX,EAX
JZ 0x00016884
LEA EAX,[EBX + 0xfffdc42a]
MOV dword ptr [ESP + 0x38],EDX
PUSH ESI
PUSH ESI
PUSH EAX
PUSH dword ptr [ESP + 0x3c]
CALL 0x000143b0
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x38]
TEST EAX,EAX
JZ 0x00016884
LEA EAX,[EBX + 0xfffdc432]
MOV dword ptr [ESP + 0x38],EDX
PUSH ECX
PUSH ECX
PUSH EAX
PUSH dword ptr [ESP + 0x3c]
CALL 0x000143b0
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x38]
TEST EAX,EAX
JNZ 0x000165a1
TEST EDX,EDX
JS 0x0001663d
TEST byte ptr [EBX + 0x3b8],0x2
JNZ 0x00015d50
TEST EDX,EDX
JNZ 0x00015c78
MOV dword ptr [ESP + 0x38],EDX
PUSH EAX
PUSH 0x1
PUSH 0x1c
PUSH dword ptr [ESP + 0x48]
CALL 0x000183f0
POP EAX
LEA EAX,[EBX + 0xfffdc43b]
POP EDX
PUSH EAX
PUSH dword ptr [ESP + 0x3c]
CALL 0x000143b0
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x38]
TEST EAX,EAX
JNZ 0x00016e1a
TEST byte ptr [EBX + 0x3b8],0x2
JNZ 0x00015d50
MOV dword ptr [ESP + 0x38],EDX
PUSH ESI
PUSH 0x0
PUSH 0x1c
PUSH dword ptr [ESP + 0x48]
CALL 0x000183f0
LEA EAX,[EBX + 0xfffdc459]
POP EDI
POP EBP
PUSH EAX
PUSH dword ptr [ESP + 0x3c]
CALL 0x000143b0
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x38]
TEST EAX,EAX
JNZ 0x00016ee5
TEST byte ptr [EBX + 0x3b8],0x3
JNZ 0x00015d50
MOV dword ptr [ESP + 0x38],EDX
PUSH EAX
PUSH 0x1
PUSH 0x1d
PUSH dword ptr [ESP + 0x48]
CALL 0x000183f0
POP EAX
LEA EAX,[EBX + 0xfffdc45c]
POP EDX
PUSH EAX
PUSH dword ptr [ESP + 0x3c]
CALL 0x000143b0
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x38]
TEST EAX,EAX
JNZ 0x00016f71
TEST byte ptr [EBX + 0x3b8],0x3
JNZ 0x00015d50
MOV dword ptr [ESP + 0x38],EDX
PUSH ESI
PUSH 0x0
PUSH 0x1d
PUSH dword ptr [ESP + 0x48]
CALL 0x000183f0
LEA EAX,[EBX + 0xfffdc45f]
POP EDI
POP EBP
PUSH EAX
PUSH dword ptr [ESP + 0x3c]
CALL 0x000143b0
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x38]
TEST EAX,EAX
JNZ 0x00017025
TEST byte ptr [EBX + 0x3b8],0x3
JNZ 0x00015d50
MOV dword ptr [ESP + 0x38],EDX
PUSH EAX
PUSH 0x1
PUSH 0x95
PUSH dword ptr [ESP + 0x48]
CALL 0x000183f0
POP EAX
LEA EAX,[EBX + 0xfffdc462]
POP EDX
PUSH EAX
PUSH dword ptr [ESP + 0x3c]
CALL 0x000143b0
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x38]
TEST EAX,EAX
JNZ 0x00017787
TEST byte ptr [EBX + 0x3b8],0x3
JNZ 0x00015d50
MOV dword ptr [ESP + 0x38],EDX
PUSH ESI
PUSH 0x0
PUSH 0x95
PUSH dword ptr [ESP + 0x48]
CALL 0x000183f0
LEA EAX,[EBX + 0xfffdc465]
POP EDI
POP EBP
PUSH EAX
PUSH dword ptr [ESP + 0x3c]
CALL 0x000143b0
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x38]
TEST EAX,EAX
JNZ 0x000176e7
TEST byte ptr [EBX + 0x3b8],0x3
JNZ 0x00015d50
MOV dword ptr [ESP + 0x38],EDX
PUSH EAX
PUSH 0x0
PUSH 0x16
PUSH dword ptr [ESP + 0x48]
CALL 0x000183f0
POP EAX
LEA EAX,[EBX + 0xfffdc468]
POP EDX
PUSH EAX
PUSH dword ptr [ESP + 0x3c]
CALL 0x000143b0
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x38]
TEST EAX,EAX
JNZ 0x000176a7
TEST byte ptr [EBX + 0x3b8],0x3
JNZ 0x00015d50
MOV dword ptr [ESP + 0x38],EDX
PUSH ESI
PUSH 0x1
PUSH 0x16
PUSH dword ptr [ESP + 0x48]
CALL 0x000183f0
LEA EAX,[EBX + 0xfffdc46b]
POP EDI
POP EBP
PUSH EAX
PUSH dword ptr [ESP + 0x3c]
CALL 0x000143b0
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x38]
TEST EAX,EAX
JNZ 0x00017607
TEST byte ptr [EBX + 0x3b8],0x3
JNZ 0x00015d50
MOV dword ptr [ESP + 0x38],EDX
PUSH EAX
PUSH 0x1
PUSH 0x2d
PUSH dword ptr [ESP + 0x48]
CALL 0x000183f0
POP EAX
LEA EAX,[EBX + 0xfffdc46e]
POP EDX
PUSH EAX
PUSH dword ptr [ESP + 0x3c]
CALL 0x000143b0
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x38]
TEST EAX,EAX
JNZ 0x000175c7
TEST byte ptr [EBX + 0x3b8],0x2
JNZ 0x00015d50
MOV dword ptr [ESP + 0x38],EDX
PUSH ESI
PUSH 0x1
PUSH 0x17
PUSH dword ptr [ESP + 0x48]
CALL 0x000183f0
LEA EAX,[EBX + 0xfffe36ce]
POP EDI
POP EBP
PUSH EAX
PUSH dword ptr [ESP + 0x3c]
CALL 0x000143b0
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x38]
TEST EAX,EAX
JNZ 0x0001758c
TEST byte ptr [EBX + 0x3b8],0x2
JNZ 0x00015d50
MOV dword ptr [ESP + 0x38],EDX
PUSH EAX
PUSH 0x0
PUSH 0x21
PUSH dword ptr [ESP + 0x48]
CALL 0x000183f0
POP EAX
LEA EAX,[EBX + 0xfffe2aa7]
POP EDX
PUSH EAX
PUSH dword ptr [ESP + 0x3c]
CALL 0x000143b0
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x38]
TEST EAX,EAX
JNZ 0x00017582
TEST byte ptr [EBX + 0x3b8],0x2
JNZ 0x00015d50
MOV dword ptr [ESP + 0x38],EDX
MOV EBP,0x1
PUSH EAX
PUSH 0x3
PUSH 0x21
PUSH dword ptr [ESP + 0x48]
CALL 0x000183f0
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x38]
MOV dword ptr [ESP + 0x38],EDX
PUSH EAX
PUSH EAX
LEA EAX,[EBX + 0xfffdc471]
PUSH EAX
PUSH dword ptr [ESP + 0x3c]
CALL 0x000143b0
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x38]
TEST EAX,EAX
JNZ 0x000174e7
CMP dword ptr [ESP + 0x34],0x0
JZ 0x000160a2
TEST EDX,EDX
JS 0x00015ba4
TEST byte ptr [EBX + 0x3b8],0x2
JNZ 0x000161c3
TEST EDX,EDX
JNZ 0x00016123
MOV dword ptr [ESP + 0x38],EDX
SUB ESP,0xc
PUSH dword ptr [ESP + 0x40]
CALL 0x00041790
ADD ESP,0xc
PUSH EAX
MOV ESI,EAX
PUSH 0x20
PUSH dword ptr [ESP + 0x48]
CALL 0x00018770
MOV dword ptr [ESP],ESI
CALL 0x00041820
LEA EAX,[EBX + 0xfffdc474]
POP EDI
POP EBP
PUSH EAX
PUSH dword ptr [ESP + 0x3c]
CALL 0x000143b0
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x38]
TEST EAX,EAX
JZ 0x00017485
MOV dword ptr [ESP + 0x38],EDX
PUSH EAX
PUSH EAX
LEA EAX,[EBX + 0xfffdc477]
PUSH EAX
PUSH dword ptr [ESP + 0x3c]
CALL 0x000143b0
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x38]
TEST EAX,EAX
JZ 0x00017485
LEA EAX,[EBX + 0xfffdc47d]
MOV dword ptr [ESP + 0x38],EDX
PUSH EDI
PUSH EDI
PUSH EAX
PUSH dword ptr [ESP + 0x3c]
CALL 0x000143b0
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x38]
TEST EAX,EAX
JZ 0x00016c88
MOV dword ptr [ESP + 0x38],EDX
MOV EBP,0x2
PUSH EAX
PUSH EAX
LEA EAX,[EBX + 0xfffdc480]
PUSH EAX
PUSH dword ptr [ESP + 0x3c]
CALL 0x000143b0
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x38]
TEST EAX,EAX
JNZ 0x00016ca6
MOV dword ptr [ESP + 0x38],EDX
MOV EBP,0x1
PUSH EAX
PUSH 0x2
PUSH 0x3
PUSH dword ptr [ESP + 0x48]
CALL 0x000183f0
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x38]
MOV dword ptr [ESP + 0x38],EDX
PUSH EAX
PUSH EAX
LEA EAX,[EBX + 0xfffdc486]
PUSH EAX
PUSH dword ptr [ESP + 0x3c]
CALL 0x000143b0
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x38]
TEST EAX,EAX
JNZ 0x0001732c
CMP dword ptr [ESP + 0x34],0x0
JZ 0x000160a2
TEST EDX,EDX
JS 0x00015ba4
TEST byte ptr [EBX + 0x3b8],0x3
JNZ 0x000161c3
TEST EDX,EDX
JNZ 0x00016723
PUSH EDI
PUSH EDI
PUSH 0x2
PUSH dword ptr [ESP + 0x48]
CALL 0x00017cd0
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x38]
CMP EAX,0x4
JZ 0x00016d22
SUB ESP,0xc
LEA EAX,[EBX + 0xfffdc5dc]
PUSH EAX
CALL 0x00044820
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x38]
MOV EBP,dword ptr [ESP + 0x34]
MOV dword ptr [ESP + 0x38],EDX
JMP 0x00016d76
CMP EDI,0x3
JNZ 0x00016d4c
PUSH EAX
LEA EAX,[EBX + 0xfffdc48e]
PUSH 0x3
PUSH EAX
PUSH EBP
CALL 0x00014720
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0001737a
PUSH ECX
PUSH 0xa
PUSH 0x0
PUSH EBP
CALL 0x000146a0
ADD ESP,0x10
TEST EAX,EAX
JZ 0x000170c2
PUSH EDX
PUSH EAX
PUSH 0x3a
PUSH dword ptr [ESP + 0x48]
CALL 0x000183f0
ADD ESP,0x10
ADD EDI,ESI
ADD EBP,EDI
CMP byte ptr [EBP],0x0
JZ 0x000171fd
PUSH ESI
PUSH ESI
PUSH 0x2c
PUSH EBP
CALL 0x00014550
ADD ESP,0x10
TEST EAX,EAX
JZ 0x000171e8
MOV byte ptr [EAX],0x0
MOV EDI,EAX
MOV ESI,0x1
SUB EDI,EBP
CMP EDI,0x1
JNZ 0x00016d2c
MOVSX EAX,byte ptr [EBP]
MOV EDX,EAX
SUB EDX,0x31
CMP DL,0x42
JA 0x000171d1
MOVZX EDX,DL
MOV ECX,dword ptr [EBX + EDX*0x4 + 0xfffdc664]
ADD ECX,EBX
JMP ECX
LEA EAX,[EBX + 0xfffdc423]
MOV dword ptr [ESP + 0x38],EDX
PUSH EBP
PUSH EBP
PUSH EAX
PUSH dword ptr [ESP + 0x3c]
CALL 0x000143b0
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x38]
TEST EAX,EAX
JZ 0x00015d3a
LEA EAX,[EBX + 0xfffdc42a]
MOV dword ptr [ESP + 0x38],EDX
MOV EBP,0x2
PUSH ECX
PUSH ECX
PUSH EAX
PUSH dword ptr [ESP + 0x3c]
CALL 0x000143b0
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x38]
TEST EAX,EAX
JZ 0x0001688c
JMP 0x0001685f
MOV dword ptr [ESP + 0x38],EDX
MOV EBP,0x1
PUSH EAX
PUSH EAX
LEA EAX,[EBX + 0xfffdc444]
PUSH EAX
PUSH dword ptr [ESP + 0x3c]
CALL 0x000143b0
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x38]
TEST EAX,EAX
JNZ 0x000165eb
TEST byte ptr [EBX + 0x3b8],0x2
JNZ 0x00015d50
TEST EDX,EDX
JNZ 0x00015c78
JMP 0x000168e1
TEST EDX,EDX
JS 0x0001663d
JMP 0x00016e44
PUSH EAX
MOV EBP,0x2
PUSH EAX
MOV EAX,EDI
MOVSX EDI,AL
LEA EAX,[EBX + 0xfffdc524]
PUSH EDI
PUSH EAX
CALL 0x00044820
ADD ESP,0x10
JMP 0x00015ba9
SUB ESP,0xc
LEA EAX,[EBX + 0xfffdc554]
MOV EBP,0x2
PUSH EAX
CALL 0x00044820
ADD ESP,0x10
JMP 0x00015ba9
MOV dword ptr [ESP + 0x38],EDX
SUB ESP,0xc
PUSH dword ptr [ESP + 0x40]
CALL 0x00019990
MOV EDI,dword ptr [ESP + 0x44]
OR ECX,0xffffffff
POP EBP
MOV dword ptr [EBX + 0x3c0],EAX
XOR EAX,EAX
POP EDX
SCASB.REPNE ES:EDI
MOV EAX,ECX
NOT EAX
SUB EAX,0x1
PUSH EAX
PUSH dword ptr [ESP + 0x40]
CALL 0x0001a1f0
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x38]
JMP 0x0001652d
MOV dword ptr [ESP + 0x38],EDX
MOV EBP,0x1
PUSH EAX
PUSH EAX
LEA EAX,[EBX + 0xfffdc45c]
PUSH EAX
PUSH dword ptr [ESP + 0x3c]
CALL 0x000143b0
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x38]
TEST EAX,EAX
JZ 0x0001700b
LEA EAX,[EBX + 0xfffdc45f]
MOV dword ptr [ESP + 0x38],EDX
PUSH ECX
PUSH ECX
PUSH EAX
PUSH dword ptr [ESP + 0x3c]
CALL 0x000143b0
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x38]
TEST EAX,EAX
JNZ 0x00016f97
TEST EDX,EDX
JS 0x0001663d
TEST byte ptr [EBX + 0x3b8],0x3
JNZ 0x00015d50
TEST EDX,EDX
JNZ 0x00015c78
JMP 0x000169a1
PUSH EAX
MOV EBP,0x2
PUSH EAX
LEA EAX,[EBX + 0xfffdc580]
PUSH dword ptr [ESP + 0x3c]
PUSH EAX
CALL 0x00044820
ADD ESP,0x10
JMP 0x00015ba9
MOV dword ptr [ESP + 0x38],EDX
MOV EBP,0x1
PUSH EAX
PUSH EAX
LEA EAX,[EBX + 0xfffdc45f]
PUSH EAX
PUSH dword ptr [ESP + 0x3c]
CALL 0x000143b0
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x38]
TEST EAX,EAX
JZ 0x00016f38
MOV dword ptr [ESP + 0x38],EDX
PUSH EAX
PUSH EAX
LEA EAX,[EBX + 0xfffdc462]
PUSH EAX
PUSH dword ptr [ESP + 0x3c]
CALL 0x000143b0
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x38]
TEST EAX,EAX
JNZ 0x0001704f
TEST EDX,EDX
JS 0x0001663d
TEST byte ptr [EBX + 0x3b8],0x3
JNZ 0x00015d50
TEST EDX,EDX
JNZ 0x00015c78
JMP 0x000169e4
MOV dword ptr [ESP + 0x38],EDX
PUSH EAX
PUSH EAX
LEA EAX,[EBX + 0xfffdc45c]
PUSH EAX
PUSH dword ptr [ESP + 0x3c]
CALL 0x000143b0
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x38]
TEST EAX,EAX
JNZ 0x00016f0f
TEST EDX,EDX
JS 0x0001663d
TEST byte ptr [EBX + 0x3b8],0x3
JNZ 0x00015d50
TEST EDX,EDX
JNZ 0x00015c78
JMP 0x00016961
MOV dword ptr [ESP + 0x38],EDX
MOV EBP,0x1
PUSH EAX
PUSH EAX
LEA EAX,[EBX + 0xfffdc462]
PUSH EAX
PUSH dword ptr [ESP + 0x3c]
CALL 0x000143b0
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x38]
TEST EAX,EAX
JZ 0x00016fc4
LEA EAX,[EBX + 0xfffdc465]
MOV dword ptr [ESP + 0x38],EDX
PUSH ECX
PUSH ECX
PUSH EAX
PUSH dword ptr [ESP + 0x3c]
CALL 0x000143b0
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x38]
TEST EAX,EAX
JNZ 0x000177b1
TEST EDX,EDX
JS 0x0001663d
TEST byte ptr [EBX + 0x3b8],0x3
JNZ 0x00015d50
TEST EDX,EDX
JZ 0x00016a27
MOV EDX,dword ptr [ESP + 0x34]
MOV EAX,dword ptr [ESP + 0x30]
MOV ECX,0x1
CALL 0x00015950
JMP 0x0001663d
TEST byte ptr [EBX + 0x3b8],0x3
JNZ 0x00015d50
TEST EDX,EDX
JNZ 0x00015c78
JMP 0x00016921
PUSH EAX
PUSH EAX
LEA EAX,[EBX + 0xfffdc640]
PUSH EBP
PUSH EAX
CALL 0x00044820
ADD ESP,0x10
JMP 0x00016d72
PUSH EDX
PUSH EDX
PUSH EAX
LEA EAX,[EBX + 0xfffdc61c]
PUSH EAX
CALL 0x00044820
ADD ESP,0x10
JMP 0x00016d72
MOV EDI,EBP
OR ECX,0xffffffff
XOR ESI,ESI
SCASB.REPNE ES:EDI
MOV EAX,ECX
NOT EAX
LEA EDI,[EAX + -0x1]
JMP 0x00016da1
PUSH EAX
PUSH EAX
LEA EAX,[EBX + 0xfffdc492]
PUSH EAX
PUSH dword ptr [ESP + 0x3c]
CALL 0x000143b0
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x38]
TEST EAX,EAX
JNZ 0x000173de
TEST byte ptr [EBX + 0x3b8],0x1
JNZ 0x000161c3
MOV dword ptr [ESP + 0x38],EDX
SUB ESP,0xc
PUSH dword ptr [ESP + 0x40]
CALL 0x00041790
ADD ESP,0xc
PUSH EAX
MOV ESI,EAX
PUSH 0x77
PUSH dword ptr [ESP + 0x48]
CALL 0x00018770
ADD ESP,0xc
PUSH 0x2
PUSH 0x78
PUSH dword ptr [ESP + 0x48]
CALL 0x000183f0
MOV dword ptr [ESP],ESI
LEA ESI,[EBX + 0xfffdc49e]
CALL 0x00041820
POP EDI
POP EBP
PUSH ESI
PUSH dword ptr [ESP + 0x3c]
CALL 0x000143b0
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x38]
TEST EAX,EAX
JNZ 0x000173ff
TEST byte ptr [EBX + 0x3b8],0x2
JNZ 0x000161c3
SUB ESP,0xc
PUSH dword ptr [ESP + 0x40]
CALL 0x00041790
ADD ESP,0xc
PUSH EAX
MOV EDI,EAX
PUSH 0x77
PUSH dword ptr [ESP + 0x48]
CALL 0x00018770
POP ECX
POP EBP
PUSH ESI
PUSH dword ptr [ESP + 0x3c]
CALL 0x000143b0
ADD ESP,0xc
CMP EAX,0x1
SBB EAX,EAX
ADD EAX,0x4
PUSH EAX
PUSH 0x78
PUSH dword ptr [ESP + 0x48]
CALL 0x000183f0
MOV dword ptr [ESP],EDI
CALL 0x00041820
POP EAX
LEA EAX,[EBX + 0xfffdc4b1]
POP EDX
PUSH EAX
PUSH dword ptr [ESP + 0x3c]
CALL 0x000143b0
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x00015ba4
TEST byte ptr [EBX + 0x3b8],0x2
JNZ 0x000161c3
PUSH EAX
PUSH 0x5
PUSH 0xd
PUSH dword ptr [ESP + 0x48]
CALL 0x000183f0
ADD ESP,0xc
PUSH dword ptr [ESP + 0x38]
PUSH 0x12
PUSH dword ptr [ESP + 0x48]
CALL 0x00018530
ADD ESP,0x10
JMP 0x00015ba4
MOV dword ptr [ESP + 0x38],EDX
PUSH EAX
PUSH EAX
LEA EAX,[EBX + 0xfffdc492]
PUSH EAX
PUSH dword ptr [ESP + 0x3c]
CALL 0x000143b0
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x38]
TEST EAX,EAX
JNZ 0x00017390
CMP dword ptr [ESP + 0x34],0x0
JZ 0x000160a2
TEST EDX,EDX
JS 0x00015ba4
TEST byte ptr [EBX + 0x3b8],0x1
JNZ 0x000161c3
TEST EDX,EDX
JZ 0x0001722b
JMP 0x00016123
PUSH EAX
PUSH 0x3
PUSH 0x3c
PUSH dword ptr [ESP + 0x48]
CALL 0x000183f0
ADD ESP,0x10
JMP 0x00016d72
MOV dword ptr [ESP + 0x38],EDX
PUSH ESI
PUSH ESI
LEA ESI,[EBX + 0xfffdc49e]
PUSH ESI
PUSH dword ptr [ESP + 0x3c]
CALL 0x000143b0
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x38]
TEST EAX,EAX
JNZ 0x00017404
CMP dword ptr [ESP + 0x34],0x0
JZ 0x000160a2
TEST EDX,EDX
JS 0x00015ba4
TEST byte ptr [EBX + 0x3b8],0x2
JNZ 0x000161c3
TEST EDX,EDX
JZ 0x00017292
JMP 0x00016123
LEA ESI,[EBX + 0xfffdc49e]
MOV dword ptr [ESP + 0x38],EDX
PUSH EAX
PUSH EAX
PUSH ESI
PUSH dword ptr [ESP + 0x3c]
CALL 0x000143b0
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x38]
TEST EAX,EAX
JZ 0x000173c4
MOV EBP,0x2
LEA EAX,[EBX + 0xfffdc4a6]
MOV dword ptr [ESP + 0x38],EDX
PUSH ECX
PUSH ECX
PUSH EAX
PUSH dword ptr [ESP + 0x3c]
CALL 0x000143b0
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x38]
TEST EAX,EAX
JZ 0x000173b1
LEA EAX,[EBX + 0xfffdc4b1]
MOV dword ptr [ESP + 0x38],EDX
PUSH EDX
PUSH EDX
PUSH EAX
PUSH dword ptr [ESP + 0x3c]
CALL 0x000143b0
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x00015ba9
CMP dword ptr [ESP + 0x34],0x0
JZ 0x000160a2
MOV EDX,dword ptr [ESP + 0x38]
TEST EDX,EDX
JS 0x00015ba4
TEST byte ptr [EBX + 0x3b8],0x2
JNZ 0x000161c3
TEST EDX,EDX
JNZ 0x00016123
JMP 0x00017304
TEST EDX,EDX
JS 0x0001663d
JNZ 0x00017091
MOV dword ptr [ESP + 0x38],EDX
PUSH EAX
PUSH 0x1
PUSH 0x3
PUSH dword ptr [ESP + 0x48]
CALL 0x000183f0
POP EAX
LEA EAX,[EBX + 0xfffdc47d]
POP EDX
PUSH EAX
PUSH dword ptr [ESP + 0x3c]
CALL 0x000143b0
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x38]
TEST EAX,EAX
JZ 0x00016c88
MOV dword ptr [ESP + 0x38],EDX
MOV EBP,0x1
PUSH EAX
PUSH EAX
LEA EAX,[EBX + 0xfffdc480]
PUSH EAX
PUSH dword ptr [ESP + 0x3c]
CALL 0x000143b0
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x38]
TEST EAX,EAX
JNZ 0x00016ca6
JMP 0x00016c88
LEA EAX,[EBX + 0xfffdc474]
MOV dword ptr [ESP + 0x38],EDX
PUSH ESI
PUSH ESI
PUSH EAX
PUSH dword ptr [ESP + 0x3c]
CALL 0x000143b0
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x38]
TEST EAX,EAX
JZ 0x00017477
LEA EAX,[EBX + 0xfffdc477]
PUSH ECX
PUSH ECX
PUSH EAX
PUSH dword ptr [ESP + 0x3c]
CALL 0x000143b0
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x38]
TEST EAX,EAX
JZ 0x00017477
MOV dword ptr [ESP + 0x38],EDX
PUSH EAX
PUSH EAX
LEA EAX,[EBX + 0xfffdc47d]
PUSH EAX
PUSH dword ptr [ESP + 0x3c]
CALL 0x000143b0
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x38]
TEST EAX,EAX
JZ 0x0001756f
PUSH EAX
PUSH EAX
LEA EAX,[EBX + 0xfffdc480]
PUSH EAX
PUSH dword ptr [ESP + 0x3c]
CALL 0x000143b0
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x38]
TEST EAX,EAX
JNZ 0x00016ca6
TEST EDX,EDX
JS 0x0001663d
JNZ 0x00017091
JMP 0x00016c88
MOV EBP,0x1
JMP 0x00016b85
LEA EAX,[EBX + 0xfffe2aa7]
MOV dword ptr [ESP + 0x38],EDX
PUSH EBP
PUSH EBP
PUSH EAX
PUSH dword ptr [ESP + 0x3c]
CALL 0x000143b0
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x38]
TEST EAX,EAX
JNZ 0x00017582
TEST byte ptr [EBX + 0x3b8],0x2
JNZ 0x00015d50
TEST EDX,EDX
JNZ 0x00015c78
JMP 0x00016b67
LEA EAX,[EBX + 0xfffe36ce]
MOV dword ptr [ESP + 0x38],EDX
MOV EBP,0x1
PUSH EDI
PUSH EDI
PUSH EAX
PUSH dword ptr [ESP + 0x3c]
CALL 0x000143b0
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x38]
TEST EAX,EAX
JNZ 0x00017647
TEST byte ptr [EBX + 0x3b8],0x2
JNZ 0x00015d50
TEST EDX,EDX
JNZ 0x00015c78
JMP 0x00016b27
LEA EAX,[EBX + 0xfffdc46e]
MOV dword ptr [ESP + 0x38],EDX
MOV EBP,0x1
PUSH ESI
PUSH ESI
PUSH EAX
PUSH dword ptr [ESP + 0x3c]
CALL 0x000143b0
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x38]
TEST EAX,EAX
JNZ 0x00017679
TEST byte ptr [EBX + 0x3b8],0x2
JNZ 0x00015d50
TEST EDX,EDX
JNZ 0x00015c78
JMP 0x00016ae7
MOV dword ptr [ESP + 0x38],EDX
PUSH EAX
PUSH EAX
LEA EAX,[EBX + 0xfffe2aa7]
PUSH EAX
PUSH dword ptr [ESP + 0x3c]
CALL 0x000143b0
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x38]
TEST EAX,EAX
JNZ 0x00016b85
TEST EDX,EDX
JS 0x0001663d
JMP 0x000175ad
LEA EAX,[EBX + 0xfffe36ce]
MOV dword ptr [ESP + 0x38],EDX
PUSH ECX
PUSH ECX
PUSH EAX
PUSH dword ptr [ESP + 0x3c]
CALL 0x000143b0
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x38]
TEST EAX,EAX
JNZ 0x00017647
TEST EDX,EDX
JS 0x0001663d
JMP 0x000175ed
LEA EAX,[EBX + 0xfffdc46b]
MOV dword ptr [ESP + 0x38],EDX
MOV EBP,0x1
PUSH ECX
PUSH ECX
PUSH EAX
PUSH dword ptr [ESP + 0x3c]
CALL 0x000143b0
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x38]
TEST EAX,EAX
JNZ 0x00017727
TEST byte ptr [EBX + 0x3b8],0x3
JNZ 0x00015d50
TEST EDX,EDX
JNZ 0x00015c78
JMP 0x00016aa7
LEA EAX,[EBX + 0xfffdc468]
MOV dword ptr [ESP + 0x38],EDX
MOV EBP,0x1
PUSH EDX
PUSH EDX
PUSH EAX
PUSH dword ptr [ESP + 0x3c]
CALL 0x000143b0
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x38]
TEST EAX,EAX
JNZ 0x00017759
TEST byte ptr [EBX + 0x3b8],0x3
JNZ 0x00015d50
TEST EDX,EDX
JNZ 0x00017091
JMP 0x00016a67
MOV dword ptr [ESP + 0x38],EDX
PUSH EAX
PUSH EAX
LEA EAX,[EBX + 0xfffdc46e]
PUSH EAX
PUSH dword ptr [ESP + 0x3c]
CALL 0x000143b0
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x38]
TEST EAX,EAX
JNZ 0x00017679
TEST EDX,EDX
JS 0x0001663d
JMP 0x0001762d
LEA EAX,[EBX + 0xfffdc46b]
MOV dword ptr [ESP + 0x38],EDX
PUSH ECX
PUSH ECX
PUSH EAX
PUSH dword ptr [ESP + 0x3c]
CALL 0x000143b0
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x38]
TEST EAX,EAX
JNZ 0x00017727
TEST EDX,EDX
JS 0x0001663d
JMP 0x000176cd
MOV dword ptr [ESP + 0x38],EDX
MOV EBP,0x1
PUSH EAX
PUSH EAX
LEA EAX,[EBX + 0xfffdc465]
PUSH EAX
PUSH dword ptr [ESP + 0x3c]
CALL 0x000143b0
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x38]
TEST EAX,EAX
JZ 0x0001707c
MOV dword ptr [ESP + 0x38],EDX
PUSH EAX
PUSH EAX
LEA EAX,[EBX + 0xfffdc468]
PUSH EAX
PUSH dword ptr [ESP + 0x3c]
CALL 0x000143b0
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x38]
TEST EAX,EAX
JNZ 0x00017759
TEST EDX,EDX
JS 0x0001663d
JMP 0x0001770d
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Type propagation algorithm not settling */\n\nundefined4 FUN_00015b60(byte *param_1,char *param_2,int param_3)\n\n{\n  char cVar1;\n  FILE *__stream;\n  int iVar2;\n  long lVar3;\n  char *pcVar4;\n  int iVar5;\n  uint uVar6;\n  undefined4 uVar7;\n  char *pcVar8;\n  byte *pbVar9;\n  int iVar10;\n  byte *pbVar11;\n  bool bVar12;\n  bool bVar13;\n  undefined1 uVar14;\n  bool bVar15;\n  undefined1 uVar16;\n  byte bVar17;\n  undefined1 auStack_2c [8];\n  int local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  bVar17 = 0;\n  iVar5 = 6;\n  uStack_14 = 0x15b6e;\n  bVar12 = &stack0xfffffff0 < (undefined1 *)0x1c;\n  bVar15 = &stack0x00000000 == (undefined1 *)0x2c;\n  pbVar9 = param_1;\n  pbVar11 = (byte *)"-load";\n  do {\n    if (iVar5 == 0) break;\n    iVar5 = iVar5 + -1;\n    bVar12 = *pbVar9 < *pbVar11;\n    bVar15 = *pbVar9 == *pbVar11;\n    pbVar9 = pbVar9 + 1;\n    pbVar11 = pbVar11 + 1;\n  } while (bVar15);\n  bVar13 = false;\n  bVar12 = (!bVar12 && !bVar15) == bVar12;\n  if (bVar12) {\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    thunk_FUN_000249b0();\n    DAT_0006f2f4 = 1;\n    DAT_0006f2f8 = FUN_00019990();\n    return 2;\n  }\n  iVar5 = 5;\n  pbVar9 = param_1;\n  pbVar11 = &DAT_0004b0b5;\n  do {\n    if (iVar5 == 0) break;\n    iVar5 = iVar5 + -1;\n    bVar13 = *pbVar9 < *pbVar11;\n    bVar12 = *pbVar9 == *pbVar11;\n    pbVar9 = pbVar9 + 1;\n    pbVar11 = pbVar11 + 1;\n  } while (bVar12);\n  bVar15 = false;\n  bVar12 = (!bVar13 && !bVar12) == bVar13;\n  if (bVar12) {\n    if (param_3 < 0) {\n      return 1;\n    }\n    if ((DAT_0006f0a0 & 3) == 0) {\n      if (param_3 == 0) {\n        DAT_0006f2dc = 3;\n        DAT_0006f2e4 = 0x16;\nLAB_00015c0d:\n        FUN_000183f0();\n        FUN_000183f0();\n        return 1;\n      }\n      goto LAB_00015c78;\n    }\n    goto LAB_00015d50;\n  }\n  iVar5 = 8;\n  pbVar9 = param_1;\n  pbVar11 = (byte *)"-telnet";\n  do {\n    if (iVar5 == 0) break;\n    iVar5 = iVar5 + -1;\n    bVar15 = *pbVar9 < *pbVar11;\n    bVar12 = *pbVar9 == *pbVar11;\n    pbVar9 = pbVar9 + 1;\n    pbVar11 = pbVar11 + 1;\n  } while (bVar12);\n  bVar13 = false;\n  bVar12 = (!bVar15 && !bVar12) == bVar15;\n  if (bVar12) {\n    if (param_3 < 0) {\n      return 1;\n    }\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n    if (param_3 == 0) {\n      DAT_0006f2dc = 1;\n      DAT_0006f2e4 = 0x17;\n      goto LAB_00015c0d;\n    }\n    goto LAB_00015c78;\n  }\n  iVar5 = 8;\n  pbVar9 = param_1;\n  pbVar11 = (byte *)"-rlogin";\n  do {\n    if (iVar5 == 0) break;\n    iVar5 = iVar5 + -1;\n    bVar13 = *pbVar9 < *pbVar11;\n    bVar12 = *pbVar9 == *pbVar11;\n    pbVar9 = pbVar9 + 1;\n    pbVar11 = pbVar11 + 1;\n  } while (bVar12);\n  bVar15 = false;\n  bVar12 = (!bVar13 && !bVar12) == bVar13;\n  if (bVar12) {\n    if (param_3 < 0) {\n      return 1;\n    }\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n    if (param_3 == 0) {\n      DAT_0006f2dc = 2;\n      DAT_0006f2e4 = 0x201;\n      goto LAB_00015c0d;\n    }\n    goto LAB_00015c78;\n  }\n  iVar5 = 5;\n  pbVar9 = param_1;\n  pbVar11 = &DAT_0004b0ca;\n  do {\n    if (iVar5 == 0) break;\n    iVar5 = iVar5 + -1;\n    bVar15 = *pbVar9 < *pbVar11;\n    bVar12 = *pbVar9 == *pbVar11;\n    pbVar9 = pbVar9 + 1;\n    pbVar11 = pbVar11 + 1;\n  } while (bVar12);\n  bVar13 = false;\n  bVar12 = (!bVar15 && !bVar12) == bVar15;\n  if (bVar12) {\n    if (param_3 < 0) {\n      return 1;\n    }\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n    if (param_3 != 0) goto LAB_00015c78;\n    uVar14 = auStack_2c < (undefined1 *)0x4;\n    uVar16 = &stack0x00000000 == (undefined1 *)0x30;\n    DAT_0006f2dc = 0;\n    FUN_000183f0();\n    iVar5 = 8;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)"-serial";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);\n    bVar12 = false;\n    bVar15 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n    if (bVar15) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      goto LAB_00015dd0;\n    }\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b0d7;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar12 = *pbVar9 < *pbVar11;\n      bVar15 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar15);\n    bVar12 = (!bVar12 && !bVar15) == bVar12;\n    if (bVar12) goto LAB_00015e28;\nLAB_00015e31:\n    uVar7 = 1;\n  }\n  else {\n    iVar5 = 8;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)"-serial";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar13 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + 1;\n      pbVar11 = pbVar11 + 1;\n    } while (bVar12);\n    bVar15 = false;\n    bVar12 = (!bVar13 && !bVar12) == bVar13;\n    if (bVar12) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\nLAB_00015dd0:\n      DAT_0006f2dc = 4;\n      FUN_000183f0();\n      FUN_00017e80();\n      uVar14 = (undefined1 *)0xfffffff3 < &stack0xffffffc4;\n      uVar16 = &stack0x00000000 == (undefined1 *)0x30;\n      FUN_00018530();\n      iVar5 = 3;\n      pbVar9 = param_1;\n      pbVar11 = &DAT_0004b0d7;\n      do {\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        uVar14 = *pbVar9 < *pbVar11;\n        uVar16 = *pbVar9 == *pbVar11;\n        pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n      } while ((bool)uVar16);\n      bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n      if (bVar12) goto LAB_00015e28;\n      goto LAB_00015e31;\n    }\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b0d7;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + 1;\n      pbVar11 = pbVar11 + 1;\n    } while (bVar12);\n    if ((!bVar15 && !bVar12) == bVar15) {\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_00015e28:\n      DAT_0006f2e8 = DAT_0006f2e8 | 1;\n      bVar12 = DAT_0006f2e8 == 0;\n      goto LAB_00015e31;\n    }\n    uVar7 = 0;\n    bVar12 = true;\n  }\n  bVar15 = false;\n  iVar5 = 3;\n  pbVar9 = param_1;\n  pbVar11 = (byte *)0x53a29;\n  do {\n    if (iVar5 == 0) break;\n    iVar5 = iVar5 + -1;\n    bVar15 = *pbVar9 < *pbVar11;\n    bVar12 = *pbVar9 == *pbVar11;\n    pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n    pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n  } while (bVar12);\n  bVar13 = false;\n  bVar12 = (!bVar15 && !bVar12) == bVar15;\n  if (bVar12) {\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n    if (param_3 != 0) goto LAB_00016123;\n    uVar14 = auStack_2c < (undefined1 *)0x4;\n    uVar16 = &stack0x00000000 == (undefined1 *)0x30;\n    FUN_00018530();\n    iVar5 = 9;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)"-loghost";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);\n    bVar12 = false;\n    bVar15 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n    if (bVar15) {\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n      goto LAB_00015ec5;\n    }\n    iVar5 = 9;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)"-hostkey";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar12 = *pbVar9 < *pbVar11;\n      bVar15 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar15);\n    bVar12 = (!bVar12 && !bVar15) == bVar12;\n    if (bVar12) goto LAB_00016218;\nLAB_00016248:\n    uVar7 = 2;\nLAB_0001624d:\n    bVar15 = false;\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b0ec;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar12 = (!bVar15 && !bVar12) == bVar15;\n    if (bVar12) {\nLAB_00016647:\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;\n      bVar12 = param_3 == 0;\n      if (!bVar12) goto LAB_00016123;\n      goto LAB_00015f8f;\n    }\nLAB_0001626b:\n    bVar15 = false;\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b0ef;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar13 = false;\n    bVar12 = (!bVar15 && !bVar12) == bVar15;\n    if (bVar12) goto LAB_00016647;\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)0x53a3b;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar13 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar15 = false;\n    bVar12 = (!bVar13 && !bVar12) == bVar13;\n    if (bVar12) goto LAB_00016647;\n    iVar5 = 4;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b0fd;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar12 = (!bVar15 && !bVar12) == bVar15;\n    if (!bVar12) goto LAB_00016698;\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;\n    if (param_3 != 0) goto LAB_00016123;\nLAB_000162ed:\n    iVar5 = FUN_00019140();\n    if (iVar5 == 0) {\n      FUN_00044820();\n      return 2;\n    }\n    uVar7 = 2;\n    FUN_00019ef0();\n    FUN_00018530();\n    strtol((char *)(iVar5 + 1),(char **)0x0,10);\n    uVar14 = (undefined1 *)0xfffffff3 < &stack0xffffffc4;\n    uVar16 = &stack0x00000000 == (undefined1 *)0x30;\n    FUN_000183f0();\n    FUN_0001a110();\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b101;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);\n    bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n    if (!bVar12) goto LAB_000166e0;\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;\nLAB_0001639b:\n    iVar10 = 0;\n    iVar5 = 0;\n    __stream = fopen64(param_2,"r");\n    local_24 = 0;\n    if (__stream == (FILE *)0x0) {\n      FUN_00044820();\n      return 2;\n    }\n    while (iVar2 = fgetc(__stream), iVar2 != -1) {\n      if (iVar10 < local_24) {\n        *(char *)(iVar5 + iVar10) = (char)iVar2;\n      }\n      else {\n        local_24 = iVar10 + 0x200;\n        local_20 = iVar2;\n        iVar5 = FUN_00019c80();\n        *(char *)(iVar5 + iVar10) = (char)local_20;\n      }\n      iVar10 = iVar10 + 1;\n    }\n    if (iVar10 < local_24) {\n      *(undefined1 *)(iVar5 + iVar10) = 0;\n    }\n    else {\n      iVar5 = FUN_00019c80();\n      *(undefined1 *)(iVar5 + iVar10) = 0;\n    }\n    uVar7 = 2;\n    fclose(__stream);\n    FUN_00018530();\n    FUN_00018530();\n    uVar14 = (undefined1 *)0xfffffff3 < &stack0xffffffc4;\n    uVar16 = &stack0x00000000 == (undefined1 *)0x30;\n    FUN_000183f0();\n    FUN_0001a110();\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b104;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);\n    bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n    if (!bVar12) goto LAB_00016777;\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\nLAB_000164a7:\n    strtol(param_2,(char **)0x0,10);\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-pw");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\nLAB_000164f6:\n      iVar5 = FUN_00017cd0();\n      if (iVar5 == 3) {\n        DAT_0006f0a8 = FUN_00019990();\n        iVar5 = -1;\n        pcVar8 = param_2;\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          cVar1 = *pcVar8;\n          pcVar8 = pcVar8 + (uint)bVar17 * -2 + 1;\n        } while (cVar1 != '\0');\n        FUN_0001a1f0();\n      }\n      else {\n        FUN_00044820();\n      }\n      iVar5 = strcmp((char *)param_1,"-agent");\n      if ((iVar5 == 0) || (iVar5 = strcmp((char *)param_1,"-pagent"), iVar5 == 0))\n      goto LAB_00015d3a;\n      uVar7 = 2;\n      iVar5 = strcmp((char *)param_1,"-pageant");\n      if (iVar5 == 0) goto LAB_0001688c;\n    }\n    else {\n      iVar5 = strcmp((char *)param_1,"-agent");\n      if (iVar5 == 0) {\nLAB_00015d3a:\n        if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n        goto LAB_000168a1;\n      }\n      uVar7 = 2;\n      iVar5 = strcmp((char *)param_1,"-pagent");\n      if (iVar5 == 0) goto LAB_0001688c;\nLAB_0001685f:\n      iVar5 = strcmp((char *)param_1,"-pageant");\n      if (iVar5 == 0) goto LAB_00016884;\n    }\n    iVar5 = strcmp((char *)param_1,"-noagent");\n    if ((iVar5 == 0) || (iVar5 = strcmp((char *)param_1,"-nopagent"), iVar5 == 0)) {\nLAB_00016e5e:\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_00016e44:\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\n      goto LAB_000168e1;\n    }\nLAB_000165eb:\n    iVar5 = strcmp((char *)param_1,"-nopageant");\n    if (iVar5 == 0) goto LAB_00016e5e;\n    iVar5 = strcmp((char *)param_1,"-A");\n    if (iVar5 != 0) {\n      iVar5 = strcmp((char *)param_1,"-a");\n      if (iVar5 != 0) goto LAB_00016f0f;\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_0001700b;\n    }\n    if (param_3 < 0) {\n      return 1;\n    }\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n    if (param_3 != 0) goto LAB_00015c78;\nLAB_00016921:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-a");\n    if (iVar5 != 0) {\n      uVar7 = 1;\n      iVar5 = strcmp((char *)param_1,"-X");\n      if (iVar5 == 0) goto LAB_00016f38;\nLAB_00016f97:\n      iVar5 = strcmp((char *)param_1,"-x");\n      if (iVar5 != 0) goto LAB_0001704f;\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_00016fc4:\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\n      goto LAB_000169e4;\n    }\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\nLAB_00016961:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-X");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      goto LAB_000169a1;\n    }\n    uVar7 = 1;\n    iVar5 = strcmp((char *)param_1,"-x");\n    if (iVar5 == 0) goto LAB_00016fc4;\nLAB_0001704f:\n    iVar5 = strcmp((char *)param_1,"-t");\n    if (iVar5 == 0) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_0001707c;\n    }\nLAB_000177b1:\n    iVar5 = strcmp((char *)param_1,"-T");\n    if (iVar5 != 0) goto LAB_00017759;\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_0001770d:\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n    if (param_3 != 0) goto LAB_00017091;\nLAB_00016a67:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-N");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\nLAB_00016aa7:\n      FUN_000183f0();\n      iVar5 = strcmp((char *)param_1,"-C");\n      if (iVar5 == 0) {\n        if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n        goto LAB_00016ae7;\n      }\n      uVar7 = 1;\n      iVar5 = strcmp((char *)param_1,"-1");\n      if (iVar5 != 0) goto LAB_00017647;\nLAB_000175ed:\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\n      goto LAB_00016b27;\n    }\n    uVar7 = 1;\n    iVar5 = strcmp((char *)param_1,"-C");\n    if (iVar5 == 0) goto LAB_0001762d;\nLAB_00017679:\n    iVar5 = strcmp((char *)param_1,"-1");\n    if (iVar5 == 0) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_000175ed;\n    }\nLAB_00017647:\n    iVar5 = strcmp((char *)param_1,"-2");\n    if (iVar5 == 0) {\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_000175ad:\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n      if (param_3 != 0) {\nLAB_00015c78:\n        FUN_00015950();\n        return 1;\n      }\nLAB_00016b67:\n      uVar7 = 1;\n      FUN_000183f0();\n    }\n  }\n  else {\n    iVar5 = 9;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)"-loghost";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar13 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar15 = false;\n    bVar12 = (!bVar13 && !bVar12) == bVar13;\n    if (!bVar12) {\n      iVar5 = 9;\n      pbVar9 = param_1;\n      pbVar11 = (byte *)"-hostkey";\n      do {\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        bVar15 = *pbVar9 < *pbVar11;\n        bVar12 = *pbVar9 == *pbVar11;\n        pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n      } while (bVar12);\n      bVar12 = (!bVar15 && !bVar12) == bVar15;\n      if (bVar12) {\n        if (param_2 == (char *)0x0) {\n          return 0xfffffffe;\n        }\n        if (param_3 < 0) {\n          return 2;\n        }\nLAB_00016218:\n        if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n        if (param_3 != 0) goto LAB_00016123;\n        goto LAB_00015f0d;\n      }\n      goto LAB_0001624d;\n    }\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n    if (param_3 != 0) goto LAB_00016123;\nLAB_00015ec5:\n    uVar14 = auStack_2c < (undefined1 *)0x4;\n    uVar16 = &stack0x00000000 == (undefined1 *)0x30;\n    FUN_00018530();\n    iVar5 = 9;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)"-hostkey";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);\n    bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n    if (!bVar12) goto LAB_00016248;\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\nLAB_00015f0d:\n    FUN_00019990();\n    iVar5 = FUN_0001a210();\n    uVar14 = 0;\n    uVar16 = iVar5 == 0;\n    if ((bool)uVar16) {\n      FUN_00044820();\n      FUN_0001a110();\n      return 2;\n    }\n    uVar7 = 2;\n    FUN_000185e0();\n    FUN_0001a110();\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b0ec;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);\n    bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n    if (!bVar12) goto LAB_0001626b;\n    bVar12 = (DAT_0006f0a0 & 3) == 0;\n    if (!bVar12) goto LAB_000161c3;\nLAB_00015f8f:\n    bVar15 = false;\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)0x53a3b;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    if ((!bVar15 && !bVar12) == bVar15) {\n      FUN_00019ef0();\n      FUN_00019990();\n    }\n    else {\n      iVar5 = FUN_00019140();\n      if (iVar5 == 0) {\n        FUN_00044820();\n        return 2;\n      }\n      do {\n        iVar5 = FUN_00019140();\n      } while (iVar5 != 0);\n      FUN_00019ef0();\n      FUN_00019990();\n    }\n    uVar14 = (undefined1 *)0xffffffef < &stack0xffffffc4;\n    uVar16 = &stack0x00000000 == (undefined1 *)0x2c;\n    uVar7 = 2;\n    FUN_000185e0();\n    FUN_0001a110();\n    FUN_0001a110();\n    iVar5 = 4;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b0fd;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);\n    bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n    if (bVar12) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;\n      goto LAB_000162ed;\n    }\nLAB_00016698:\n    bVar15 = false;\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b101;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar12 = (!bVar15 && !bVar12) == bVar15;\n    if (bVar12) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;\n      if (param_3 != 0) goto LAB_00016123;\n      goto LAB_0001639b;\n    }\nLAB_000166e0:\n    bVar15 = false;\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b104;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar12 = (!bVar15 && !bVar12) == bVar15;\n    if (bVar12) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n      if (param_3 != 0) goto LAB_00016723;\n      goto LAB_000164a7;\n    }\nLAB_00016777:\n    bVar15 = false;\n    iVar5 = 4;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b107;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    if ((!bVar15 && !bVar12) == bVar15) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n      if (param_3 != 0) goto LAB_00016723;\n      goto LAB_000164f6;\n    }\n    iVar5 = strcmp((char *)param_1,"-agent");\n    if ((iVar5 != 0) && (iVar5 = strcmp((char *)param_1,"-pagent"), iVar5 != 0)) goto LAB_0001685f;\nLAB_00016884:\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_0001688c:\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n    if (param_3 != 0) goto LAB_00015c78;\nLAB_000168a1:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-noagent");\n    if (iVar5 != 0) {\n      uVar7 = 1;\n      iVar5 = strcmp((char *)param_1,"-nopagent");\n      if (iVar5 != 0) goto LAB_000165eb;\n      goto LAB_00016e44;\n    }\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\nLAB_000168e1:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-A");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      goto LAB_00016921;\n    }\n    uVar7 = 1;\n    iVar5 = strcmp((char *)param_1,"-a");\n    if (iVar5 == 0) {\nLAB_0001700b:\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\n      goto LAB_00016961;\n    }\nLAB_00016f0f:\n    iVar5 = strcmp((char *)param_1,"-X");\n    if (iVar5 != 0) goto LAB_00016f97;\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_00016f38:\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n    if (param_3 != 0) goto LAB_00015c78;\nLAB_000169a1:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-x");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\nLAB_000169e4:\n      FUN_000183f0();\n      iVar5 = strcmp((char *)param_1,"-t");\n      if (iVar5 == 0) {\n        if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n        goto LAB_00016a27;\n      }\n      uVar7 = 1;\n      iVar5 = strcmp((char *)param_1,"-T");\n      if (iVar5 == 0) goto LAB_0001770d;\nLAB_00017759:\n      iVar5 = strcmp((char *)param_1,"-N");\n      if (iVar5 != 0) goto LAB_00017727;\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_000176cd:\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\n      goto LAB_00016aa7;\n    }\n    uVar7 = 1;\n    iVar5 = strcmp((char *)param_1,"-t");\n    if (iVar5 != 0) goto LAB_000177b1;\nLAB_0001707c:\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n    if (param_3 != 0) goto LAB_00017091;\nLAB_00016a27:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-T");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      goto LAB_00016a67;\n    }\n    uVar7 = 1;\n    iVar5 = strcmp((char *)param_1,"-N");\n    if (iVar5 == 0) goto LAB_000176cd;\nLAB_00017727:\n    iVar5 = strcmp((char *)param_1,"-C");\n    if (iVar5 != 0) goto LAB_00017679;\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_0001762d:\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n    if (param_3 != 0) goto LAB_00015c78;\nLAB_00016ae7:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-1");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\nLAB_00016b27:\n      FUN_000183f0();\n      iVar5 = strcmp((char *)param_1,"-2");\n      if (iVar5 == 0) {\n        if ((DAT_0006f0a0 & 2) != 0) {\nLAB_00015d50:\n          FUN_00044820();\n          return 1;\n        }\n        goto LAB_00016b67;\n      }\n    }\n    else {\n      iVar5 = strcmp((char *)param_1,"-2");\n      if (iVar5 == 0) goto LAB_000175ad;\n    }\n    uVar7 = 1;\n  }\n  iVar5 = strcmp((char *)param_1,"-i");\n  if (iVar5 == 0) {\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n    if (param_3 != 0) goto LAB_00016123;\n    FUN_00041790();\n    FUN_00018770();\n    FUN_00041820();\n    iVar5 = strcmp((char *)param_1,"-4");\n    if ((iVar5 == 0) || (iVar5 = strcmp((char *)param_1,"-ipv4"), iVar5 == 0)) goto LAB_00017485;\n    iVar5 = strcmp((char *)param_1,"-6");\n    if (iVar5 == 0) goto LAB_00016c88;\n    uVar7 = 2;\n    iVar5 = strcmp((char *)param_1,"-ipv6");\njoined_r0x000174dc:\n    if (iVar5 == 0) goto LAB_00016c88;\n  }\n  else {\n    iVar5 = strcmp((char *)param_1,"-4");\n    if ((iVar5 == 0) || (iVar5 = strcmp((char *)param_1,"-ipv4"), iVar5 == 0)) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\nLAB_00017091:\n        FUN_00015950();\n        return 1;\n      }\nLAB_00017485:\n      FUN_000183f0();\n      iVar5 = strcmp((char *)param_1,"-6");\n      if (iVar5 != 0) {\n        uVar7 = 1;\n        iVar5 = strcmp((char *)param_1,"-ipv6");\n        goto joined_r0x000174dc;\n      }\n    }\n    else {\n      iVar5 = strcmp((char *)param_1,"-6");\n      if ((iVar5 != 0) && (iVar5 = strcmp((char *)param_1,"-ipv6"), iVar5 != 0)) goto LAB_00016ca6;\n      if (param_3 < 0) {\n        return 1;\n      }\n      if (param_3 != 0) goto LAB_00017091;\n    }\nLAB_00016c88:\n    uVar7 = 1;\n    FUN_000183f0();\n  }\nLAB_00016ca6:\n  iVar5 = strcmp((char *)param_1,"-sercfg");\n  if (iVar5 == 0) {\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;\n    if (param_3 != 0) {\nLAB_00016723:\n      FUN_00015950();\n      return 2;\n    }\n    iVar5 = FUN_00017cd0();\n    pcVar8 = param_2;\n    if (iVar5 != 4) {\n      FUN_00044820();\n    }\n    for (; *pcVar8 != '\0'; pcVar8 = pcVar8 + iVar10 + iVar5) {\n      pcVar4 = strchr(pcVar8,0x2c);\n      if (pcVar4 == (char *)0x0) {\n        uVar6 = 0xffffffff;\n        iVar5 = 0;\n        pcVar4 = pcVar8;\n        do {\n          if (uVar6 == 0) break;\n          uVar6 = uVar6 - 1;\n          cVar1 = *pcVar4;\n          pcVar4 = pcVar4 + (uint)bVar17 * -2 + 1;\n        } while (cVar1 != '\0');\n        iVar10 = ~uVar6 - 1;\n      }\n      else {\n        *pcVar4 = '\0';\n        iVar5 = 1;\n        iVar10 = (int)pcVar4 - (int)pcVar8;\n      }\n      if (iVar10 == 1) {\n        switch(*pcVar8) {\n        case '1':\n        case '2':\n          FUN_000183f0();\n          break;\n        default:\n          FUN_00044820();\n          break;\n        case '5':\n        case '6':\n        case '7':\n        case '8':\n        case '9':\n          FUN_000183f0();\n          break;\n        case 'D':\n          FUN_000183f0();\n          break;\n        case 'N':\n          FUN_000183f0();\n          break;\n        case 'R':\n          FUN_000183f0();\n          break;\n        case 'X':\n          FUN_000183f0();\n          break;\n        case 'e':\n          FUN_000183f0();\n          break;\n        case 'm':\n          FUN_000183f0();\n          break;\n        case 'n':\n          FUN_000183f0();\n          break;\n        case 'o':\n          FUN_000183f0();\n          break;\n        case 's':\n          FUN_000183f0();\n        }\n      }\n      else if ((iVar10 == 3) && (iVar2 = strncmp(pcVar8,"1.5",3), iVar2 == 0)) {\n        FUN_000183f0();\n      }\n      else {\n        lVar3 = strtol(pcVar8,(char **)0x0,10);\n        if (lVar3 == 0) {\n          FUN_00044820();\n        }\n        else {\n          FUN_000183f0();\n        }\n      }\n    }\n    iVar5 = strcmp((char *)param_1,"-sessionlog");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 1) != 0) goto LAB_000161c3;\n      goto LAB_0001722b;\n    }\n    iVar5 = strcmp((char *)param_1,"-sshlog");\n    if (iVar5 != 0) goto LAB_000173ff;\nLAB_000173c4:\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n    if (param_3 != 0) {\nLAB_00016123:\n      FUN_00015950();\n      return 2;\n    }\n  }\n  else {\n    iVar5 = strcmp((char *)param_1,"-sessionlog");\n    if (iVar5 != 0) {\n      iVar5 = strcmp((char *)param_1,"-sshlog");\n      if (iVar5 != 0) goto LAB_00017404;\nLAB_000173b1:\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      goto LAB_000173c4;\n    }\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    if ((DAT_0006f0a0 & 1) != 0) goto LAB_000161c3;\n    if (param_3 != 0) goto LAB_00016123;\nLAB_0001722b:\n    FUN_00041790();\n    FUN_00018770();\n    FUN_000183f0();\n    FUN_00041820();\n    iVar5 = strcmp((char *)param_1,"-sshlog");\n    if (iVar5 != 0) {\nLAB_000173ff:\n      uVar7 = 2;\nLAB_00017404:\n      iVar5 = strcmp((char *)param_1,"-sshrawlog");\n      if (iVar5 != 0) {\n        iVar5 = strcmp((char *)param_1,"-proxycmd");\n        if (iVar5 != 0) {\n          return uVar7;\n        }\n        if (param_2 == (char *)0x0) {\n          return 0xfffffffe;\n        }\n        if (param_3 < 0) {\n          return 2;\n        }\n        if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n        if (param_3 != 0) goto LAB_00016123;\n        goto LAB_00017304;\n      }\n      goto LAB_000173b1;\n    }\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n  }\n  FUN_00041790();\n  FUN_00018770();\n  strcmp((char *)param_1,"-sshlog");\n  FUN_000183f0();\n  FUN_00041820();\n  iVar5 = strcmp((char *)param_1,"-proxycmd");\n  if (iVar5 != 0) {\n    return 2;\n  }\n  if ((DAT_0006f0a0 & 2) == 0) {\nLAB_00017304:\n    FUN_000183f0();\n    FUN_00018530();\n    return 2;\n  }\nLAB_000161c3:\n  FUN_00044820();\n  return 2;\n}\n\n" comment comment (function_definition "undefined4 FUN_00015b60(byte *param_1,char *param_2,int param_3)\n\n{\n  char cVar1;\n  FILE *__stream;\n  int iVar2;\n  long lVar3;\n  char *pcVar4;\n  int iVar5;\n  uint uVar6;\n  undefined4 uVar7;\n  char *pcVar8;\n  byte *pbVar9;\n  int iVar10;\n  byte *pbVar11;\n  bool bVar12;\n  bool bVar13;\n  undefined1 uVar14;\n  bool bVar15;\n  undefined1 uVar16;\n  byte bVar17;\n  undefined1 auStack_2c [8];\n  int local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  bVar17 = 0;\n  iVar5 = 6;\n  uStack_14 = 0x15b6e;\n  bVar12 = &stack0xfffffff0 < (undefined1 *)0x1c;\n  bVar15 = &stack0x00000000 == (undefined1 *)0x2c;\n  pbVar9 = param_1;\n  pbVar11 = (byte *)"-load";\n  do {\n    if (iVar5 == 0) break;\n    iVar5 = iVar5 + -1;\n    bVar12 = *pbVar9 < *pbVar11;\n    bVar15 = *pbVar9 == *pbVar11;\n    pbVar9 = pbVar9 + 1;\n    pbVar11 = pbVar11 + 1;\n  } while (bVar15);\n  bVar13 = false;\n  bVar12 = (!bVar12 && !bVar15) == bVar12;\n  if (bVar12) {\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    thunk_FUN_000249b0();\n    DAT_0006f2f4 = 1;\n    DAT_0006f2f8 = FUN_00019990();\n    return 2;\n  }\n  iVar5 = 5;\n  pbVar9 = param_1;\n  pbVar11 = &DAT_0004b0b5;\n  do {\n    if (iVar5 == 0) break;\n    iVar5 = iVar5 + -1;\n    bVar13 = *pbVar9 < *pbVar11;\n    bVar12 = *pbVar9 == *pbVar11;\n    pbVar9 = pbVar9 + 1;\n    pbVar11 = pbVar11 + 1;\n  } while (bVar12);\n  bVar15 = false;\n  bVar12 = (!bVar13 && !bVar12) == bVar13;\n  if (bVar12) {\n    if (param_3 < 0) {\n      return 1;\n    }\n    if ((DAT_0006f0a0 & 3) == 0) {\n      if (param_3 == 0) {\n        DAT_0006f2dc = 3;\n        DAT_0006f2e4 = 0x16;\nLAB_00015c0d:\n        FUN_000183f0();\n        FUN_000183f0();\n        return 1;\n      }\n      goto LAB_00015c78;\n    }\n    goto LAB_00015d50;\n  }\n  iVar5 = 8;\n  pbVar9 = param_1;\n  pbVar11 = (byte *)"-telnet";\n  do {\n    if (iVar5 == 0) break;\n    iVar5 = iVar5 + -1;\n    bVar15 = *pbVar9 < *pbVar11;\n    bVar12 = *pbVar9 == *pbVar11;\n    pbVar9 = pbVar9 + 1;\n    pbVar11 = pbVar11 + 1;\n  } while (bVar12);\n  bVar13 = false;\n  bVar12 = (!bVar15 && !bVar12) == bVar15;\n  if (bVar12) {\n    if (param_3 < 0) {\n      return 1;\n    }\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n    if (param_3 == 0) {\n      DAT_0006f2dc = 1;\n      DAT_0006f2e4 = 0x17;\n      goto LAB_00015c0d;\n    }\n    goto LAB_00015c78;\n  }\n  iVar5 = 8;\n  pbVar9 = param_1;\n  pbVar11 = (byte *)"-rlogin";\n  do {\n    if (iVar5 == 0) break;\n    iVar5 = iVar5 + -1;\n    bVar13 = *pbVar9 < *pbVar11;\n    bVar12 = *pbVar9 == *pbVar11;\n    pbVar9 = pbVar9 + 1;\n    pbVar11 = pbVar11 + 1;\n  } while (bVar12);\n  bVar15 = false;\n  bVar12 = (!bVar13 && !bVar12) == bVar13;\n  if (bVar12) {\n    if (param_3 < 0) {\n      return 1;\n    }\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n    if (param_3 == 0) {\n      DAT_0006f2dc = 2;\n      DAT_0006f2e4 = 0x201;\n      goto LAB_00015c0d;\n    }\n    goto LAB_00015c78;\n  }\n  iVar5 = 5;\n  pbVar9 = param_1;\n  pbVar11 = &DAT_0004b0ca;\n  do {\n    if (iVar5 == 0) break;\n    iVar5 = iVar5 + -1;\n    bVar15 = *pbVar9 < *pbVar11;\n    bVar12 = *pbVar9 == *pbVar11;\n    pbVar9 = pbVar9 + 1;\n    pbVar11 = pbVar11 + 1;\n  } while (bVar12);\n  bVar13 = false;\n  bVar12 = (!bVar15 && !bVar12) == bVar15;\n  if (bVar12) {\n    if (param_3 < 0) {\n      return 1;\n    }\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n    if (param_3 != 0) goto LAB_00015c78;\n    uVar14 = auStack_2c < (undefined1 *)0x4;\n    uVar16 = &stack0x00000000 == (undefined1 *)0x30;\n    DAT_0006f2dc = 0;\n    FUN_000183f0();\n    iVar5 = 8;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)"-serial";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);\n    bVar12 = false;\n    bVar15 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n    if (bVar15) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      goto LAB_00015dd0;\n    }\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b0d7;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar12 = *pbVar9 < *pbVar11;\n      bVar15 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar15);\n    bVar12 = (!bVar12 && !bVar15) == bVar12;\n    if (bVar12) goto LAB_00015e28;\nLAB_00015e31:\n    uVar7 = 1;\n  }\n  else {\n    iVar5 = 8;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)"-serial";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar13 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + 1;\n      pbVar11 = pbVar11 + 1;\n    } while (bVar12);\n    bVar15 = false;\n    bVar12 = (!bVar13 && !bVar12) == bVar13;\n    if (bVar12) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\nLAB_00015dd0:\n      DAT_0006f2dc = 4;\n      FUN_000183f0();\n      FUN_00017e80();\n      uVar14 = (undefined1 *)0xfffffff3 < &stack0xffffffc4;\n      uVar16 = &stack0x00000000 == (undefined1 *)0x30;\n      FUN_00018530();\n      iVar5 = 3;\n      pbVar9 = param_1;\n      pbVar11 = &DAT_0004b0d7;\n      do {\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        uVar14 = *pbVar9 < *pbVar11;\n        uVar16 = *pbVar9 == *pbVar11;\n        pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n      } while ((bool)uVar16);\n      bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n      if (bVar12) goto LAB_00015e28;\n      goto LAB_00015e31;\n    }\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b0d7;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + 1;\n      pbVar11 = pbVar11 + 1;\n    } while (bVar12);\n    if ((!bVar15 && !bVar12) == bVar15) {\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_00015e28:\n      DAT_0006f2e8 = DAT_0006f2e8 | 1;\n      bVar12 = DAT_0006f2e8 == 0;\n      goto LAB_00015e31;\n    }\n    uVar7 = 0;\n    bVar12 = true;\n  }\n  bVar15 = false;\n  iVar5 = 3;\n  pbVar9 = param_1;\n  pbVar11 = (byte *)0x53a29;\n  do {\n    if (iVar5 == 0) break;\n    iVar5 = iVar5 + -1;\n    bVar15 = *pbVar9 < *pbVar11;\n    bVar12 = *pbVar9 == *pbVar11;\n    pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n    pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n  } while (bVar12);\n  bVar13 = false;\n  bVar12 = (!bVar15 && !bVar12) == bVar15;\n  if (bVar12) {\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n    if (param_3 != 0) goto LAB_00016123;\n    uVar14 = auStack_2c < (undefined1 *)0x4;\n    uVar16 = &stack0x00000000 == (undefined1 *)0x30;\n    FUN_00018530();\n    iVar5 = 9;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)"-loghost";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);\n    bVar12 = false;\n    bVar15 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n    if (bVar15) {\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n      goto LAB_00015ec5;\n    }\n    iVar5 = 9;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)"-hostkey";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar12 = *pbVar9 < *pbVar11;\n      bVar15 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar15);\n    bVar12 = (!bVar12 && !bVar15) == bVar12;\n    if (bVar12) goto LAB_00016218;\nLAB_00016248:\n    uVar7 = 2;\nLAB_0001624d:\n    bVar15 = false;\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b0ec;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar12 = (!bVar15 && !bVar12) == bVar15;\n    if (bVar12) {\nLAB_00016647:\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;\n      bVar12 = param_3 == 0;\n      if (!bVar12) goto LAB_00016123;\n      goto LAB_00015f8f;\n    }\nLAB_0001626b:\n    bVar15 = false;\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b0ef;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar13 = false;\n    bVar12 = (!bVar15 && !bVar12) == bVar15;\n    if (bVar12) goto LAB_00016647;\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)0x53a3b;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar13 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar15 = false;\n    bVar12 = (!bVar13 && !bVar12) == bVar13;\n    if (bVar12) goto LAB_00016647;\n    iVar5 = 4;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b0fd;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar12 = (!bVar15 && !bVar12) == bVar15;\n    if (!bVar12) goto LAB_00016698;\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;\n    if (param_3 != 0) goto LAB_00016123;\nLAB_000162ed:\n    iVar5 = FUN_00019140();\n    if (iVar5 == 0) {\n      FUN_00044820();\n      return 2;\n    }\n    uVar7 = 2;\n    FUN_00019ef0();\n    FUN_00018530();\n    strtol((char *)(iVar5 + 1),(char **)0x0,10);\n    uVar14 = (undefined1 *)0xfffffff3 < &stack0xffffffc4;\n    uVar16 = &stack0x00000000 == (undefined1 *)0x30;\n    FUN_000183f0();\n    FUN_0001a110();\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b101;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);\n    bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n    if (!bVar12) goto LAB_000166e0;\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;\nLAB_0001639b:\n    iVar10 = 0;\n    iVar5 = 0;\n    __stream = fopen64(param_2,"r");\n    local_24 = 0;\n    if (__stream == (FILE *)0x0) {\n      FUN_00044820();\n      return 2;\n    }\n    while (iVar2 = fgetc(__stream), iVar2 != -1) {\n      if (iVar10 < local_24) {\n        *(char *)(iVar5 + iVar10) = (char)iVar2;\n      }\n      else {\n        local_24 = iVar10 + 0x200;\n        local_20 = iVar2;\n        iVar5 = FUN_00019c80();\n        *(char *)(iVar5 + iVar10) = (char)local_20;\n      }\n      iVar10 = iVar10 + 1;\n    }\n    if (iVar10 < local_24) {\n      *(undefined1 *)(iVar5 + iVar10) = 0;\n    }\n    else {\n      iVar5 = FUN_00019c80();\n      *(undefined1 *)(iVar5 + iVar10) = 0;\n    }\n    uVar7 = 2;\n    fclose(__stream);\n    FUN_00018530();\n    FUN_00018530();\n    uVar14 = (undefined1 *)0xfffffff3 < &stack0xffffffc4;\n    uVar16 = &stack0x00000000 == (undefined1 *)0x30;\n    FUN_000183f0();\n    FUN_0001a110();\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b104;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);\n    bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n    if (!bVar12) goto LAB_00016777;\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\nLAB_000164a7:\n    strtol(param_2,(char **)0x0,10);\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-pw");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\nLAB_000164f6:\n      iVar5 = FUN_00017cd0();\n      if (iVar5 == 3) {\n        DAT_0006f0a8 = FUN_00019990();\n        iVar5 = -1;\n        pcVar8 = param_2;\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          cVar1 = *pcVar8;\n          pcVar8 = pcVar8 + (uint)bVar17 * -2 + 1;\n        } while (cVar1 != '\0');\n        FUN_0001a1f0();\n      }\n      else {\n        FUN_00044820();\n      }\n      iVar5 = strcmp((char *)param_1,"-agent");\n      if ((iVar5 == 0) || (iVar5 = strcmp((char *)param_1,"-pagent"), iVar5 == 0))\n      goto LAB_00015d3a;\n      uVar7 = 2;\n      iVar5 = strcmp((char *)param_1,"-pageant");\n      if (iVar5 == 0) goto LAB_0001688c;\n    }\n    else {\n      iVar5 = strcmp((char *)param_1,"-agent");\n      if (iVar5 == 0) {\nLAB_00015d3a:\n        if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n        goto LAB_000168a1;\n      }\n      uVar7 = 2;\n      iVar5 = strcmp((char *)param_1,"-pagent");\n      if (iVar5 == 0) goto LAB_0001688c;\nLAB_0001685f:\n      iVar5 = strcmp((char *)param_1,"-pageant");\n      if (iVar5 == 0) goto LAB_00016884;\n    }\n    iVar5 = strcmp((char *)param_1,"-noagent");\n    if ((iVar5 == 0) || (iVar5 = strcmp((char *)param_1,"-nopagent"), iVar5 == 0)) {\nLAB_00016e5e:\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_00016e44:\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\n      goto LAB_000168e1;\n    }\nLAB_000165eb:\n    iVar5 = strcmp((char *)param_1,"-nopageant");\n    if (iVar5 == 0) goto LAB_00016e5e;\n    iVar5 = strcmp((char *)param_1,"-A");\n    if (iVar5 != 0) {\n      iVar5 = strcmp((char *)param_1,"-a");\n      if (iVar5 != 0) goto LAB_00016f0f;\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_0001700b;\n    }\n    if (param_3 < 0) {\n      return 1;\n    }\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n    if (param_3 != 0) goto LAB_00015c78;\nLAB_00016921:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-a");\n    if (iVar5 != 0) {\n      uVar7 = 1;\n      iVar5 = strcmp((char *)param_1,"-X");\n      if (iVar5 == 0) goto LAB_00016f38;\nLAB_00016f97:\n      iVar5 = strcmp((char *)param_1,"-x");\n      if (iVar5 != 0) goto LAB_0001704f;\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_00016fc4:\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\n      goto LAB_000169e4;\n    }\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\nLAB_00016961:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-X");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      goto LAB_000169a1;\n    }\n    uVar7 = 1;\n    iVar5 = strcmp((char *)param_1,"-x");\n    if (iVar5 == 0) goto LAB_00016fc4;\nLAB_0001704f:\n    iVar5 = strcmp((char *)param_1,"-t");\n    if (iVar5 == 0) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_0001707c;\n    }\nLAB_000177b1:\n    iVar5 = strcmp((char *)param_1,"-T");\n    if (iVar5 != 0) goto LAB_00017759;\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_0001770d:\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n    if (param_3 != 0) goto LAB_00017091;\nLAB_00016a67:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-N");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\nLAB_00016aa7:\n      FUN_000183f0();\n      iVar5 = strcmp((char *)param_1,"-C");\n      if (iVar5 == 0) {\n        if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n        goto LAB_00016ae7;\n      }\n      uVar7 = 1;\n      iVar5 = strcmp((char *)param_1,"-1");\n      if (iVar5 != 0) goto LAB_00017647;\nLAB_000175ed:\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\n      goto LAB_00016b27;\n    }\n    uVar7 = 1;\n    iVar5 = strcmp((char *)param_1,"-C");\n    if (iVar5 == 0) goto LAB_0001762d;\nLAB_00017679:\n    iVar5 = strcmp((char *)param_1,"-1");\n    if (iVar5 == 0) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_000175ed;\n    }\nLAB_00017647:\n    iVar5 = strcmp((char *)param_1,"-2");\n    if (iVar5 == 0) {\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_000175ad:\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n      if (param_3 != 0) {\nLAB_00015c78:\n        FUN_00015950();\n        return 1;\n      }\nLAB_00016b67:\n      uVar7 = 1;\n      FUN_000183f0();\n    }\n  }\n  else {\n    iVar5 = 9;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)"-loghost";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar13 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar15 = false;\n    bVar12 = (!bVar13 && !bVar12) == bVar13;\n    if (!bVar12) {\n      iVar5 = 9;\n      pbVar9 = param_1;\n      pbVar11 = (byte *)"-hostkey";\n      do {\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        bVar15 = *pbVar9 < *pbVar11;\n        bVar12 = *pbVar9 == *pbVar11;\n        pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n      } while (bVar12);\n      bVar12 = (!bVar15 && !bVar12) == bVar15;\n      if (bVar12) {\n        if (param_2 == (char *)0x0) {\n          return 0xfffffffe;\n        }\n        if (param_3 < 0) {\n          return 2;\n        }\nLAB_00016218:\n        if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n        if (param_3 != 0) goto LAB_00016123;\n        goto LAB_00015f0d;\n      }\n      goto LAB_0001624d;\n    }\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n    if (param_3 != 0) goto LAB_00016123;\nLAB_00015ec5:\n    uVar14 = auStack_2c < (undefined1 *)0x4;\n    uVar16 = &stack0x00000000 == (undefined1 *)0x30;\n    FUN_00018530();\n    iVar5 = 9;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)"-hostkey";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);\n    bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n    if (!bVar12) goto LAB_00016248;\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\nLAB_00015f0d:\n    FUN_00019990();\n    iVar5 = FUN_0001a210();\n    uVar14 = 0;\n    uVar16 = iVar5 == 0;\n    if ((bool)uVar16) {\n      FUN_00044820();\n      FUN_0001a110();\n      return 2;\n    }\n    uVar7 = 2;\n    FUN_000185e0();\n    FUN_0001a110();\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b0ec;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);\n    bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n    if (!bVar12) goto LAB_0001626b;\n    bVar12 = (DAT_0006f0a0 & 3) == 0;\n    if (!bVar12) goto LAB_000161c3;\nLAB_00015f8f:\n    bVar15 = false;\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)0x53a3b;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    if ((!bVar15 && !bVar12) == bVar15) {\n      FUN_00019ef0();\n      FUN_00019990();\n    }\n    else {\n      iVar5 = FUN_00019140();\n      if (iVar5 == 0) {\n        FUN_00044820();\n        return 2;\n      }\n      do {\n        iVar5 = FUN_00019140();\n      } while (iVar5 != 0);\n      FUN_00019ef0();\n      FUN_00019990();\n    }\n    uVar14 = (undefined1 *)0xffffffef < &stack0xffffffc4;\n    uVar16 = &stack0x00000000 == (undefined1 *)0x2c;\n    uVar7 = 2;\n    FUN_000185e0();\n    FUN_0001a110();\n    FUN_0001a110();\n    iVar5 = 4;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b0fd;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);\n    bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n    if (bVar12) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;\n      goto LAB_000162ed;\n    }\nLAB_00016698:\n    bVar15 = false;\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b101;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar12 = (!bVar15 && !bVar12) == bVar15;\n    if (bVar12) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;\n      if (param_3 != 0) goto LAB_00016123;\n      goto LAB_0001639b;\n    }\nLAB_000166e0:\n    bVar15 = false;\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b104;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar12 = (!bVar15 && !bVar12) == bVar15;\n    if (bVar12) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n      if (param_3 != 0) goto LAB_00016723;\n      goto LAB_000164a7;\n    }\nLAB_00016777:\n    bVar15 = false;\n    iVar5 = 4;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b107;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    if ((!bVar15 && !bVar12) == bVar15) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n      if (param_3 != 0) goto LAB_00016723;\n      goto LAB_000164f6;\n    }\n    iVar5 = strcmp((char *)param_1,"-agent");\n    if ((iVar5 != 0) && (iVar5 = strcmp((char *)param_1,"-pagent"), iVar5 != 0)) goto LAB_0001685f;\nLAB_00016884:\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_0001688c:\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n    if (param_3 != 0) goto LAB_00015c78;\nLAB_000168a1:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-noagent");\n    if (iVar5 != 0) {\n      uVar7 = 1;\n      iVar5 = strcmp((char *)param_1,"-nopagent");\n      if (iVar5 != 0) goto LAB_000165eb;\n      goto LAB_00016e44;\n    }\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\nLAB_000168e1:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-A");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      goto LAB_00016921;\n    }\n    uVar7 = 1;\n    iVar5 = strcmp((char *)param_1,"-a");\n    if (iVar5 == 0) {\nLAB_0001700b:\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\n      goto LAB_00016961;\n    }\nLAB_00016f0f:\n    iVar5 = strcmp((char *)param_1,"-X");\n    if (iVar5 != 0) goto LAB_00016f97;\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_00016f38:\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n    if (param_3 != 0) goto LAB_00015c78;\nLAB_000169a1:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-x");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\nLAB_000169e4:\n      FUN_000183f0();\n      iVar5 = strcmp((char *)param_1,"-t");\n      if (iVar5 == 0) {\n        if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n        goto LAB_00016a27;\n      }\n      uVar7 = 1;\n      iVar5 = strcmp((char *)param_1,"-T");\n      if (iVar5 == 0) goto LAB_0001770d;\nLAB_00017759:\n      iVar5 = strcmp((char *)param_1,"-N");\n      if (iVar5 != 0) goto LAB_00017727;\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_000176cd:\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\n      goto LAB_00016aa7;\n    }\n    uVar7 = 1;\n    iVar5 = strcmp((char *)param_1,"-t");\n    if (iVar5 != 0) goto LAB_000177b1;\nLAB_0001707c:\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n    if (param_3 != 0) goto LAB_00017091;\nLAB_00016a27:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-T");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      goto LAB_00016a67;\n    }\n    uVar7 = 1;\n    iVar5 = strcmp((char *)param_1,"-N");\n    if (iVar5 == 0) goto LAB_000176cd;\nLAB_00017727:\n    iVar5 = strcmp((char *)param_1,"-C");\n    if (iVar5 != 0) goto LAB_00017679;\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_0001762d:\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n    if (param_3 != 0) goto LAB_00015c78;\nLAB_00016ae7:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-1");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\nLAB_00016b27:\n      FUN_000183f0();\n      iVar5 = strcmp((char *)param_1,"-2");\n      if (iVar5 == 0) {\n        if ((DAT_0006f0a0 & 2) != 0) {\nLAB_00015d50:\n          FUN_00044820();\n          return 1;\n        }\n        goto LAB_00016b67;\n      }\n    }\n    else {\n      iVar5 = strcmp((char *)param_1,"-2");\n      if (iVar5 == 0) goto LAB_000175ad;\n    }\n    uVar7 = 1;\n  }\n  iVar5 = strcmp((char *)param_1,"-i");\n  if (iVar5 == 0) {\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n    if (param_3 != 0) goto LAB_00016123;\n    FUN_00041790();\n    FUN_00018770();\n    FUN_00041820();\n    iVar5 = strcmp((char *)param_1,"-4");\n    if ((iVar5 == 0) || (iVar5 = strcmp((char *)param_1,"-ipv4"), iVar5 == 0)) goto LAB_00017485;\n    iVar5 = strcmp((char *)param_1,"-6");\n    if (iVar5 == 0) goto LAB_00016c88;\n    uVar7 = 2;\n    iVar5 = strcmp((char *)param_1,"-ipv6");\njoined_r0x000174dc:\n    if (iVar5 == 0) goto LAB_00016c88;\n  }\n  else {\n    iVar5 = strcmp((char *)param_1,"-4");\n    if ((iVar5 == 0) || (iVar5 = strcmp((char *)param_1,"-ipv4"), iVar5 == 0)) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\nLAB_00017091:\n        FUN_00015950();\n        return 1;\n      }\nLAB_00017485:\n      FUN_000183f0();\n      iVar5 = strcmp((char *)param_1,"-6");\n      if (iVar5 != 0) {\n        uVar7 = 1;\n        iVar5 = strcmp((char *)param_1,"-ipv6");\n        goto joined_r0x000174dc;\n      }\n    }\n    else {\n      iVar5 = strcmp((char *)param_1,"-6");\n      if ((iVar5 != 0) && (iVar5 = strcmp((char *)param_1,"-ipv6"), iVar5 != 0)) goto LAB_00016ca6;\n      if (param_3 < 0) {\n        return 1;\n      }\n      if (param_3 != 0) goto LAB_00017091;\n    }\nLAB_00016c88:\n    uVar7 = 1;\n    FUN_000183f0();\n  }\nLAB_00016ca6:\n  iVar5 = strcmp((char *)param_1,"-sercfg");\n  if (iVar5 == 0) {\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;\n    if (param_3 != 0) {\nLAB_00016723:\n      FUN_00015950();\n      return 2;\n    }\n    iVar5 = FUN_00017cd0();\n    pcVar8 = param_2;\n    if (iVar5 != 4) {\n      FUN_00044820();\n    }\n    for (; *pcVar8 != '\0'; pcVar8 = pcVar8 + iVar10 + iVar5) {\n      pcVar4 = strchr(pcVar8,0x2c);\n      if (pcVar4 == (char *)0x0) {\n        uVar6 = 0xffffffff;\n        iVar5 = 0;\n        pcVar4 = pcVar8;\n        do {\n          if (uVar6 == 0) break;\n          uVar6 = uVar6 - 1;\n          cVar1 = *pcVar4;\n          pcVar4 = pcVar4 + (uint)bVar17 * -2 + 1;\n        } while (cVar1 != '\0');\n        iVar10 = ~uVar6 - 1;\n      }\n      else {\n        *pcVar4 = '\0';\n        iVar5 = 1;\n        iVar10 = (int)pcVar4 - (int)pcVar8;\n      }\n      if (iVar10 == 1) {\n        switch(*pcVar8) {\n        case '1':\n        case '2':\n          FUN_000183f0();\n          break;\n        default:\n          FUN_00044820();\n          break;\n        case '5':\n        case '6':\n        case '7':\n        case '8':\n        case '9':\n          FUN_000183f0();\n          break;\n        case 'D':\n          FUN_000183f0();\n          break;\n        case 'N':\n          FUN_000183f0();\n          break;\n        case 'R':\n          FUN_000183f0();\n          break;\n        case 'X':\n          FUN_000183f0();\n          break;\n        case 'e':\n          FUN_000183f0();\n          break;\n        case 'm':\n          FUN_000183f0();\n          break;\n        case 'n':\n          FUN_000183f0();\n          break;\n        case 'o':\n          FUN_000183f0();\n          break;\n        case 's':\n          FUN_000183f0();\n        }\n      }\n      else if ((iVar10 == 3) && (iVar2 = strncmp(pcVar8,"1.5",3), iVar2 == 0)) {\n        FUN_000183f0();\n      }\n      else {\n        lVar3 = strtol(pcVar8,(char **)0x0,10);\n        if (lVar3 == 0) {\n          FUN_00044820();\n        }\n        else {\n          FUN_000183f0();\n        }\n      }\n    }\n    iVar5 = strcmp((char *)param_1,"-sessionlog");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 1) != 0) goto LAB_000161c3;\n      goto LAB_0001722b;\n    }\n    iVar5 = strcmp((char *)param_1,"-sshlog");\n    if (iVar5 != 0) goto LAB_000173ff;\nLAB_000173c4:\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n    if (param_3 != 0) {\nLAB_00016123:\n      FUN_00015950();\n      return 2;\n    }\n  }\n  else {\n    iVar5 = strcmp((char *)param_1,"-sessionlog");\n    if (iVar5 != 0) {\n      iVar5 = strcmp((char *)param_1,"-sshlog");\n      if (iVar5 != 0) goto LAB_00017404;\nLAB_000173b1:\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      goto LAB_000173c4;\n    }\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    if ((DAT_0006f0a0 & 1) != 0) goto LAB_000161c3;\n    if (param_3 != 0) goto LAB_00016123;\nLAB_0001722b:\n    FUN_00041790();\n    FUN_00018770();\n    FUN_000183f0();\n    FUN_00041820();\n    iVar5 = strcmp((char *)param_1,"-sshlog");\n    if (iVar5 != 0) {\nLAB_000173ff:\n      uVar7 = 2;\nLAB_00017404:\n      iVar5 = strcmp((char *)param_1,"-sshrawlog");\n      if (iVar5 != 0) {\n        iVar5 = strcmp((char *)param_1,"-proxycmd");\n        if (iVar5 != 0) {\n          return uVar7;\n        }\n        if (param_2 == (char *)0x0) {\n          return 0xfffffffe;\n        }\n        if (param_3 < 0) {\n          return 2;\n        }\n        if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n        if (param_3 != 0) goto LAB_00016123;\n        goto LAB_00017304;\n      }\n      goto LAB_000173b1;\n    }\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n  }\n  FUN_00041790();\n  FUN_00018770();\n  strcmp((char *)param_1,"-sshlog");\n  FUN_000183f0();\n  FUN_00041820();\n  iVar5 = strcmp((char *)param_1,"-proxycmd");\n  if (iVar5 != 0) {\n    return 2;\n  }\n  if ((DAT_0006f0a0 & 2) == 0) {\nLAB_00017304:\n    FUN_000183f0();\n    FUN_00018530();\n    return 2;\n  }\nLAB_000161c3:\n  FUN_00044820();\n  return 2;\n}" type_identifier (function_declarator "FUN_00015b60(byte *param_1,char *param_2,int param_3)" identifier (parameter_list "(byte *param_1,char *param_2,int param_3)" ( (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) ))) (compound_statement "{\n  char cVar1;\n  FILE *__stream;\n  int iVar2;\n  long lVar3;\n  char *pcVar4;\n  int iVar5;\n  uint uVar6;\n  undefined4 uVar7;\n  char *pcVar8;\n  byte *pbVar9;\n  int iVar10;\n  byte *pbVar11;\n  bool bVar12;\n  bool bVar13;\n  undefined1 uVar14;\n  bool bVar15;\n  undefined1 uVar16;\n  byte bVar17;\n  undefined1 auStack_2c [8];\n  int local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  bVar17 = 0;\n  iVar5 = 6;\n  uStack_14 = 0x15b6e;\n  bVar12 = &stack0xfffffff0 < (undefined1 *)0x1c;\n  bVar15 = &stack0x00000000 == (undefined1 *)0x2c;\n  pbVar9 = param_1;\n  pbVar11 = (byte *)"-load";\n  do {\n    if (iVar5 == 0) break;\n    iVar5 = iVar5 + -1;\n    bVar12 = *pbVar9 < *pbVar11;\n    bVar15 = *pbVar9 == *pbVar11;\n    pbVar9 = pbVar9 + 1;\n    pbVar11 = pbVar11 + 1;\n  } while (bVar15);\n  bVar13 = false;\n  bVar12 = (!bVar12 && !bVar15) == bVar12;\n  if (bVar12) {\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    thunk_FUN_000249b0();\n    DAT_0006f2f4 = 1;\n    DAT_0006f2f8 = FUN_00019990();\n    return 2;\n  }\n  iVar5 = 5;\n  pbVar9 = param_1;\n  pbVar11 = &DAT_0004b0b5;\n  do {\n    if (iVar5 == 0) break;\n    iVar5 = iVar5 + -1;\n    bVar13 = *pbVar9 < *pbVar11;\n    bVar12 = *pbVar9 == *pbVar11;\n    pbVar9 = pbVar9 + 1;\n    pbVar11 = pbVar11 + 1;\n  } while (bVar12);\n  bVar15 = false;\n  bVar12 = (!bVar13 && !bVar12) == bVar13;\n  if (bVar12) {\n    if (param_3 < 0) {\n      return 1;\n    }\n    if ((DAT_0006f0a0 & 3) == 0) {\n      if (param_3 == 0) {\n        DAT_0006f2dc = 3;\n        DAT_0006f2e4 = 0x16;\nLAB_00015c0d:\n        FUN_000183f0();\n        FUN_000183f0();\n        return 1;\n      }\n      goto LAB_00015c78;\n    }\n    goto LAB_00015d50;\n  }\n  iVar5 = 8;\n  pbVar9 = param_1;\n  pbVar11 = (byte *)"-telnet";\n  do {\n    if (iVar5 == 0) break;\n    iVar5 = iVar5 + -1;\n    bVar15 = *pbVar9 < *pbVar11;\n    bVar12 = *pbVar9 == *pbVar11;\n    pbVar9 = pbVar9 + 1;\n    pbVar11 = pbVar11 + 1;\n  } while (bVar12);\n  bVar13 = false;\n  bVar12 = (!bVar15 && !bVar12) == bVar15;\n  if (bVar12) {\n    if (param_3 < 0) {\n      return 1;\n    }\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n    if (param_3 == 0) {\n      DAT_0006f2dc = 1;\n      DAT_0006f2e4 = 0x17;\n      goto LAB_00015c0d;\n    }\n    goto LAB_00015c78;\n  }\n  iVar5 = 8;\n  pbVar9 = param_1;\n  pbVar11 = (byte *)"-rlogin";\n  do {\n    if (iVar5 == 0) break;\n    iVar5 = iVar5 + -1;\n    bVar13 = *pbVar9 < *pbVar11;\n    bVar12 = *pbVar9 == *pbVar11;\n    pbVar9 = pbVar9 + 1;\n    pbVar11 = pbVar11 + 1;\n  } while (bVar12);\n  bVar15 = false;\n  bVar12 = (!bVar13 && !bVar12) == bVar13;\n  if (bVar12) {\n    if (param_3 < 0) {\n      return 1;\n    }\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n    if (param_3 == 0) {\n      DAT_0006f2dc = 2;\n      DAT_0006f2e4 = 0x201;\n      goto LAB_00015c0d;\n    }\n    goto LAB_00015c78;\n  }\n  iVar5 = 5;\n  pbVar9 = param_1;\n  pbVar11 = &DAT_0004b0ca;\n  do {\n    if (iVar5 == 0) break;\n    iVar5 = iVar5 + -1;\n    bVar15 = *pbVar9 < *pbVar11;\n    bVar12 = *pbVar9 == *pbVar11;\n    pbVar9 = pbVar9 + 1;\n    pbVar11 = pbVar11 + 1;\n  } while (bVar12);\n  bVar13 = false;\n  bVar12 = (!bVar15 && !bVar12) == bVar15;\n  if (bVar12) {\n    if (param_3 < 0) {\n      return 1;\n    }\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n    if (param_3 != 0) goto LAB_00015c78;\n    uVar14 = auStack_2c < (undefined1 *)0x4;\n    uVar16 = &stack0x00000000 == (undefined1 *)0x30;\n    DAT_0006f2dc = 0;\n    FUN_000183f0();\n    iVar5 = 8;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)"-serial";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);\n    bVar12 = false;\n    bVar15 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n    if (bVar15) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      goto LAB_00015dd0;\n    }\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b0d7;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar12 = *pbVar9 < *pbVar11;\n      bVar15 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar15);\n    bVar12 = (!bVar12 && !bVar15) == bVar12;\n    if (bVar12) goto LAB_00015e28;\nLAB_00015e31:\n    uVar7 = 1;\n  }\n  else {\n    iVar5 = 8;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)"-serial";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar13 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + 1;\n      pbVar11 = pbVar11 + 1;\n    } while (bVar12);\n    bVar15 = false;\n    bVar12 = (!bVar13 && !bVar12) == bVar13;\n    if (bVar12) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\nLAB_00015dd0:\n      DAT_0006f2dc = 4;\n      FUN_000183f0();\n      FUN_00017e80();\n      uVar14 = (undefined1 *)0xfffffff3 < &stack0xffffffc4;\n      uVar16 = &stack0x00000000 == (undefined1 *)0x30;\n      FUN_00018530();\n      iVar5 = 3;\n      pbVar9 = param_1;\n      pbVar11 = &DAT_0004b0d7;\n      do {\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        uVar14 = *pbVar9 < *pbVar11;\n        uVar16 = *pbVar9 == *pbVar11;\n        pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n      } while ((bool)uVar16);\n      bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n      if (bVar12) goto LAB_00015e28;\n      goto LAB_00015e31;\n    }\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b0d7;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + 1;\n      pbVar11 = pbVar11 + 1;\n    } while (bVar12);\n    if ((!bVar15 && !bVar12) == bVar15) {\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_00015e28:\n      DAT_0006f2e8 = DAT_0006f2e8 | 1;\n      bVar12 = DAT_0006f2e8 == 0;\n      goto LAB_00015e31;\n    }\n    uVar7 = 0;\n    bVar12 = true;\n  }\n  bVar15 = false;\n  iVar5 = 3;\n  pbVar9 = param_1;\n  pbVar11 = (byte *)0x53a29;\n  do {\n    if (iVar5 == 0) break;\n    iVar5 = iVar5 + -1;\n    bVar15 = *pbVar9 < *pbVar11;\n    bVar12 = *pbVar9 == *pbVar11;\n    pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n    pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n  } while (bVar12);\n  bVar13 = false;\n  bVar12 = (!bVar15 && !bVar12) == bVar15;\n  if (bVar12) {\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n    if (param_3 != 0) goto LAB_00016123;\n    uVar14 = auStack_2c < (undefined1 *)0x4;\n    uVar16 = &stack0x00000000 == (undefined1 *)0x30;\n    FUN_00018530();\n    iVar5 = 9;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)"-loghost";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);\n    bVar12 = false;\n    bVar15 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n    if (bVar15) {\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n      goto LAB_00015ec5;\n    }\n    iVar5 = 9;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)"-hostkey";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar12 = *pbVar9 < *pbVar11;\n      bVar15 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar15);\n    bVar12 = (!bVar12 && !bVar15) == bVar12;\n    if (bVar12) goto LAB_00016218;\nLAB_00016248:\n    uVar7 = 2;\nLAB_0001624d:\n    bVar15 = false;\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b0ec;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar12 = (!bVar15 && !bVar12) == bVar15;\n    if (bVar12) {\nLAB_00016647:\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;\n      bVar12 = param_3 == 0;\n      if (!bVar12) goto LAB_00016123;\n      goto LAB_00015f8f;\n    }\nLAB_0001626b:\n    bVar15 = false;\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b0ef;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar13 = false;\n    bVar12 = (!bVar15 && !bVar12) == bVar15;\n    if (bVar12) goto LAB_00016647;\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)0x53a3b;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar13 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar15 = false;\n    bVar12 = (!bVar13 && !bVar12) == bVar13;\n    if (bVar12) goto LAB_00016647;\n    iVar5 = 4;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b0fd;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar12 = (!bVar15 && !bVar12) == bVar15;\n    if (!bVar12) goto LAB_00016698;\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;\n    if (param_3 != 0) goto LAB_00016123;\nLAB_000162ed:\n    iVar5 = FUN_00019140();\n    if (iVar5 == 0) {\n      FUN_00044820();\n      return 2;\n    }\n    uVar7 = 2;\n    FUN_00019ef0();\n    FUN_00018530();\n    strtol((char *)(iVar5 + 1),(char **)0x0,10);\n    uVar14 = (undefined1 *)0xfffffff3 < &stack0xffffffc4;\n    uVar16 = &stack0x00000000 == (undefined1 *)0x30;\n    FUN_000183f0();\n    FUN_0001a110();\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b101;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);\n    bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n    if (!bVar12) goto LAB_000166e0;\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;\nLAB_0001639b:\n    iVar10 = 0;\n    iVar5 = 0;\n    __stream = fopen64(param_2,"r");\n    local_24 = 0;\n    if (__stream == (FILE *)0x0) {\n      FUN_00044820();\n      return 2;\n    }\n    while (iVar2 = fgetc(__stream), iVar2 != -1) {\n      if (iVar10 < local_24) {\n        *(char *)(iVar5 + iVar10) = (char)iVar2;\n      }\n      else {\n        local_24 = iVar10 + 0x200;\n        local_20 = iVar2;\n        iVar5 = FUN_00019c80();\n        *(char *)(iVar5 + iVar10) = (char)local_20;\n      }\n      iVar10 = iVar10 + 1;\n    }\n    if (iVar10 < local_24) {\n      *(undefined1 *)(iVar5 + iVar10) = 0;\n    }\n    else {\n      iVar5 = FUN_00019c80();\n      *(undefined1 *)(iVar5 + iVar10) = 0;\n    }\n    uVar7 = 2;\n    fclose(__stream);\n    FUN_00018530();\n    FUN_00018530();\n    uVar14 = (undefined1 *)0xfffffff3 < &stack0xffffffc4;\n    uVar16 = &stack0x00000000 == (undefined1 *)0x30;\n    FUN_000183f0();\n    FUN_0001a110();\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b104;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);\n    bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n    if (!bVar12) goto LAB_00016777;\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\nLAB_000164a7:\n    strtol(param_2,(char **)0x0,10);\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-pw");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\nLAB_000164f6:\n      iVar5 = FUN_00017cd0();\n      if (iVar5 == 3) {\n        DAT_0006f0a8 = FUN_00019990();\n        iVar5 = -1;\n        pcVar8 = param_2;\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          cVar1 = *pcVar8;\n          pcVar8 = pcVar8 + (uint)bVar17 * -2 + 1;\n        } while (cVar1 != '\0');\n        FUN_0001a1f0();\n      }\n      else {\n        FUN_00044820();\n      }\n      iVar5 = strcmp((char *)param_1,"-agent");\n      if ((iVar5 == 0) || (iVar5 = strcmp((char *)param_1,"-pagent"), iVar5 == 0))\n      goto LAB_00015d3a;\n      uVar7 = 2;\n      iVar5 = strcmp((char *)param_1,"-pageant");\n      if (iVar5 == 0) goto LAB_0001688c;\n    }\n    else {\n      iVar5 = strcmp((char *)param_1,"-agent");\n      if (iVar5 == 0) {\nLAB_00015d3a:\n        if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n        goto LAB_000168a1;\n      }\n      uVar7 = 2;\n      iVar5 = strcmp((char *)param_1,"-pagent");\n      if (iVar5 == 0) goto LAB_0001688c;\nLAB_0001685f:\n      iVar5 = strcmp((char *)param_1,"-pageant");\n      if (iVar5 == 0) goto LAB_00016884;\n    }\n    iVar5 = strcmp((char *)param_1,"-noagent");\n    if ((iVar5 == 0) || (iVar5 = strcmp((char *)param_1,"-nopagent"), iVar5 == 0)) {\nLAB_00016e5e:\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_00016e44:\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\n      goto LAB_000168e1;\n    }\nLAB_000165eb:\n    iVar5 = strcmp((char *)param_1,"-nopageant");\n    if (iVar5 == 0) goto LAB_00016e5e;\n    iVar5 = strcmp((char *)param_1,"-A");\n    if (iVar5 != 0) {\n      iVar5 = strcmp((char *)param_1,"-a");\n      if (iVar5 != 0) goto LAB_00016f0f;\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_0001700b;\n    }\n    if (param_3 < 0) {\n      return 1;\n    }\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n    if (param_3 != 0) goto LAB_00015c78;\nLAB_00016921:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-a");\n    if (iVar5 != 0) {\n      uVar7 = 1;\n      iVar5 = strcmp((char *)param_1,"-X");\n      if (iVar5 == 0) goto LAB_00016f38;\nLAB_00016f97:\n      iVar5 = strcmp((char *)param_1,"-x");\n      if (iVar5 != 0) goto LAB_0001704f;\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_00016fc4:\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\n      goto LAB_000169e4;\n    }\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\nLAB_00016961:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-X");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      goto LAB_000169a1;\n    }\n    uVar7 = 1;\n    iVar5 = strcmp((char *)param_1,"-x");\n    if (iVar5 == 0) goto LAB_00016fc4;\nLAB_0001704f:\n    iVar5 = strcmp((char *)param_1,"-t");\n    if (iVar5 == 0) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_0001707c;\n    }\nLAB_000177b1:\n    iVar5 = strcmp((char *)param_1,"-T");\n    if (iVar5 != 0) goto LAB_00017759;\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_0001770d:\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n    if (param_3 != 0) goto LAB_00017091;\nLAB_00016a67:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-N");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\nLAB_00016aa7:\n      FUN_000183f0();\n      iVar5 = strcmp((char *)param_1,"-C");\n      if (iVar5 == 0) {\n        if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n        goto LAB_00016ae7;\n      }\n      uVar7 = 1;\n      iVar5 = strcmp((char *)param_1,"-1");\n      if (iVar5 != 0) goto LAB_00017647;\nLAB_000175ed:\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\n      goto LAB_00016b27;\n    }\n    uVar7 = 1;\n    iVar5 = strcmp((char *)param_1,"-C");\n    if (iVar5 == 0) goto LAB_0001762d;\nLAB_00017679:\n    iVar5 = strcmp((char *)param_1,"-1");\n    if (iVar5 == 0) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_000175ed;\n    }\nLAB_00017647:\n    iVar5 = strcmp((char *)param_1,"-2");\n    if (iVar5 == 0) {\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_000175ad:\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n      if (param_3 != 0) {\nLAB_00015c78:\n        FUN_00015950();\n        return 1;\n      }\nLAB_00016b67:\n      uVar7 = 1;\n      FUN_000183f0();\n    }\n  }\n  else {\n    iVar5 = 9;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)"-loghost";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar13 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar15 = false;\n    bVar12 = (!bVar13 && !bVar12) == bVar13;\n    if (!bVar12) {\n      iVar5 = 9;\n      pbVar9 = param_1;\n      pbVar11 = (byte *)"-hostkey";\n      do {\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        bVar15 = *pbVar9 < *pbVar11;\n        bVar12 = *pbVar9 == *pbVar11;\n        pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n      } while (bVar12);\n      bVar12 = (!bVar15 && !bVar12) == bVar15;\n      if (bVar12) {\n        if (param_2 == (char *)0x0) {\n          return 0xfffffffe;\n        }\n        if (param_3 < 0) {\n          return 2;\n        }\nLAB_00016218:\n        if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n        if (param_3 != 0) goto LAB_00016123;\n        goto LAB_00015f0d;\n      }\n      goto LAB_0001624d;\n    }\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n    if (param_3 != 0) goto LAB_00016123;\nLAB_00015ec5:\n    uVar14 = auStack_2c < (undefined1 *)0x4;\n    uVar16 = &stack0x00000000 == (undefined1 *)0x30;\n    FUN_00018530();\n    iVar5 = 9;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)"-hostkey";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);\n    bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n    if (!bVar12) goto LAB_00016248;\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\nLAB_00015f0d:\n    FUN_00019990();\n    iVar5 = FUN_0001a210();\n    uVar14 = 0;\n    uVar16 = iVar5 == 0;\n    if ((bool)uVar16) {\n      FUN_00044820();\n      FUN_0001a110();\n      return 2;\n    }\n    uVar7 = 2;\n    FUN_000185e0();\n    FUN_0001a110();\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b0ec;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);\n    bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n    if (!bVar12) goto LAB_0001626b;\n    bVar12 = (DAT_0006f0a0 & 3) == 0;\n    if (!bVar12) goto LAB_000161c3;\nLAB_00015f8f:\n    bVar15 = false;\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)0x53a3b;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    if ((!bVar15 && !bVar12) == bVar15) {\n      FUN_00019ef0();\n      FUN_00019990();\n    }\n    else {\n      iVar5 = FUN_00019140();\n      if (iVar5 == 0) {\n        FUN_00044820();\n        return 2;\n      }\n      do {\n        iVar5 = FUN_00019140();\n      } while (iVar5 != 0);\n      FUN_00019ef0();\n      FUN_00019990();\n    }\n    uVar14 = (undefined1 *)0xffffffef < &stack0xffffffc4;\n    uVar16 = &stack0x00000000 == (undefined1 *)0x2c;\n    uVar7 = 2;\n    FUN_000185e0();\n    FUN_0001a110();\n    FUN_0001a110();\n    iVar5 = 4;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b0fd;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);\n    bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n    if (bVar12) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;\n      goto LAB_000162ed;\n    }\nLAB_00016698:\n    bVar15 = false;\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b101;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar12 = (!bVar15 && !bVar12) == bVar15;\n    if (bVar12) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;\n      if (param_3 != 0) goto LAB_00016123;\n      goto LAB_0001639b;\n    }\nLAB_000166e0:\n    bVar15 = false;\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b104;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar12 = (!bVar15 && !bVar12) == bVar15;\n    if (bVar12) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n      if (param_3 != 0) goto LAB_00016723;\n      goto LAB_000164a7;\n    }\nLAB_00016777:\n    bVar15 = false;\n    iVar5 = 4;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b107;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    if ((!bVar15 && !bVar12) == bVar15) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n      if (param_3 != 0) goto LAB_00016723;\n      goto LAB_000164f6;\n    }\n    iVar5 = strcmp((char *)param_1,"-agent");\n    if ((iVar5 != 0) && (iVar5 = strcmp((char *)param_1,"-pagent"), iVar5 != 0)) goto LAB_0001685f;\nLAB_00016884:\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_0001688c:\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n    if (param_3 != 0) goto LAB_00015c78;\nLAB_000168a1:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-noagent");\n    if (iVar5 != 0) {\n      uVar7 = 1;\n      iVar5 = strcmp((char *)param_1,"-nopagent");\n      if (iVar5 != 0) goto LAB_000165eb;\n      goto LAB_00016e44;\n    }\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\nLAB_000168e1:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-A");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      goto LAB_00016921;\n    }\n    uVar7 = 1;\n    iVar5 = strcmp((char *)param_1,"-a");\n    if (iVar5 == 0) {\nLAB_0001700b:\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\n      goto LAB_00016961;\n    }\nLAB_00016f0f:\n    iVar5 = strcmp((char *)param_1,"-X");\n    if (iVar5 != 0) goto LAB_00016f97;\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_00016f38:\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n    if (param_3 != 0) goto LAB_00015c78;\nLAB_000169a1:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-x");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\nLAB_000169e4:\n      FUN_000183f0();\n      iVar5 = strcmp((char *)param_1,"-t");\n      if (iVar5 == 0) {\n        if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n        goto LAB_00016a27;\n      }\n      uVar7 = 1;\n      iVar5 = strcmp((char *)param_1,"-T");\n      if (iVar5 == 0) goto LAB_0001770d;\nLAB_00017759:\n      iVar5 = strcmp((char *)param_1,"-N");\n      if (iVar5 != 0) goto LAB_00017727;\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_000176cd:\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\n      goto LAB_00016aa7;\n    }\n    uVar7 = 1;\n    iVar5 = strcmp((char *)param_1,"-t");\n    if (iVar5 != 0) goto LAB_000177b1;\nLAB_0001707c:\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n    if (param_3 != 0) goto LAB_00017091;\nLAB_00016a27:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-T");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      goto LAB_00016a67;\n    }\n    uVar7 = 1;\n    iVar5 = strcmp((char *)param_1,"-N");\n    if (iVar5 == 0) goto LAB_000176cd;\nLAB_00017727:\n    iVar5 = strcmp((char *)param_1,"-C");\n    if (iVar5 != 0) goto LAB_00017679;\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_0001762d:\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n    if (param_3 != 0) goto LAB_00015c78;\nLAB_00016ae7:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-1");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\nLAB_00016b27:\n      FUN_000183f0();\n      iVar5 = strcmp((char *)param_1,"-2");\n      if (iVar5 == 0) {\n        if ((DAT_0006f0a0 & 2) != 0) {\nLAB_00015d50:\n          FUN_00044820();\n          return 1;\n        }\n        goto LAB_00016b67;\n      }\n    }\n    else {\n      iVar5 = strcmp((char *)param_1,"-2");\n      if (iVar5 == 0) goto LAB_000175ad;\n    }\n    uVar7 = 1;\n  }\n  iVar5 = strcmp((char *)param_1,"-i");\n  if (iVar5 == 0) {\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n    if (param_3 != 0) goto LAB_00016123;\n    FUN_00041790();\n    FUN_00018770();\n    FUN_00041820();\n    iVar5 = strcmp((char *)param_1,"-4");\n    if ((iVar5 == 0) || (iVar5 = strcmp((char *)param_1,"-ipv4"), iVar5 == 0)) goto LAB_00017485;\n    iVar5 = strcmp((char *)param_1,"-6");\n    if (iVar5 == 0) goto LAB_00016c88;\n    uVar7 = 2;\n    iVar5 = strcmp((char *)param_1,"-ipv6");\njoined_r0x000174dc:\n    if (iVar5 == 0) goto LAB_00016c88;\n  }\n  else {\n    iVar5 = strcmp((char *)param_1,"-4");\n    if ((iVar5 == 0) || (iVar5 = strcmp((char *)param_1,"-ipv4"), iVar5 == 0)) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\nLAB_00017091:\n        FUN_00015950();\n        return 1;\n      }\nLAB_00017485:\n      FUN_000183f0();\n      iVar5 = strcmp((char *)param_1,"-6");\n      if (iVar5 != 0) {\n        uVar7 = 1;\n        iVar5 = strcmp((char *)param_1,"-ipv6");\n        goto joined_r0x000174dc;\n      }\n    }\n    else {\n      iVar5 = strcmp((char *)param_1,"-6");\n      if ((iVar5 != 0) && (iVar5 = strcmp((char *)param_1,"-ipv6"), iVar5 != 0)) goto LAB_00016ca6;\n      if (param_3 < 0) {\n        return 1;\n      }\n      if (param_3 != 0) goto LAB_00017091;\n    }\nLAB_00016c88:\n    uVar7 = 1;\n    FUN_000183f0();\n  }\nLAB_00016ca6:\n  iVar5 = strcmp((char *)param_1,"-sercfg");\n  if (iVar5 == 0) {\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;\n    if (param_3 != 0) {\nLAB_00016723:\n      FUN_00015950();\n      return 2;\n    }\n    iVar5 = FUN_00017cd0();\n    pcVar8 = param_2;\n    if (iVar5 != 4) {\n      FUN_00044820();\n    }\n    for (; *pcVar8 != '\0'; pcVar8 = pcVar8 + iVar10 + iVar5) {\n      pcVar4 = strchr(pcVar8,0x2c);\n      if (pcVar4 == (char *)0x0) {\n        uVar6 = 0xffffffff;\n        iVar5 = 0;\n        pcVar4 = pcVar8;\n        do {\n          if (uVar6 == 0) break;\n          uVar6 = uVar6 - 1;\n          cVar1 = *pcVar4;\n          pcVar4 = pcVar4 + (uint)bVar17 * -2 + 1;\n        } while (cVar1 != '\0');\n        iVar10 = ~uVar6 - 1;\n      }\n      else {\n        *pcVar4 = '\0';\n        iVar5 = 1;\n        iVar10 = (int)pcVar4 - (int)pcVar8;\n      }\n      if (iVar10 == 1) {\n        switch(*pcVar8) {\n        case '1':\n        case '2':\n          FUN_000183f0();\n          break;\n        default:\n          FUN_00044820();\n          break;\n        case '5':\n        case '6':\n        case '7':\n        case '8':\n        case '9':\n          FUN_000183f0();\n          break;\n        case 'D':\n          FUN_000183f0();\n          break;\n        case 'N':\n          FUN_000183f0();\n          break;\n        case 'R':\n          FUN_000183f0();\n          break;\n        case 'X':\n          FUN_000183f0();\n          break;\n        case 'e':\n          FUN_000183f0();\n          break;\n        case 'm':\n          FUN_000183f0();\n          break;\n        case 'n':\n          FUN_000183f0();\n          break;\n        case 'o':\n          FUN_000183f0();\n          break;\n        case 's':\n          FUN_000183f0();\n        }\n      }\n      else if ((iVar10 == 3) && (iVar2 = strncmp(pcVar8,"1.5",3), iVar2 == 0)) {\n        FUN_000183f0();\n      }\n      else {\n        lVar3 = strtol(pcVar8,(char **)0x0,10);\n        if (lVar3 == 0) {\n          FUN_00044820();\n        }\n        else {\n          FUN_000183f0();\n        }\n      }\n    }\n    iVar5 = strcmp((char *)param_1,"-sessionlog");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 1) != 0) goto LAB_000161c3;\n      goto LAB_0001722b;\n    }\n    iVar5 = strcmp((char *)param_1,"-sshlog");\n    if (iVar5 != 0) goto LAB_000173ff;\nLAB_000173c4:\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n    if (param_3 != 0) {\nLAB_00016123:\n      FUN_00015950();\n      return 2;\n    }\n  }\n  else {\n    iVar5 = strcmp((char *)param_1,"-sessionlog");\n    if (iVar5 != 0) {\n      iVar5 = strcmp((char *)param_1,"-sshlog");\n      if (iVar5 != 0) goto LAB_00017404;\nLAB_000173b1:\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      goto LAB_000173c4;\n    }\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    if ((DAT_0006f0a0 & 1) != 0) goto LAB_000161c3;\n    if (param_3 != 0) goto LAB_00016123;\nLAB_0001722b:\n    FUN_00041790();\n    FUN_00018770();\n    FUN_000183f0();\n    FUN_00041820();\n    iVar5 = strcmp((char *)param_1,"-sshlog");\n    if (iVar5 != 0) {\nLAB_000173ff:\n      uVar7 = 2;\nLAB_00017404:\n      iVar5 = strcmp((char *)param_1,"-sshrawlog");\n      if (iVar5 != 0) {\n        iVar5 = strcmp((char *)param_1,"-proxycmd");\n        if (iVar5 != 0) {\n          return uVar7;\n        }\n        if (param_2 == (char *)0x0) {\n          return 0xfffffffe;\n        }\n        if (param_3 < 0) {\n          return 2;\n        }\n        if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n        if (param_3 != 0) goto LAB_00016123;\n        goto LAB_00017304;\n      }\n      goto LAB_000173b1;\n    }\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n  }\n  FUN_00041790();\n  FUN_00018770();\n  strcmp((char *)param_1,"-sshlog");\n  FUN_000183f0();\n  FUN_00041820();\n  iVar5 = strcmp((char *)param_1,"-proxycmd");\n  if (iVar5 != 0) {\n    return 2;\n  }\n  if ((DAT_0006f0a0 & 2) == 0) {\nLAB_00017304:\n    FUN_000183f0();\n    FUN_00018530();\n    return 2;\n  }\nLAB_000161c3:\n  FUN_00044820();\n  return 2;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "FILE *__stream;" type_identifier (pointer_declarator "*__stream" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "long lVar3;" (sized_type_specifier "long" long) identifier ;) (declaration "char *pcVar4;" primitive_type (pointer_declarator "*pcVar4" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "char *pcVar8;" primitive_type (pointer_declarator "*pcVar8" * identifier) ;) (declaration "byte *pbVar9;" type_identifier (pointer_declarator "*pbVar9" * identifier) ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "byte *pbVar11;" type_identifier (pointer_declarator "*pbVar11" * 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 "undefined1 auStack_2c [8];" type_identifier (array_declarator "auStack_2c [8]" identifier [ number_literal ]) ;) (declaration "int local_24;" primitive_type identifier ;) (declaration "int local_20;" primitive_type identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "bVar17 = 0;" (assignment_expression "bVar17 = 0" identifier = number_literal) ;) (expression_statement "iVar5 = 6;" (assignment_expression "iVar5 = 6" identifier = number_literal) ;) (expression_statement "uStack_14 = 0x15b6e;" (assignment_expression "uStack_14 = 0x15b6e" identifier = number_literal) ;) (expression_statement "bVar12 = &stack0xfffffff0 < (undefined1 *)0x1c;" (assignment_expression "bVar12 = &stack0xfffffff0 < (undefined1 *)0x1c" identifier = (binary_expression "&stack0xfffffff0 < (undefined1 *)0x1c" (pointer_expression "&stack0xfffffff0" & identifier) < (cast_expression "(undefined1 *)0x1c" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "bVar15 = &stack0x00000000 == (undefined1 *)0x2c;" (assignment_expression "bVar15 = &stack0x00000000 == (undefined1 *)0x2c" identifier = (binary_expression "&stack0x00000000 == (undefined1 *)0x2c" (pointer_expression "&stack0x00000000" & identifier) == (cast_expression "(undefined1 *)0x2c" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "pbVar9 = param_1;" (assignment_expression "pbVar9 = param_1" identifier = identifier) ;) (expression_statement "pbVar11 = (byte *)"-load";" (assignment_expression "pbVar11 = (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 (iVar5 == 0) break;\n    iVar5 = iVar5 + -1;\n    bVar12 = *pbVar9 < *pbVar11;\n    bVar15 = *pbVar9 == *pbVar11;\n    pbVar9 = pbVar9 + 1;\n    pbVar11 = pbVar11 + 1;\n  } while (bVar15);" do (compound_statement "{\n    if (iVar5 == 0) break;\n    iVar5 = iVar5 + -1;\n    bVar12 = *pbVar9 < *pbVar11;\n    bVar15 = *pbVar9 == *pbVar11;\n    pbVar9 = pbVar9 + 1;\n    pbVar11 = pbVar11 + 1;\n  }" { (if_statement "if (iVar5 == 0) break;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) (expression_statement "bVar12 = *pbVar9 < *pbVar11;" (assignment_expression "bVar12 = *pbVar9 < *pbVar11" identifier = (binary_expression "*pbVar9 < *pbVar11" (pointer_expression "*pbVar9" * identifier) < (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "bVar15 = *pbVar9 == *pbVar11;" (assignment_expression "bVar15 = *pbVar9 == *pbVar11" identifier = (binary_expression "*pbVar9 == *pbVar11" (pointer_expression "*pbVar9" * identifier) == (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "pbVar9 = pbVar9 + 1;" (assignment_expression "pbVar9 = pbVar9 + 1" identifier = (binary_expression "pbVar9 + 1" identifier + number_literal)) ;) (expression_statement "pbVar11 = pbVar11 + 1;" (assignment_expression "pbVar11 = pbVar11 + 1" identifier = (binary_expression "pbVar11 + 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 (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    thunk_FUN_000249b0();\n    DAT_0006f2f4 = 1;\n    DAT_0006f2f8 = FUN_00019990();\n    return 2;\n  }" if (parenthesized_expression "(bVar12)" ( identifier )) (compound_statement "{\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    thunk_FUN_000249b0();\n    DAT_0006f2f4 = 1;\n    DAT_0006f2f8 = FUN_00019990();\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 (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 "thunk_FUN_000249b0();" (call_expression "thunk_FUN_000249b0()" identifier (argument_list "()" ( ))) ;) (expression_statement "DAT_0006f2f4 = 1;" (assignment_expression "DAT_0006f2f4 = 1" identifier = number_literal) ;) (expression_statement "DAT_0006f2f8 = FUN_00019990();" (assignment_expression "DAT_0006f2f8 = FUN_00019990()" identifier = (call_expression "FUN_00019990()" identifier (argument_list "()" ( )))) ;) (return_statement "return 2;" return number_literal ;) })) (expression_statement "iVar5 = 5;" (assignment_expression "iVar5 = 5" identifier = number_literal) ;) (expression_statement "pbVar9 = param_1;" (assignment_expression "pbVar9 = param_1" identifier = identifier) ;) (expression_statement "pbVar11 = &DAT_0004b0b5;" (assignment_expression "pbVar11 = &DAT_0004b0b5" identifier = (pointer_expression "&DAT_0004b0b5" & identifier)) ;) (do_statement "do {\n    if (iVar5 == 0) break;\n    iVar5 = iVar5 + -1;\n    bVar13 = *pbVar9 < *pbVar11;\n    bVar12 = *pbVar9 == *pbVar11;\n    pbVar9 = pbVar9 + 1;\n    pbVar11 = pbVar11 + 1;\n  } while (bVar12);" do (compound_statement "{\n    if (iVar5 == 0) break;\n    iVar5 = iVar5 + -1;\n    bVar13 = *pbVar9 < *pbVar11;\n    bVar12 = *pbVar9 == *pbVar11;\n    pbVar9 = pbVar9 + 1;\n    pbVar11 = pbVar11 + 1;\n  }" { (if_statement "if (iVar5 == 0) break;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) (expression_statement "bVar13 = *pbVar9 < *pbVar11;" (assignment_expression "bVar13 = *pbVar9 < *pbVar11" identifier = (binary_expression "*pbVar9 < *pbVar11" (pointer_expression "*pbVar9" * identifier) < (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "bVar12 = *pbVar9 == *pbVar11;" (assignment_expression "bVar12 = *pbVar9 == *pbVar11" identifier = (binary_expression "*pbVar9 == *pbVar11" (pointer_expression "*pbVar9" * identifier) == (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "pbVar9 = pbVar9 + 1;" (assignment_expression "pbVar9 = pbVar9 + 1" identifier = (binary_expression "pbVar9 + 1" identifier + number_literal)) ;) (expression_statement "pbVar11 = pbVar11 + 1;" (assignment_expression "pbVar11 = pbVar11 + 1" identifier = (binary_expression "pbVar11 + 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 (param_3 < 0) {\n      return 1;\n    }\n    if ((DAT_0006f0a0 & 3) == 0) {\n      if (param_3 == 0) {\n        DAT_0006f2dc = 3;\n        DAT_0006f2e4 = 0x16;\nLAB_00015c0d:\n        FUN_000183f0();\n        FUN_000183f0();\n        return 1;\n      }\n      goto LAB_00015c78;\n    }\n    goto LAB_00015d50;\n  }" if (parenthesized_expression "(bVar12)" ( identifier )) (compound_statement "{\n    if (param_3 < 0) {\n      return 1;\n    }\n    if ((DAT_0006f0a0 & 3) == 0) {\n      if (param_3 == 0) {\n        DAT_0006f2dc = 3;\n        DAT_0006f2e4 = 0x16;\nLAB_00015c0d:\n        FUN_000183f0();\n        FUN_000183f0();\n        return 1;\n      }\n      goto LAB_00015c78;\n    }\n    goto LAB_00015d50;\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 ((DAT_0006f0a0 & 3) == 0) {\n      if (param_3 == 0) {\n        DAT_0006f2dc = 3;\n        DAT_0006f2e4 = 0x16;\nLAB_00015c0d:\n        FUN_000183f0();\n        FUN_000183f0();\n        return 1;\n      }\n      goto LAB_00015c78;\n    }" if (parenthesized_expression "((DAT_0006f0a0 & 3) == 0)" ( (binary_expression "(DAT_0006f0a0 & 3) == 0" (parenthesized_expression "(DAT_0006f0a0 & 3)" ( (binary_expression "DAT_0006f0a0 & 3" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      if (param_3 == 0) {\n        DAT_0006f2dc = 3;\n        DAT_0006f2e4 = 0x16;\nLAB_00015c0d:\n        FUN_000183f0();\n        FUN_000183f0();\n        return 1;\n      }\n      goto LAB_00015c78;\n    }" { (if_statement "if (param_3 == 0) {\n        DAT_0006f2dc = 3;\n        DAT_0006f2e4 = 0x16;\nLAB_00015c0d:\n        FUN_000183f0();\n        FUN_000183f0();\n        return 1;\n      }" if (parenthesized_expression "(param_3 == 0)" ( (binary_expression "param_3 == 0" identifier == number_literal) )) (compound_statement "{\n        DAT_0006f2dc = 3;\n        DAT_0006f2e4 = 0x16;\nLAB_00015c0d:\n        FUN_000183f0();\n        FUN_000183f0();\n        return 1;\n      }" { (expression_statement "DAT_0006f2dc = 3;" (assignment_expression "DAT_0006f2dc = 3" identifier = number_literal) ;) (expression_statement "DAT_0006f2e4 = 0x16;" (assignment_expression "DAT_0006f2e4 = 0x16" identifier = number_literal) ;) (labeled_statement "LAB_00015c0d:\n        FUN_000183f0();" statement_identifier : (expression_statement "FUN_000183f0();" (call_expression "FUN_000183f0()" identifier (argument_list "()" ( ))) ;)) (expression_statement "FUN_000183f0();" (call_expression "FUN_000183f0()" identifier (argument_list "()" ( ))) ;) (return_statement "return 1;" return number_literal ;) })) (goto_statement "goto LAB_00015c78;" goto statement_identifier ;) })) (goto_statement "goto LAB_00015d50;" goto statement_identifier ;) })) (expression_statement "iVar5 = 8;" (assignment_expression "iVar5 = 8" identifier = number_literal) ;) (expression_statement "pbVar9 = param_1;" (assignment_expression "pbVar9 = param_1" identifier = identifier) ;) (expression_statement "pbVar11 = (byte *)"-telnet";" (assignment_expression "pbVar11 = (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 (iVar5 == 0) break;\n    iVar5 = iVar5 + -1;\n    bVar15 = *pbVar9 < *pbVar11;\n    bVar12 = *pbVar9 == *pbVar11;\n    pbVar9 = pbVar9 + 1;\n    pbVar11 = pbVar11 + 1;\n  } while (bVar12);" do (compound_statement "{\n    if (iVar5 == 0) break;\n    iVar5 = iVar5 + -1;\n    bVar15 = *pbVar9 < *pbVar11;\n    bVar12 = *pbVar9 == *pbVar11;\n    pbVar9 = pbVar9 + 1;\n    pbVar11 = pbVar11 + 1;\n  }" { (if_statement "if (iVar5 == 0) break;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) (expression_statement "bVar15 = *pbVar9 < *pbVar11;" (assignment_expression "bVar15 = *pbVar9 < *pbVar11" identifier = (binary_expression "*pbVar9 < *pbVar11" (pointer_expression "*pbVar9" * identifier) < (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "bVar12 = *pbVar9 == *pbVar11;" (assignment_expression "bVar12 = *pbVar9 == *pbVar11" identifier = (binary_expression "*pbVar9 == *pbVar11" (pointer_expression "*pbVar9" * identifier) == (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "pbVar9 = pbVar9 + 1;" (assignment_expression "pbVar9 = pbVar9 + 1" identifier = (binary_expression "pbVar9 + 1" identifier + number_literal)) ;) (expression_statement "pbVar11 = pbVar11 + 1;" (assignment_expression "pbVar11 = pbVar11 + 1" identifier = (binary_expression "pbVar11 + 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 (param_3 < 0) {\n      return 1;\n    }\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n    if (param_3 == 0) {\n      DAT_0006f2dc = 1;\n      DAT_0006f2e4 = 0x17;\n      goto LAB_00015c0d;\n    }\n    goto LAB_00015c78;\n  }" if (parenthesized_expression "(bVar12)" ( identifier )) (compound_statement "{\n    if (param_3 < 0) {\n      return 1;\n    }\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n    if (param_3 == 0) {\n      DAT_0006f2dc = 1;\n      DAT_0006f2e4 = 0x17;\n      goto LAB_00015c0d;\n    }\n    goto LAB_00015c78;\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 ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;" if (parenthesized_expression "((DAT_0006f0a0 & 3) != 0)" ( (binary_expression "(DAT_0006f0a0 & 3) != 0" (parenthesized_expression "(DAT_0006f0a0 & 3)" ( (binary_expression "DAT_0006f0a0 & 3" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00015d50;" goto statement_identifier ;)) (if_statement "if (param_3 == 0) {\n      DAT_0006f2dc = 1;\n      DAT_0006f2e4 = 0x17;\n      goto LAB_00015c0d;\n    }" if (parenthesized_expression "(param_3 == 0)" ( (binary_expression "param_3 == 0" identifier == number_literal) )) (compound_statement "{\n      DAT_0006f2dc = 1;\n      DAT_0006f2e4 = 0x17;\n      goto LAB_00015c0d;\n    }" { (expression_statement "DAT_0006f2dc = 1;" (assignment_expression "DAT_0006f2dc = 1" identifier = number_literal) ;) (expression_statement "DAT_0006f2e4 = 0x17;" (assignment_expression "DAT_0006f2e4 = 0x17" identifier = number_literal) ;) (goto_statement "goto LAB_00015c0d;" goto statement_identifier ;) })) (goto_statement "goto LAB_00015c78;" goto statement_identifier ;) })) (expression_statement "iVar5 = 8;" (assignment_expression "iVar5 = 8" identifier = number_literal) ;) (expression_statement "pbVar9 = param_1;" (assignment_expression "pbVar9 = param_1" identifier = identifier) ;) (expression_statement "pbVar11 = (byte *)"-rlogin";" (assignment_expression "pbVar11 = (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 (iVar5 == 0) break;\n    iVar5 = iVar5 + -1;\n    bVar13 = *pbVar9 < *pbVar11;\n    bVar12 = *pbVar9 == *pbVar11;\n    pbVar9 = pbVar9 + 1;\n    pbVar11 = pbVar11 + 1;\n  } while (bVar12);" do (compound_statement "{\n    if (iVar5 == 0) break;\n    iVar5 = iVar5 + -1;\n    bVar13 = *pbVar9 < *pbVar11;\n    bVar12 = *pbVar9 == *pbVar11;\n    pbVar9 = pbVar9 + 1;\n    pbVar11 = pbVar11 + 1;\n  }" { (if_statement "if (iVar5 == 0) break;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) (expression_statement "bVar13 = *pbVar9 < *pbVar11;" (assignment_expression "bVar13 = *pbVar9 < *pbVar11" identifier = (binary_expression "*pbVar9 < *pbVar11" (pointer_expression "*pbVar9" * identifier) < (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "bVar12 = *pbVar9 == *pbVar11;" (assignment_expression "bVar12 = *pbVar9 == *pbVar11" identifier = (binary_expression "*pbVar9 == *pbVar11" (pointer_expression "*pbVar9" * identifier) == (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "pbVar9 = pbVar9 + 1;" (assignment_expression "pbVar9 = pbVar9 + 1" identifier = (binary_expression "pbVar9 + 1" identifier + number_literal)) ;) (expression_statement "pbVar11 = pbVar11 + 1;" (assignment_expression "pbVar11 = pbVar11 + 1" identifier = (binary_expression "pbVar11 + 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 (param_3 < 0) {\n      return 1;\n    }\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n    if (param_3 == 0) {\n      DAT_0006f2dc = 2;\n      DAT_0006f2e4 = 0x201;\n      goto LAB_00015c0d;\n    }\n    goto LAB_00015c78;\n  }" if (parenthesized_expression "(bVar12)" ( identifier )) (compound_statement "{\n    if (param_3 < 0) {\n      return 1;\n    }\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n    if (param_3 == 0) {\n      DAT_0006f2dc = 2;\n      DAT_0006f2e4 = 0x201;\n      goto LAB_00015c0d;\n    }\n    goto LAB_00015c78;\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 ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;" if (parenthesized_expression "((DAT_0006f0a0 & 3) != 0)" ( (binary_expression "(DAT_0006f0a0 & 3) != 0" (parenthesized_expression "(DAT_0006f0a0 & 3)" ( (binary_expression "DAT_0006f0a0 & 3" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00015d50;" goto statement_identifier ;)) (if_statement "if (param_3 == 0) {\n      DAT_0006f2dc = 2;\n      DAT_0006f2e4 = 0x201;\n      goto LAB_00015c0d;\n    }" if (parenthesized_expression "(param_3 == 0)" ( (binary_expression "param_3 == 0" identifier == number_literal) )) (compound_statement "{\n      DAT_0006f2dc = 2;\n      DAT_0006f2e4 = 0x201;\n      goto LAB_00015c0d;\n    }" { (expression_statement "DAT_0006f2dc = 2;" (assignment_expression "DAT_0006f2dc = 2" identifier = number_literal) ;) (expression_statement "DAT_0006f2e4 = 0x201;" (assignment_expression "DAT_0006f2e4 = 0x201" identifier = number_literal) ;) (goto_statement "goto LAB_00015c0d;" goto statement_identifier ;) })) (goto_statement "goto LAB_00015c78;" goto statement_identifier ;) })) (expression_statement "iVar5 = 5;" (assignment_expression "iVar5 = 5" identifier = number_literal) ;) (expression_statement "pbVar9 = param_1;" (assignment_expression "pbVar9 = param_1" identifier = identifier) ;) (expression_statement "pbVar11 = &DAT_0004b0ca;" (assignment_expression "pbVar11 = &DAT_0004b0ca" identifier = (pointer_expression "&DAT_0004b0ca" & identifier)) ;) (do_statement "do {\n    if (iVar5 == 0) break;\n    iVar5 = iVar5 + -1;\n    bVar15 = *pbVar9 < *pbVar11;\n    bVar12 = *pbVar9 == *pbVar11;\n    pbVar9 = pbVar9 + 1;\n    pbVar11 = pbVar11 + 1;\n  } while (bVar12);" do (compound_statement "{\n    if (iVar5 == 0) break;\n    iVar5 = iVar5 + -1;\n    bVar15 = *pbVar9 < *pbVar11;\n    bVar12 = *pbVar9 == *pbVar11;\n    pbVar9 = pbVar9 + 1;\n    pbVar11 = pbVar11 + 1;\n  }" { (if_statement "if (iVar5 == 0) break;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) (expression_statement "bVar15 = *pbVar9 < *pbVar11;" (assignment_expression "bVar15 = *pbVar9 < *pbVar11" identifier = (binary_expression "*pbVar9 < *pbVar11" (pointer_expression "*pbVar9" * identifier) < (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "bVar12 = *pbVar9 == *pbVar11;" (assignment_expression "bVar12 = *pbVar9 == *pbVar11" identifier = (binary_expression "*pbVar9 == *pbVar11" (pointer_expression "*pbVar9" * identifier) == (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "pbVar9 = pbVar9 + 1;" (assignment_expression "pbVar9 = pbVar9 + 1" identifier = (binary_expression "pbVar9 + 1" identifier + number_literal)) ;) (expression_statement "pbVar11 = pbVar11 + 1;" (assignment_expression "pbVar11 = pbVar11 + 1" identifier = (binary_expression "pbVar11 + 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 (param_3 < 0) {\n      return 1;\n    }\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n    if (param_3 != 0) goto LAB_00015c78;\n    uVar14 = auStack_2c < (undefined1 *)0x4;\n    uVar16 = &stack0x00000000 == (undefined1 *)0x30;\n    DAT_0006f2dc = 0;\n    FUN_000183f0();\n    iVar5 = 8;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)"-serial";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);\n    bVar12 = false;\n    bVar15 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n    if (bVar15) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      goto LAB_00015dd0;\n    }\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b0d7;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar12 = *pbVar9 < *pbVar11;\n      bVar15 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar15);\n    bVar12 = (!bVar12 && !bVar15) == bVar12;\n    if (bVar12) goto LAB_00015e28;\nLAB_00015e31:\n    uVar7 = 1;\n  }\n  else {\n    iVar5 = 8;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)"-serial";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar13 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + 1;\n      pbVar11 = pbVar11 + 1;\n    } while (bVar12);\n    bVar15 = false;\n    bVar12 = (!bVar13 && !bVar12) == bVar13;\n    if (bVar12) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\nLAB_00015dd0:\n      DAT_0006f2dc = 4;\n      FUN_000183f0();\n      FUN_00017e80();\n      uVar14 = (undefined1 *)0xfffffff3 < &stack0xffffffc4;\n      uVar16 = &stack0x00000000 == (undefined1 *)0x30;\n      FUN_00018530();\n      iVar5 = 3;\n      pbVar9 = param_1;\n      pbVar11 = &DAT_0004b0d7;\n      do {\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        uVar14 = *pbVar9 < *pbVar11;\n        uVar16 = *pbVar9 == *pbVar11;\n        pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n      } while ((bool)uVar16);\n      bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n      if (bVar12) goto LAB_00015e28;\n      goto LAB_00015e31;\n    }\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b0d7;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + 1;\n      pbVar11 = pbVar11 + 1;\n    } while (bVar12);\n    if ((!bVar15 && !bVar12) == bVar15) {\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_00015e28:\n      DAT_0006f2e8 = DAT_0006f2e8 | 1;\n      bVar12 = DAT_0006f2e8 == 0;\n      goto LAB_00015e31;\n    }\n    uVar7 = 0;\n    bVar12 = true;\n  }" if (parenthesized_expression "(bVar12)" ( identifier )) (compound_statement "{\n    if (param_3 < 0) {\n      return 1;\n    }\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n    if (param_3 != 0) goto LAB_00015c78;\n    uVar14 = auStack_2c < (undefined1 *)0x4;\n    uVar16 = &stack0x00000000 == (undefined1 *)0x30;\n    DAT_0006f2dc = 0;\n    FUN_000183f0();\n    iVar5 = 8;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)"-serial";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);\n    bVar12 = false;\n    bVar15 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n    if (bVar15) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      goto LAB_00015dd0;\n    }\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b0d7;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar12 = *pbVar9 < *pbVar11;\n      bVar15 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar15);\n    bVar12 = (!bVar12 && !bVar15) == bVar12;\n    if (bVar12) goto LAB_00015e28;\nLAB_00015e31:\n    uVar7 = 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 ;) })) (if_statement "if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;" if (parenthesized_expression "((DAT_0006f0a0 & 3) != 0)" ( (binary_expression "(DAT_0006f0a0 & 3) != 0" (parenthesized_expression "(DAT_0006f0a0 & 3)" ( (binary_expression "DAT_0006f0a0 & 3" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00015d50;" goto statement_identifier ;)) (if_statement "if (param_3 != 0) goto LAB_00015c78;" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00015c78;" goto statement_identifier ;)) (expression_statement "uVar14 = auStack_2c < (undefined1 *)0x4;" (assignment_expression "uVar14 = auStack_2c < (undefined1 *)0x4" identifier = (binary_expression "auStack_2c < (undefined1 *)0x4" identifier < (cast_expression "(undefined1 *)0x4" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "uVar16 = &stack0x00000000 == (undefined1 *)0x30;" (assignment_expression "uVar16 = &stack0x00000000 == (undefined1 *)0x30" identifier = (binary_expression "&stack0x00000000 == (undefined1 *)0x30" (pointer_expression "&stack0x00000000" & identifier) == (cast_expression "(undefined1 *)0x30" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "DAT_0006f2dc = 0;" (assignment_expression "DAT_0006f2dc = 0" identifier = number_literal) ;) (expression_statement "FUN_000183f0();" (call_expression "FUN_000183f0()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar5 = 8;" (assignment_expression "iVar5 = 8" identifier = number_literal) ;) (expression_statement "pbVar9 = param_1;" (assignment_expression "pbVar9 = param_1" identifier = identifier) ;) (expression_statement "pbVar11 = (byte *)"-serial";" (assignment_expression "pbVar11 = (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 (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);" do (compound_statement "{\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    }" { (if_statement "if (iVar5 == 0) break;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) (expression_statement "uVar14 = *pbVar9 < *pbVar11;" (assignment_expression "uVar14 = *pbVar9 < *pbVar11" identifier = (binary_expression "*pbVar9 < *pbVar11" (pointer_expression "*pbVar9" * identifier) < (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "uVar16 = *pbVar9 == *pbVar11;" (assignment_expression "uVar16 = *pbVar9 == *pbVar11" identifier = (binary_expression "*pbVar9 == *pbVar11" (pointer_expression "*pbVar9" * identifier) == (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar9 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar11 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" 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      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      goto LAB_00015dd0;\n    }" if (parenthesized_expression "(bVar15)" ( identifier )) (compound_statement "{\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      goto LAB_00015dd0;\n    }" { (if_statement "if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;" if (parenthesized_expression "((DAT_0006f0a0 & 3) != 0)" ( (binary_expression "(DAT_0006f0a0 & 3) != 0" (parenthesized_expression "(DAT_0006f0a0 & 3)" ( (binary_expression "DAT_0006f0a0 & 3" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00015d50;" goto statement_identifier ;)) (goto_statement "goto LAB_00015dd0;" goto statement_identifier ;) })) (expression_statement "iVar5 = 3;" (assignment_expression "iVar5 = 3" identifier = number_literal) ;) (expression_statement "pbVar9 = param_1;" (assignment_expression "pbVar9 = param_1" identifier = identifier) ;) (expression_statement "pbVar11 = &DAT_0004b0d7;" (assignment_expression "pbVar11 = &DAT_0004b0d7" identifier = (pointer_expression "&DAT_0004b0d7" & identifier)) ;) (do_statement "do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar12 = *pbVar9 < *pbVar11;\n      bVar15 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar15);" do (compound_statement "{\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar12 = *pbVar9 < *pbVar11;\n      bVar15 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    }" { (if_statement "if (iVar5 == 0) break;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) (expression_statement "bVar12 = *pbVar9 < *pbVar11;" (assignment_expression "bVar12 = *pbVar9 < *pbVar11" identifier = (binary_expression "*pbVar9 < *pbVar11" (pointer_expression "*pbVar9" * identifier) < (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "bVar15 = *pbVar9 == *pbVar11;" (assignment_expression "bVar15 = *pbVar9 == *pbVar11" identifier = (binary_expression "*pbVar9 == *pbVar11" (pointer_expression "*pbVar9" * identifier) == (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar9 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar11 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" 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)) ;) (if_statement "if (bVar12) goto LAB_00015e28;" if (parenthesized_expression "(bVar12)" ( identifier )) (goto_statement "goto LAB_00015e28;" goto statement_identifier ;)) (labeled_statement "LAB_00015e31:\n    uVar7 = 1;" statement_identifier : (expression_statement "uVar7 = 1;" (assignment_expression "uVar7 = 1" identifier = number_literal) ;)) }) (else_clause "else {\n    iVar5 = 8;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)"-serial";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar13 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + 1;\n      pbVar11 = pbVar11 + 1;\n    } while (bVar12);\n    bVar15 = false;\n    bVar12 = (!bVar13 && !bVar12) == bVar13;\n    if (bVar12) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\nLAB_00015dd0:\n      DAT_0006f2dc = 4;\n      FUN_000183f0();\n      FUN_00017e80();\n      uVar14 = (undefined1 *)0xfffffff3 < &stack0xffffffc4;\n      uVar16 = &stack0x00000000 == (undefined1 *)0x30;\n      FUN_00018530();\n      iVar5 = 3;\n      pbVar9 = param_1;\n      pbVar11 = &DAT_0004b0d7;\n      do {\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        uVar14 = *pbVar9 < *pbVar11;\n        uVar16 = *pbVar9 == *pbVar11;\n        pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n      } while ((bool)uVar16);\n      bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n      if (bVar12) goto LAB_00015e28;\n      goto LAB_00015e31;\n    }\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b0d7;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + 1;\n      pbVar11 = pbVar11 + 1;\n    } while (bVar12);\n    if ((!bVar15 && !bVar12) == bVar15) {\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_00015e28:\n      DAT_0006f2e8 = DAT_0006f2e8 | 1;\n      bVar12 = DAT_0006f2e8 == 0;\n      goto LAB_00015e31;\n    }\n    uVar7 = 0;\n    bVar12 = true;\n  }" else (compound_statement "{\n    iVar5 = 8;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)"-serial";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar13 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + 1;\n      pbVar11 = pbVar11 + 1;\n    } while (bVar12);\n    bVar15 = false;\n    bVar12 = (!bVar13 && !bVar12) == bVar13;\n    if (bVar12) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\nLAB_00015dd0:\n      DAT_0006f2dc = 4;\n      FUN_000183f0();\n      FUN_00017e80();\n      uVar14 = (undefined1 *)0xfffffff3 < &stack0xffffffc4;\n      uVar16 = &stack0x00000000 == (undefined1 *)0x30;\n      FUN_00018530();\n      iVar5 = 3;\n      pbVar9 = param_1;\n      pbVar11 = &DAT_0004b0d7;\n      do {\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        uVar14 = *pbVar9 < *pbVar11;\n        uVar16 = *pbVar9 == *pbVar11;\n        pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n      } while ((bool)uVar16);\n      bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n      if (bVar12) goto LAB_00015e28;\n      goto LAB_00015e31;\n    }\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b0d7;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + 1;\n      pbVar11 = pbVar11 + 1;\n    } while (bVar12);\n    if ((!bVar15 && !bVar12) == bVar15) {\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_00015e28:\n      DAT_0006f2e8 = DAT_0006f2e8 | 1;\n      bVar12 = DAT_0006f2e8 == 0;\n      goto LAB_00015e31;\n    }\n    uVar7 = 0;\n    bVar12 = true;\n  }" { (expression_statement "iVar5 = 8;" (assignment_expression "iVar5 = 8" identifier = number_literal) ;) (expression_statement "pbVar9 = param_1;" (assignment_expression "pbVar9 = param_1" identifier = identifier) ;) (expression_statement "pbVar11 = (byte *)"-serial";" (assignment_expression "pbVar11 = (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 (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar13 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + 1;\n      pbVar11 = pbVar11 + 1;\n    } while (bVar12);" do (compound_statement "{\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar13 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + 1;\n      pbVar11 = pbVar11 + 1;\n    }" { (if_statement "if (iVar5 == 0) break;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) (expression_statement "bVar13 = *pbVar9 < *pbVar11;" (assignment_expression "bVar13 = *pbVar9 < *pbVar11" identifier = (binary_expression "*pbVar9 < *pbVar11" (pointer_expression "*pbVar9" * identifier) < (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "bVar12 = *pbVar9 == *pbVar11;" (assignment_expression "bVar12 = *pbVar9 == *pbVar11" identifier = (binary_expression "*pbVar9 == *pbVar11" (pointer_expression "*pbVar9" * identifier) == (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "pbVar9 = pbVar9 + 1;" (assignment_expression "pbVar9 = pbVar9 + 1" identifier = (binary_expression "pbVar9 + 1" identifier + number_literal)) ;) (expression_statement "pbVar11 = pbVar11 + 1;" (assignment_expression "pbVar11 = pbVar11 + 1" identifier = (binary_expression "pbVar11 + 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 (param_3 < 0) {\n        return 1;\n      }\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\nLAB_00015dd0:\n      DAT_0006f2dc = 4;\n      FUN_000183f0();\n      FUN_00017e80();\n      uVar14 = (undefined1 *)0xfffffff3 < &stack0xffffffc4;\n      uVar16 = &stack0x00000000 == (undefined1 *)0x30;\n      FUN_00018530();\n      iVar5 = 3;\n      pbVar9 = param_1;\n      pbVar11 = &DAT_0004b0d7;\n      do {\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        uVar14 = *pbVar9 < *pbVar11;\n        uVar16 = *pbVar9 == *pbVar11;\n        pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n      } while ((bool)uVar16);\n      bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n      if (bVar12) goto LAB_00015e28;\n      goto LAB_00015e31;\n    }" if (parenthesized_expression "(bVar12)" ( identifier )) (compound_statement "{\n      if (param_3 < 0) {\n        return 1;\n      }\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\nLAB_00015dd0:\n      DAT_0006f2dc = 4;\n      FUN_000183f0();\n      FUN_00017e80();\n      uVar14 = (undefined1 *)0xfffffff3 < &stack0xffffffc4;\n      uVar16 = &stack0x00000000 == (undefined1 *)0x30;\n      FUN_00018530();\n      iVar5 = 3;\n      pbVar9 = param_1;\n      pbVar11 = &DAT_0004b0d7;\n      do {\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        uVar14 = *pbVar9 < *pbVar11;\n        uVar16 = *pbVar9 == *pbVar11;\n        pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n      } while ((bool)uVar16);\n      bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n      if (bVar12) goto LAB_00015e28;\n      goto LAB_00015e31;\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 ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;" if (parenthesized_expression "((DAT_0006f0a0 & 3) != 0)" ( (binary_expression "(DAT_0006f0a0 & 3) != 0" (parenthesized_expression "(DAT_0006f0a0 & 3)" ( (binary_expression "DAT_0006f0a0 & 3" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00015d50;" goto statement_identifier ;)) (if_statement "if (param_3 != 0) goto LAB_00015c78;" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00015c78;" goto statement_identifier ;)) (labeled_statement "LAB_00015dd0:\n      DAT_0006f2dc = 4;" statement_identifier : (expression_statement "DAT_0006f2dc = 4;" (assignment_expression "DAT_0006f2dc = 4" identifier = number_literal) ;)) (expression_statement "FUN_000183f0();" (call_expression "FUN_000183f0()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00017e80();" (call_expression "FUN_00017e80()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar14 = (undefined1 *)0xfffffff3 < &stack0xffffffc4;" (assignment_expression "uVar14 = (undefined1 *)0xfffffff3 < &stack0xffffffc4" identifier = (binary_expression "(undefined1 *)0xfffffff3 < &stack0xffffffc4" (cast_expression "(undefined1 *)0xfffffff3" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < (pointer_expression "&stack0xffffffc4" & identifier))) ;) (expression_statement "uVar16 = &stack0x00000000 == (undefined1 *)0x30;" (assignment_expression "uVar16 = &stack0x00000000 == (undefined1 *)0x30" identifier = (binary_expression "&stack0x00000000 == (undefined1 *)0x30" (pointer_expression "&stack0x00000000" & identifier) == (cast_expression "(undefined1 *)0x30" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "FUN_00018530();" (call_expression "FUN_00018530()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar5 = 3;" (assignment_expression "iVar5 = 3" identifier = number_literal) ;) (expression_statement "pbVar9 = param_1;" (assignment_expression "pbVar9 = param_1" identifier = identifier) ;) (expression_statement "pbVar11 = &DAT_0004b0d7;" (assignment_expression "pbVar11 = &DAT_0004b0d7" identifier = (pointer_expression "&DAT_0004b0d7" & identifier)) ;) (do_statement "do {\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        uVar14 = *pbVar9 < *pbVar11;\n        uVar16 = *pbVar9 == *pbVar11;\n        pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n      } while ((bool)uVar16);" do (compound_statement "{\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        uVar14 = *pbVar9 < *pbVar11;\n        uVar16 = *pbVar9 == *pbVar11;\n        pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n      }" { (if_statement "if (iVar5 == 0) break;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) (expression_statement "uVar14 = *pbVar9 < *pbVar11;" (assignment_expression "uVar14 = *pbVar9 < *pbVar11" identifier = (binary_expression "*pbVar9 < *pbVar11" (pointer_expression "*pbVar9" * identifier) < (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "uVar16 = *pbVar9 == *pbVar11;" (assignment_expression "uVar16 = *pbVar9 == *pbVar11" identifier = (binary_expression "*pbVar9 == *pbVar11" (pointer_expression "*pbVar9" * identifier) == (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar9 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar11 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" 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 = (!(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_00015e28;" if (parenthesized_expression "(bVar12)" ( identifier )) (goto_statement "goto LAB_00015e28;" goto statement_identifier ;)) (goto_statement "goto LAB_00015e31;" goto statement_identifier ;) })) (expression_statement "iVar5 = 3;" (assignment_expression "iVar5 = 3" identifier = number_literal) ;) (expression_statement "pbVar9 = param_1;" (assignment_expression "pbVar9 = param_1" identifier = identifier) ;) (expression_statement "pbVar11 = &DAT_0004b0d7;" (assignment_expression "pbVar11 = &DAT_0004b0d7" identifier = (pointer_expression "&DAT_0004b0d7" & identifier)) ;) (do_statement "do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + 1;\n      pbVar11 = pbVar11 + 1;\n    } while (bVar12);" do (compound_statement "{\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + 1;\n      pbVar11 = pbVar11 + 1;\n    }" { (if_statement "if (iVar5 == 0) break;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) (expression_statement "bVar15 = *pbVar9 < *pbVar11;" (assignment_expression "bVar15 = *pbVar9 < *pbVar11" identifier = (binary_expression "*pbVar9 < *pbVar11" (pointer_expression "*pbVar9" * identifier) < (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "bVar12 = *pbVar9 == *pbVar11;" (assignment_expression "bVar12 = *pbVar9 == *pbVar11" identifier = (binary_expression "*pbVar9 == *pbVar11" (pointer_expression "*pbVar9" * identifier) == (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "pbVar9 = pbVar9 + 1;" (assignment_expression "pbVar9 = pbVar9 + 1" identifier = (binary_expression "pbVar9 + 1" identifier + number_literal)) ;) (expression_statement "pbVar11 = pbVar11 + 1;" (assignment_expression "pbVar11 = pbVar11 + 1" identifier = (binary_expression "pbVar11 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar12)" ( identifier )) ;) (if_statement "if ((!bVar15 && !bVar12) == bVar15) {\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_00015e28:\n      DAT_0006f2e8 = DAT_0006f2e8 | 1;\n      bVar12 = DAT_0006f2e8 == 0;\n      goto LAB_00015e31;\n    }" 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) )) (compound_statement "{\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_00015e28:\n      DAT_0006f2e8 = DAT_0006f2e8 | 1;\n      bVar12 = DAT_0006f2e8 == 0;\n      goto LAB_00015e31;\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_00015e28:\n      DAT_0006f2e8 = DAT_0006f2e8 | 1;" statement_identifier : (expression_statement "DAT_0006f2e8 = DAT_0006f2e8 | 1;" (assignment_expression "DAT_0006f2e8 = DAT_0006f2e8 | 1" identifier = (binary_expression "DAT_0006f2e8 | 1" identifier | number_literal)) ;)) (expression_statement "bVar12 = DAT_0006f2e8 == 0;" (assignment_expression "bVar12 = DAT_0006f2e8 == 0" identifier = (binary_expression "DAT_0006f2e8 == 0" identifier == number_literal)) ;) (goto_statement "goto LAB_00015e31;" goto statement_identifier ;) })) (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) (expression_statement "bVar12 = true;" (assignment_expression "bVar12 = true" identifier = true) ;) }))) (expression_statement "bVar15 = false;" (assignment_expression "bVar15 = false" identifier = false) ;) (expression_statement "iVar5 = 3;" (assignment_expression "iVar5 = 3" identifier = number_literal) ;) (expression_statement "pbVar9 = param_1;" (assignment_expression "pbVar9 = param_1" identifier = identifier) ;) (expression_statement "pbVar11 = (byte *)0x53a29;" (assignment_expression "pbVar11 = (byte *)0x53a29" identifier = (cast_expression "(byte *)0x53a29" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n    if (iVar5 == 0) break;\n    iVar5 = iVar5 + -1;\n    bVar15 = *pbVar9 < *pbVar11;\n    bVar12 = *pbVar9 == *pbVar11;\n    pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n    pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n  } while (bVar12);" do (compound_statement "{\n    if (iVar5 == 0) break;\n    iVar5 = iVar5 + -1;\n    bVar15 = *pbVar9 < *pbVar11;\n    bVar12 = *pbVar9 == *pbVar11;\n    pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n    pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n  }" { (if_statement "if (iVar5 == 0) break;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) (expression_statement "bVar15 = *pbVar9 < *pbVar11;" (assignment_expression "bVar15 = *pbVar9 < *pbVar11" identifier = (binary_expression "*pbVar9 < *pbVar11" (pointer_expression "*pbVar9" * identifier) < (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "bVar12 = *pbVar9 == *pbVar11;" (assignment_expression "bVar12 = *pbVar9 == *pbVar11" identifier = (binary_expression "*pbVar9 == *pbVar11" (pointer_expression "*pbVar9" * identifier) == (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar9 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar11 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" 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 (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n    if (param_3 != 0) goto LAB_00016123;\n    uVar14 = auStack_2c < (undefined1 *)0x4;\n    uVar16 = &stack0x00000000 == (undefined1 *)0x30;\n    FUN_00018530();\n    iVar5 = 9;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)"-loghost";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);\n    bVar12 = false;\n    bVar15 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n    if (bVar15) {\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n      goto LAB_00015ec5;\n    }\n    iVar5 = 9;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)"-hostkey";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar12 = *pbVar9 < *pbVar11;\n      bVar15 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar15);\n    bVar12 = (!bVar12 && !bVar15) == bVar12;\n    if (bVar12) goto LAB_00016218;\nLAB_00016248:\n    uVar7 = 2;\nLAB_0001624d:\n    bVar15 = false;\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b0ec;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar12 = (!bVar15 && !bVar12) == bVar15;\n    if (bVar12) {\nLAB_00016647:\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;\n      bVar12 = param_3 == 0;\n      if (!bVar12) goto LAB_00016123;\n      goto LAB_00015f8f;\n    }\nLAB_0001626b:\n    bVar15 = false;\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b0ef;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar13 = false;\n    bVar12 = (!bVar15 && !bVar12) == bVar15;\n    if (bVar12) goto LAB_00016647;\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)0x53a3b;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar13 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar15 = false;\n    bVar12 = (!bVar13 && !bVar12) == bVar13;\n    if (bVar12) goto LAB_00016647;\n    iVar5 = 4;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b0fd;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar12 = (!bVar15 && !bVar12) == bVar15;\n    if (!bVar12) goto LAB_00016698;\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;\n    if (param_3 != 0) goto LAB_00016123;\nLAB_000162ed:\n    iVar5 = FUN_00019140();\n    if (iVar5 == 0) {\n      FUN_00044820();\n      return 2;\n    }\n    uVar7 = 2;\n    FUN_00019ef0();\n    FUN_00018530();\n    strtol((char *)(iVar5 + 1),(char **)0x0,10);\n    uVar14 = (undefined1 *)0xfffffff3 < &stack0xffffffc4;\n    uVar16 = &stack0x00000000 == (undefined1 *)0x30;\n    FUN_000183f0();\n    FUN_0001a110();\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b101;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);\n    bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n    if (!bVar12) goto LAB_000166e0;\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;\nLAB_0001639b:\n    iVar10 = 0;\n    iVar5 = 0;\n    __stream = fopen64(param_2,"r");\n    local_24 = 0;\n    if (__stream == (FILE *)0x0) {\n      FUN_00044820();\n      return 2;\n    }\n    while (iVar2 = fgetc(__stream), iVar2 != -1) {\n      if (iVar10 < local_24) {\n        *(char *)(iVar5 + iVar10) = (char)iVar2;\n      }\n      else {\n        local_24 = iVar10 + 0x200;\n        local_20 = iVar2;\n        iVar5 = FUN_00019c80();\n        *(char *)(iVar5 + iVar10) = (char)local_20;\n      }\n      iVar10 = iVar10 + 1;\n    }\n    if (iVar10 < local_24) {\n      *(undefined1 *)(iVar5 + iVar10) = 0;\n    }\n    else {\n      iVar5 = FUN_00019c80();\n      *(undefined1 *)(iVar5 + iVar10) = 0;\n    }\n    uVar7 = 2;\n    fclose(__stream);\n    FUN_00018530();\n    FUN_00018530();\n    uVar14 = (undefined1 *)0xfffffff3 < &stack0xffffffc4;\n    uVar16 = &stack0x00000000 == (undefined1 *)0x30;\n    FUN_000183f0();\n    FUN_0001a110();\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b104;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);\n    bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n    if (!bVar12) goto LAB_00016777;\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\nLAB_000164a7:\n    strtol(param_2,(char **)0x0,10);\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-pw");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\nLAB_000164f6:\n      iVar5 = FUN_00017cd0();\n      if (iVar5 == 3) {\n        DAT_0006f0a8 = FUN_00019990();\n        iVar5 = -1;\n        pcVar8 = param_2;\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          cVar1 = *pcVar8;\n          pcVar8 = pcVar8 + (uint)bVar17 * -2 + 1;\n        } while (cVar1 != '\0');\n        FUN_0001a1f0();\n      }\n      else {\n        FUN_00044820();\n      }\n      iVar5 = strcmp((char *)param_1,"-agent");\n      if ((iVar5 == 0) || (iVar5 = strcmp((char *)param_1,"-pagent"), iVar5 == 0))\n      goto LAB_00015d3a;\n      uVar7 = 2;\n      iVar5 = strcmp((char *)param_1,"-pageant");\n      if (iVar5 == 0) goto LAB_0001688c;\n    }\n    else {\n      iVar5 = strcmp((char *)param_1,"-agent");\n      if (iVar5 == 0) {\nLAB_00015d3a:\n        if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n        goto LAB_000168a1;\n      }\n      uVar7 = 2;\n      iVar5 = strcmp((char *)param_1,"-pagent");\n      if (iVar5 == 0) goto LAB_0001688c;\nLAB_0001685f:\n      iVar5 = strcmp((char *)param_1,"-pageant");\n      if (iVar5 == 0) goto LAB_00016884;\n    }\n    iVar5 = strcmp((char *)param_1,"-noagent");\n    if ((iVar5 == 0) || (iVar5 = strcmp((char *)param_1,"-nopagent"), iVar5 == 0)) {\nLAB_00016e5e:\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_00016e44:\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\n      goto LAB_000168e1;\n    }\nLAB_000165eb:\n    iVar5 = strcmp((char *)param_1,"-nopageant");\n    if (iVar5 == 0) goto LAB_00016e5e;\n    iVar5 = strcmp((char *)param_1,"-A");\n    if (iVar5 != 0) {\n      iVar5 = strcmp((char *)param_1,"-a");\n      if (iVar5 != 0) goto LAB_00016f0f;\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_0001700b;\n    }\n    if (param_3 < 0) {\n      return 1;\n    }\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n    if (param_3 != 0) goto LAB_00015c78;\nLAB_00016921:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-a");\n    if (iVar5 != 0) {\n      uVar7 = 1;\n      iVar5 = strcmp((char *)param_1,"-X");\n      if (iVar5 == 0) goto LAB_00016f38;\nLAB_00016f97:\n      iVar5 = strcmp((char *)param_1,"-x");\n      if (iVar5 != 0) goto LAB_0001704f;\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_00016fc4:\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\n      goto LAB_000169e4;\n    }\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\nLAB_00016961:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-X");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      goto LAB_000169a1;\n    }\n    uVar7 = 1;\n    iVar5 = strcmp((char *)param_1,"-x");\n    if (iVar5 == 0) goto LAB_00016fc4;\nLAB_0001704f:\n    iVar5 = strcmp((char *)param_1,"-t");\n    if (iVar5 == 0) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_0001707c;\n    }\nLAB_000177b1:\n    iVar5 = strcmp((char *)param_1,"-T");\n    if (iVar5 != 0) goto LAB_00017759;\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_0001770d:\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n    if (param_3 != 0) goto LAB_00017091;\nLAB_00016a67:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-N");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\nLAB_00016aa7:\n      FUN_000183f0();\n      iVar5 = strcmp((char *)param_1,"-C");\n      if (iVar5 == 0) {\n        if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n        goto LAB_00016ae7;\n      }\n      uVar7 = 1;\n      iVar5 = strcmp((char *)param_1,"-1");\n      if (iVar5 != 0) goto LAB_00017647;\nLAB_000175ed:\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\n      goto LAB_00016b27;\n    }\n    uVar7 = 1;\n    iVar5 = strcmp((char *)param_1,"-C");\n    if (iVar5 == 0) goto LAB_0001762d;\nLAB_00017679:\n    iVar5 = strcmp((char *)param_1,"-1");\n    if (iVar5 == 0) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_000175ed;\n    }\nLAB_00017647:\n    iVar5 = strcmp((char *)param_1,"-2");\n    if (iVar5 == 0) {\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_000175ad:\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n      if (param_3 != 0) {\nLAB_00015c78:\n        FUN_00015950();\n        return 1;\n      }\nLAB_00016b67:\n      uVar7 = 1;\n      FUN_000183f0();\n    }\n  }\n  else {\n    iVar5 = 9;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)"-loghost";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar13 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar15 = false;\n    bVar12 = (!bVar13 && !bVar12) == bVar13;\n    if (!bVar12) {\n      iVar5 = 9;\n      pbVar9 = param_1;\n      pbVar11 = (byte *)"-hostkey";\n      do {\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        bVar15 = *pbVar9 < *pbVar11;\n        bVar12 = *pbVar9 == *pbVar11;\n        pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n      } while (bVar12);\n      bVar12 = (!bVar15 && !bVar12) == bVar15;\n      if (bVar12) {\n        if (param_2 == (char *)0x0) {\n          return 0xfffffffe;\n        }\n        if (param_3 < 0) {\n          return 2;\n        }\nLAB_00016218:\n        if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n        if (param_3 != 0) goto LAB_00016123;\n        goto LAB_00015f0d;\n      }\n      goto LAB_0001624d;\n    }\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n    if (param_3 != 0) goto LAB_00016123;\nLAB_00015ec5:\n    uVar14 = auStack_2c < (undefined1 *)0x4;\n    uVar16 = &stack0x00000000 == (undefined1 *)0x30;\n    FUN_00018530();\n    iVar5 = 9;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)"-hostkey";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);\n    bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n    if (!bVar12) goto LAB_00016248;\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\nLAB_00015f0d:\n    FUN_00019990();\n    iVar5 = FUN_0001a210();\n    uVar14 = 0;\n    uVar16 = iVar5 == 0;\n    if ((bool)uVar16) {\n      FUN_00044820();\n      FUN_0001a110();\n      return 2;\n    }\n    uVar7 = 2;\n    FUN_000185e0();\n    FUN_0001a110();\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b0ec;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);\n    bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n    if (!bVar12) goto LAB_0001626b;\n    bVar12 = (DAT_0006f0a0 & 3) == 0;\n    if (!bVar12) goto LAB_000161c3;\nLAB_00015f8f:\n    bVar15 = false;\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)0x53a3b;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    if ((!bVar15 && !bVar12) == bVar15) {\n      FUN_00019ef0();\n      FUN_00019990();\n    }\n    else {\n      iVar5 = FUN_00019140();\n      if (iVar5 == 0) {\n        FUN_00044820();\n        return 2;\n      }\n      do {\n        iVar5 = FUN_00019140();\n      } while (iVar5 != 0);\n      FUN_00019ef0();\n      FUN_00019990();\n    }\n    uVar14 = (undefined1 *)0xffffffef < &stack0xffffffc4;\n    uVar16 = &stack0x00000000 == (undefined1 *)0x2c;\n    uVar7 = 2;\n    FUN_000185e0();\n    FUN_0001a110();\n    FUN_0001a110();\n    iVar5 = 4;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b0fd;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);\n    bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n    if (bVar12) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;\n      goto LAB_000162ed;\n    }\nLAB_00016698:\n    bVar15 = false;\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b101;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar12 = (!bVar15 && !bVar12) == bVar15;\n    if (bVar12) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;\n      if (param_3 != 0) goto LAB_00016123;\n      goto LAB_0001639b;\n    }\nLAB_000166e0:\n    bVar15 = false;\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b104;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar12 = (!bVar15 && !bVar12) == bVar15;\n    if (bVar12) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n      if (param_3 != 0) goto LAB_00016723;\n      goto LAB_000164a7;\n    }\nLAB_00016777:\n    bVar15 = false;\n    iVar5 = 4;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b107;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    if ((!bVar15 && !bVar12) == bVar15) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n      if (param_3 != 0) goto LAB_00016723;\n      goto LAB_000164f6;\n    }\n    iVar5 = strcmp((char *)param_1,"-agent");\n    if ((iVar5 != 0) && (iVar5 = strcmp((char *)param_1,"-pagent"), iVar5 != 0)) goto LAB_0001685f;\nLAB_00016884:\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_0001688c:\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n    if (param_3 != 0) goto LAB_00015c78;\nLAB_000168a1:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-noagent");\n    if (iVar5 != 0) {\n      uVar7 = 1;\n      iVar5 = strcmp((char *)param_1,"-nopagent");\n      if (iVar5 != 0) goto LAB_000165eb;\n      goto LAB_00016e44;\n    }\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\nLAB_000168e1:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-A");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      goto LAB_00016921;\n    }\n    uVar7 = 1;\n    iVar5 = strcmp((char *)param_1,"-a");\n    if (iVar5 == 0) {\nLAB_0001700b:\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\n      goto LAB_00016961;\n    }\nLAB_00016f0f:\n    iVar5 = strcmp((char *)param_1,"-X");\n    if (iVar5 != 0) goto LAB_00016f97;\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_00016f38:\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n    if (param_3 != 0) goto LAB_00015c78;\nLAB_000169a1:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-x");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\nLAB_000169e4:\n      FUN_000183f0();\n      iVar5 = strcmp((char *)param_1,"-t");\n      if (iVar5 == 0) {\n        if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n        goto LAB_00016a27;\n      }\n      uVar7 = 1;\n      iVar5 = strcmp((char *)param_1,"-T");\n      if (iVar5 == 0) goto LAB_0001770d;\nLAB_00017759:\n      iVar5 = strcmp((char *)param_1,"-N");\n      if (iVar5 != 0) goto LAB_00017727;\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_000176cd:\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\n      goto LAB_00016aa7;\n    }\n    uVar7 = 1;\n    iVar5 = strcmp((char *)param_1,"-t");\n    if (iVar5 != 0) goto LAB_000177b1;\nLAB_0001707c:\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n    if (param_3 != 0) goto LAB_00017091;\nLAB_00016a27:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-T");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      goto LAB_00016a67;\n    }\n    uVar7 = 1;\n    iVar5 = strcmp((char *)param_1,"-N");\n    if (iVar5 == 0) goto LAB_000176cd;\nLAB_00017727:\n    iVar5 = strcmp((char *)param_1,"-C");\n    if (iVar5 != 0) goto LAB_00017679;\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_0001762d:\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n    if (param_3 != 0) goto LAB_00015c78;\nLAB_00016ae7:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-1");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\nLAB_00016b27:\n      FUN_000183f0();\n      iVar5 = strcmp((char *)param_1,"-2");\n      if (iVar5 == 0) {\n        if ((DAT_0006f0a0 & 2) != 0) {\nLAB_00015d50:\n          FUN_00044820();\n          return 1;\n        }\n        goto LAB_00016b67;\n      }\n    }\n    else {\n      iVar5 = strcmp((char *)param_1,"-2");\n      if (iVar5 == 0) goto LAB_000175ad;\n    }\n    uVar7 = 1;\n  }" if (parenthesized_expression "(bVar12)" ( identifier )) (compound_statement "{\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n    if (param_3 != 0) goto LAB_00016123;\n    uVar14 = auStack_2c < (undefined1 *)0x4;\n    uVar16 = &stack0x00000000 == (undefined1 *)0x30;\n    FUN_00018530();\n    iVar5 = 9;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)"-loghost";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);\n    bVar12 = false;\n    bVar15 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n    if (bVar15) {\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n      goto LAB_00015ec5;\n    }\n    iVar5 = 9;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)"-hostkey";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar12 = *pbVar9 < *pbVar11;\n      bVar15 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar15);\n    bVar12 = (!bVar12 && !bVar15) == bVar12;\n    if (bVar12) goto LAB_00016218;\nLAB_00016248:\n    uVar7 = 2;\nLAB_0001624d:\n    bVar15 = false;\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b0ec;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar12 = (!bVar15 && !bVar12) == bVar15;\n    if (bVar12) {\nLAB_00016647:\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;\n      bVar12 = param_3 == 0;\n      if (!bVar12) goto LAB_00016123;\n      goto LAB_00015f8f;\n    }\nLAB_0001626b:\n    bVar15 = false;\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b0ef;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar13 = false;\n    bVar12 = (!bVar15 && !bVar12) == bVar15;\n    if (bVar12) goto LAB_00016647;\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)0x53a3b;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar13 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar15 = false;\n    bVar12 = (!bVar13 && !bVar12) == bVar13;\n    if (bVar12) goto LAB_00016647;\n    iVar5 = 4;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b0fd;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar12 = (!bVar15 && !bVar12) == bVar15;\n    if (!bVar12) goto LAB_00016698;\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;\n    if (param_3 != 0) goto LAB_00016123;\nLAB_000162ed:\n    iVar5 = FUN_00019140();\n    if (iVar5 == 0) {\n      FUN_00044820();\n      return 2;\n    }\n    uVar7 = 2;\n    FUN_00019ef0();\n    FUN_00018530();\n    strtol((char *)(iVar5 + 1),(char **)0x0,10);\n    uVar14 = (undefined1 *)0xfffffff3 < &stack0xffffffc4;\n    uVar16 = &stack0x00000000 == (undefined1 *)0x30;\n    FUN_000183f0();\n    FUN_0001a110();\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b101;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);\n    bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n    if (!bVar12) goto LAB_000166e0;\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;\nLAB_0001639b:\n    iVar10 = 0;\n    iVar5 = 0;\n    __stream = fopen64(param_2,"r");\n    local_24 = 0;\n    if (__stream == (FILE *)0x0) {\n      FUN_00044820();\n      return 2;\n    }\n    while (iVar2 = fgetc(__stream), iVar2 != -1) {\n      if (iVar10 < local_24) {\n        *(char *)(iVar5 + iVar10) = (char)iVar2;\n      }\n      else {\n        local_24 = iVar10 + 0x200;\n        local_20 = iVar2;\n        iVar5 = FUN_00019c80();\n        *(char *)(iVar5 + iVar10) = (char)local_20;\n      }\n      iVar10 = iVar10 + 1;\n    }\n    if (iVar10 < local_24) {\n      *(undefined1 *)(iVar5 + iVar10) = 0;\n    }\n    else {\n      iVar5 = FUN_00019c80();\n      *(undefined1 *)(iVar5 + iVar10) = 0;\n    }\n    uVar7 = 2;\n    fclose(__stream);\n    FUN_00018530();\n    FUN_00018530();\n    uVar14 = (undefined1 *)0xfffffff3 < &stack0xffffffc4;\n    uVar16 = &stack0x00000000 == (undefined1 *)0x30;\n    FUN_000183f0();\n    FUN_0001a110();\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b104;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);\n    bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n    if (!bVar12) goto LAB_00016777;\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\nLAB_000164a7:\n    strtol(param_2,(char **)0x0,10);\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-pw");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\nLAB_000164f6:\n      iVar5 = FUN_00017cd0();\n      if (iVar5 == 3) {\n        DAT_0006f0a8 = FUN_00019990();\n        iVar5 = -1;\n        pcVar8 = param_2;\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          cVar1 = *pcVar8;\n          pcVar8 = pcVar8 + (uint)bVar17 * -2 + 1;\n        } while (cVar1 != '\0');\n        FUN_0001a1f0();\n      }\n      else {\n        FUN_00044820();\n      }\n      iVar5 = strcmp((char *)param_1,"-agent");\n      if ((iVar5 == 0) || (iVar5 = strcmp((char *)param_1,"-pagent"), iVar5 == 0))\n      goto LAB_00015d3a;\n      uVar7 = 2;\n      iVar5 = strcmp((char *)param_1,"-pageant");\n      if (iVar5 == 0) goto LAB_0001688c;\n    }\n    else {\n      iVar5 = strcmp((char *)param_1,"-agent");\n      if (iVar5 == 0) {\nLAB_00015d3a:\n        if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n        goto LAB_000168a1;\n      }\n      uVar7 = 2;\n      iVar5 = strcmp((char *)param_1,"-pagent");\n      if (iVar5 == 0) goto LAB_0001688c;\nLAB_0001685f:\n      iVar5 = strcmp((char *)param_1,"-pageant");\n      if (iVar5 == 0) goto LAB_00016884;\n    }\n    iVar5 = strcmp((char *)param_1,"-noagent");\n    if ((iVar5 == 0) || (iVar5 = strcmp((char *)param_1,"-nopagent"), iVar5 == 0)) {\nLAB_00016e5e:\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_00016e44:\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\n      goto LAB_000168e1;\n    }\nLAB_000165eb:\n    iVar5 = strcmp((char *)param_1,"-nopageant");\n    if (iVar5 == 0) goto LAB_00016e5e;\n    iVar5 = strcmp((char *)param_1,"-A");\n    if (iVar5 != 0) {\n      iVar5 = strcmp((char *)param_1,"-a");\n      if (iVar5 != 0) goto LAB_00016f0f;\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_0001700b;\n    }\n    if (param_3 < 0) {\n      return 1;\n    }\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n    if (param_3 != 0) goto LAB_00015c78;\nLAB_00016921:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-a");\n    if (iVar5 != 0) {\n      uVar7 = 1;\n      iVar5 = strcmp((char *)param_1,"-X");\n      if (iVar5 == 0) goto LAB_00016f38;\nLAB_00016f97:\n      iVar5 = strcmp((char *)param_1,"-x");\n      if (iVar5 != 0) goto LAB_0001704f;\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_00016fc4:\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\n      goto LAB_000169e4;\n    }\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\nLAB_00016961:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-X");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      goto LAB_000169a1;\n    }\n    uVar7 = 1;\n    iVar5 = strcmp((char *)param_1,"-x");\n    if (iVar5 == 0) goto LAB_00016fc4;\nLAB_0001704f:\n    iVar5 = strcmp((char *)param_1,"-t");\n    if (iVar5 == 0) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_0001707c;\n    }\nLAB_000177b1:\n    iVar5 = strcmp((char *)param_1,"-T");\n    if (iVar5 != 0) goto LAB_00017759;\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_0001770d:\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n    if (param_3 != 0) goto LAB_00017091;\nLAB_00016a67:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-N");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\nLAB_00016aa7:\n      FUN_000183f0();\n      iVar5 = strcmp((char *)param_1,"-C");\n      if (iVar5 == 0) {\n        if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n        goto LAB_00016ae7;\n      }\n      uVar7 = 1;\n      iVar5 = strcmp((char *)param_1,"-1");\n      if (iVar5 != 0) goto LAB_00017647;\nLAB_000175ed:\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\n      goto LAB_00016b27;\n    }\n    uVar7 = 1;\n    iVar5 = strcmp((char *)param_1,"-C");\n    if (iVar5 == 0) goto LAB_0001762d;\nLAB_00017679:\n    iVar5 = strcmp((char *)param_1,"-1");\n    if (iVar5 == 0) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_000175ed;\n    }\nLAB_00017647:\n    iVar5 = strcmp((char *)param_1,"-2");\n    if (iVar5 == 0) {\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_000175ad:\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n      if (param_3 != 0) {\nLAB_00015c78:\n        FUN_00015950();\n        return 1;\n      }\nLAB_00016b67:\n      uVar7 = 1;\n      FUN_000183f0();\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 ;) })) (if_statement "if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;" if (parenthesized_expression "((DAT_0006f0a0 & 2) != 0)" ( (binary_expression "(DAT_0006f0a0 & 2) != 0" (parenthesized_expression "(DAT_0006f0a0 & 2)" ( (binary_expression "DAT_0006f0a0 & 2" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_000161c3;" goto statement_identifier ;)) (if_statement "if (param_3 != 0) goto LAB_00016123;" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00016123;" goto statement_identifier ;)) (expression_statement "uVar14 = auStack_2c < (undefined1 *)0x4;" (assignment_expression "uVar14 = auStack_2c < (undefined1 *)0x4" identifier = (binary_expression "auStack_2c < (undefined1 *)0x4" identifier < (cast_expression "(undefined1 *)0x4" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "uVar16 = &stack0x00000000 == (undefined1 *)0x30;" (assignment_expression "uVar16 = &stack0x00000000 == (undefined1 *)0x30" identifier = (binary_expression "&stack0x00000000 == (undefined1 *)0x30" (pointer_expression "&stack0x00000000" & identifier) == (cast_expression "(undefined1 *)0x30" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "FUN_00018530();" (call_expression "FUN_00018530()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar5 = 9;" (assignment_expression "iVar5 = 9" identifier = number_literal) ;) (expression_statement "pbVar9 = param_1;" (assignment_expression "pbVar9 = param_1" identifier = identifier) ;) (expression_statement "pbVar11 = (byte *)"-loghost";" (assignment_expression "pbVar11 = (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 (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);" do (compound_statement "{\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    }" { (if_statement "if (iVar5 == 0) break;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) (expression_statement "uVar14 = *pbVar9 < *pbVar11;" (assignment_expression "uVar14 = *pbVar9 < *pbVar11" identifier = (binary_expression "*pbVar9 < *pbVar11" (pointer_expression "*pbVar9" * identifier) < (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "uVar16 = *pbVar9 == *pbVar11;" (assignment_expression "uVar16 = *pbVar9 == *pbVar11" identifier = (binary_expression "*pbVar9 == *pbVar11" (pointer_expression "*pbVar9" * identifier) == (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar9 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar11 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" 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      if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n      goto LAB_00015ec5;\n    }" if (parenthesized_expression "(bVar15)" ( identifier )) (compound_statement "{\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n      goto LAB_00015ec5;\n    }" { (if_statement "if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;" if (parenthesized_expression "((DAT_0006f0a0 & 2) != 0)" ( (binary_expression "(DAT_0006f0a0 & 2) != 0" (parenthesized_expression "(DAT_0006f0a0 & 2)" ( (binary_expression "DAT_0006f0a0 & 2" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_000161c3;" goto statement_identifier ;)) (goto_statement "goto LAB_00015ec5;" goto statement_identifier ;) })) (expression_statement "iVar5 = 9;" (assignment_expression "iVar5 = 9" identifier = number_literal) ;) (expression_statement "pbVar9 = param_1;" (assignment_expression "pbVar9 = param_1" identifier = identifier) ;) (expression_statement "pbVar11 = (byte *)"-hostkey";" (assignment_expression "pbVar11 = (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 (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar12 = *pbVar9 < *pbVar11;\n      bVar15 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar15);" do (compound_statement "{\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar12 = *pbVar9 < *pbVar11;\n      bVar15 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    }" { (if_statement "if (iVar5 == 0) break;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) (expression_statement "bVar12 = *pbVar9 < *pbVar11;" (assignment_expression "bVar12 = *pbVar9 < *pbVar11" identifier = (binary_expression "*pbVar9 < *pbVar11" (pointer_expression "*pbVar9" * identifier) < (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "bVar15 = *pbVar9 == *pbVar11;" (assignment_expression "bVar15 = *pbVar9 == *pbVar11" identifier = (binary_expression "*pbVar9 == *pbVar11" (pointer_expression "*pbVar9" * identifier) == (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar9 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar11 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" 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)) ;) (if_statement "if (bVar12) goto LAB_00016218;" if (parenthesized_expression "(bVar12)" ( identifier )) (goto_statement "goto LAB_00016218;" goto statement_identifier ;)) (labeled_statement "LAB_00016248:\n    uVar7 = 2;" statement_identifier : (expression_statement "uVar7 = 2;" (assignment_expression "uVar7 = 2" identifier = number_literal) ;)) (labeled_statement "LAB_0001624d:\n    bVar15 = false;" statement_identifier : (expression_statement "bVar15 = false;" (assignment_expression "bVar15 = false" identifier = false) ;)) (expression_statement "iVar5 = 3;" (assignment_expression "iVar5 = 3" identifier = number_literal) ;) (expression_statement "pbVar9 = param_1;" (assignment_expression "pbVar9 = param_1" identifier = identifier) ;) (expression_statement "pbVar11 = &DAT_0004b0ec;" (assignment_expression "pbVar11 = &DAT_0004b0ec" identifier = (pointer_expression "&DAT_0004b0ec" & identifier)) ;) (do_statement "do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);" do (compound_statement "{\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    }" { (if_statement "if (iVar5 == 0) break;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) (expression_statement "bVar15 = *pbVar9 < *pbVar11;" (assignment_expression "bVar15 = *pbVar9 < *pbVar11" identifier = (binary_expression "*pbVar9 < *pbVar11" (pointer_expression "*pbVar9" * identifier) < (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "bVar12 = *pbVar9 == *pbVar11;" (assignment_expression "bVar12 = *pbVar9 == *pbVar11" identifier = (binary_expression "*pbVar9 == *pbVar11" (pointer_expression "*pbVar9" * identifier) == (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar9 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar11 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" 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) {\nLAB_00016647:\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;\n      bVar12 = param_3 == 0;\n      if (!bVar12) goto LAB_00016123;\n      goto LAB_00015f8f;\n    }" if (parenthesized_expression "(bVar12)" ( identifier )) (compound_statement "{\nLAB_00016647:\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;\n      bVar12 = param_3 == 0;\n      if (!bVar12) goto LAB_00016123;\n      goto LAB_00015f8f;\n    }" { (labeled_statement "LAB_00016647:\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 ;) })) (if_statement "if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;" if (parenthesized_expression "((DAT_0006f0a0 & 3) != 0)" ( (binary_expression "(DAT_0006f0a0 & 3) != 0" (parenthesized_expression "(DAT_0006f0a0 & 3)" ( (binary_expression "DAT_0006f0a0 & 3" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_000161c3;" goto statement_identifier ;)) (expression_statement "bVar12 = param_3 == 0;" (assignment_expression "bVar12 = param_3 == 0" identifier = (binary_expression "param_3 == 0" identifier == number_literal)) ;) (if_statement "if (!bVar12) goto LAB_00016123;" if (parenthesized_expression "(!bVar12)" ( (unary_expression "!bVar12" ! identifier) )) (goto_statement "goto LAB_00016123;" goto statement_identifier ;)) (goto_statement "goto LAB_00015f8f;" goto statement_identifier ;) })) (labeled_statement "LAB_0001626b:\n    bVar15 = false;" statement_identifier : (expression_statement "bVar15 = false;" (assignment_expression "bVar15 = false" identifier = false) ;)) (expression_statement "iVar5 = 3;" (assignment_expression "iVar5 = 3" identifier = number_literal) ;) (expression_statement "pbVar9 = param_1;" (assignment_expression "pbVar9 = param_1" identifier = identifier) ;) (expression_statement "pbVar11 = &DAT_0004b0ef;" (assignment_expression "pbVar11 = &DAT_0004b0ef" identifier = (pointer_expression "&DAT_0004b0ef" & identifier)) ;) (do_statement "do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);" do (compound_statement "{\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    }" { (if_statement "if (iVar5 == 0) break;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) (expression_statement "bVar15 = *pbVar9 < *pbVar11;" (assignment_expression "bVar15 = *pbVar9 < *pbVar11" identifier = (binary_expression "*pbVar9 < *pbVar11" (pointer_expression "*pbVar9" * identifier) < (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "bVar12 = *pbVar9 == *pbVar11;" (assignment_expression "bVar12 = *pbVar9 == *pbVar11" identifier = (binary_expression "*pbVar9 == *pbVar11" (pointer_expression "*pbVar9" * identifier) == (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar9 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar11 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" 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) goto LAB_00016647;" if (parenthesized_expression "(bVar12)" ( identifier )) (goto_statement "goto LAB_00016647;" goto statement_identifier ;)) (expression_statement "iVar5 = 3;" (assignment_expression "iVar5 = 3" identifier = number_literal) ;) (expression_statement "pbVar9 = param_1;" (assignment_expression "pbVar9 = param_1" identifier = identifier) ;) (expression_statement "pbVar11 = (byte *)0x53a3b;" (assignment_expression "pbVar11 = (byte *)0x53a3b" identifier = (cast_expression "(byte *)0x53a3b" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar13 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);" do (compound_statement "{\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar13 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    }" { (if_statement "if (iVar5 == 0) break;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) (expression_statement "bVar13 = *pbVar9 < *pbVar11;" (assignment_expression "bVar13 = *pbVar9 < *pbVar11" identifier = (binary_expression "*pbVar9 < *pbVar11" (pointer_expression "*pbVar9" * identifier) < (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "bVar12 = *pbVar9 == *pbVar11;" (assignment_expression "bVar12 = *pbVar9 == *pbVar11" identifier = (binary_expression "*pbVar9 == *pbVar11" (pointer_expression "*pbVar9" * identifier) == (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar9 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar11 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" 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) goto LAB_00016647;" if (parenthesized_expression "(bVar12)" ( identifier )) (goto_statement "goto LAB_00016647;" goto statement_identifier ;)) (expression_statement "iVar5 = 4;" (assignment_expression "iVar5 = 4" identifier = number_literal) ;) (expression_statement "pbVar9 = param_1;" (assignment_expression "pbVar9 = param_1" identifier = identifier) ;) (expression_statement "pbVar11 = &DAT_0004b0fd;" (assignment_expression "pbVar11 = &DAT_0004b0fd" identifier = (pointer_expression "&DAT_0004b0fd" & identifier)) ;) (do_statement "do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);" do (compound_statement "{\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    }" { (if_statement "if (iVar5 == 0) break;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) (expression_statement "bVar15 = *pbVar9 < *pbVar11;" (assignment_expression "bVar15 = *pbVar9 < *pbVar11" identifier = (binary_expression "*pbVar9 < *pbVar11" (pointer_expression "*pbVar9" * identifier) < (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "bVar12 = *pbVar9 == *pbVar11;" (assignment_expression "bVar12 = *pbVar9 == *pbVar11" identifier = (binary_expression "*pbVar9 == *pbVar11" (pointer_expression "*pbVar9" * identifier) == (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar9 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar11 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" 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_00016698;" if (parenthesized_expression "(!bVar12)" ( (unary_expression "!bVar12" ! identifier) )) (goto_statement "goto LAB_00016698;" 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 ;) })) (if_statement "if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;" if (parenthesized_expression "((DAT_0006f0a0 & 3) != 0)" ( (binary_expression "(DAT_0006f0a0 & 3) != 0" (parenthesized_expression "(DAT_0006f0a0 & 3)" ( (binary_expression "DAT_0006f0a0 & 3" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_000161c3;" goto statement_identifier ;)) (if_statement "if (param_3 != 0) goto LAB_00016123;" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00016123;" goto statement_identifier ;)) (labeled_statement "LAB_000162ed:\n    iVar5 = FUN_00019140();" statement_identifier : (expression_statement "iVar5 = FUN_00019140();" (assignment_expression "iVar5 = FUN_00019140()" identifier = (call_expression "FUN_00019140()" identifier (argument_list "()" ( )))) ;)) (if_statement "if (iVar5 == 0) {\n      FUN_00044820();\n      return 2;\n    }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n      FUN_00044820();\n      return 2;\n    }" { (expression_statement "FUN_00044820();" (call_expression "FUN_00044820()" identifier (argument_list "()" ( ))) ;) (return_statement "return 2;" return number_literal ;) })) (expression_statement "uVar7 = 2;" (assignment_expression "uVar7 = 2" identifier = number_literal) ;) (expression_statement "FUN_00019ef0();" (call_expression "FUN_00019ef0()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00018530();" (call_expression "FUN_00018530()" identifier (argument_list "()" ( ))) ;) (expression_statement "strtol((char *)(iVar5 + 1),(char **)0x0,10);" (call_expression "strtol((char *)(iVar5 + 1),(char **)0x0,10)" identifier (argument_list "((char *)(iVar5 + 1),(char **)0x0,10)" ( (cast_expression "(char *)(iVar5 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 1)" ( (binary_expression "iVar5 + 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 "uVar14 = (undefined1 *)0xfffffff3 < &stack0xffffffc4;" (assignment_expression "uVar14 = (undefined1 *)0xfffffff3 < &stack0xffffffc4" identifier = (binary_expression "(undefined1 *)0xfffffff3 < &stack0xffffffc4" (cast_expression "(undefined1 *)0xfffffff3" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < (pointer_expression "&stack0xffffffc4" & identifier))) ;) (expression_statement "uVar16 = &stack0x00000000 == (undefined1 *)0x30;" (assignment_expression "uVar16 = &stack0x00000000 == (undefined1 *)0x30" identifier = (binary_expression "&stack0x00000000 == (undefined1 *)0x30" (pointer_expression "&stack0x00000000" & identifier) == (cast_expression "(undefined1 *)0x30" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "FUN_000183f0();" (call_expression "FUN_000183f0()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_0001a110();" (call_expression "FUN_0001a110()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar5 = 3;" (assignment_expression "iVar5 = 3" identifier = number_literal) ;) (expression_statement "pbVar9 = param_1;" (assignment_expression "pbVar9 = param_1" identifier = identifier) ;) (expression_statement "pbVar11 = &DAT_0004b101;" (assignment_expression "pbVar11 = &DAT_0004b101" identifier = (pointer_expression "&DAT_0004b101" & identifier)) ;) (do_statement "do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);" do (compound_statement "{\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    }" { (if_statement "if (iVar5 == 0) break;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) (expression_statement "uVar14 = *pbVar9 < *pbVar11;" (assignment_expression "uVar14 = *pbVar9 < *pbVar11" identifier = (binary_expression "*pbVar9 < *pbVar11" (pointer_expression "*pbVar9" * identifier) < (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "uVar16 = *pbVar9 == *pbVar11;" (assignment_expression "uVar16 = *pbVar9 == *pbVar11" identifier = (binary_expression "*pbVar9 == *pbVar11" (pointer_expression "*pbVar9" * identifier) == (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar9 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar11 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" 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 = (!(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_000166e0;" if (parenthesized_expression "(!bVar12)" ( (unary_expression "!bVar12" ! identifier) )) (goto_statement "goto LAB_000166e0;" goto statement_identifier ;)) (if_statement "if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;" if (parenthesized_expression "((DAT_0006f0a0 & 3) != 0)" ( (binary_expression "(DAT_0006f0a0 & 3) != 0" (parenthesized_expression "(DAT_0006f0a0 & 3)" ( (binary_expression "DAT_0006f0a0 & 3" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_000161c3;" goto statement_identifier ;)) (labeled_statement "LAB_0001639b:\n    iVar10 = 0;" statement_identifier : (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;)) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (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 ") )))) ;) (expression_statement "local_24 = 0;" (assignment_expression "local_24 = 0" identifier = number_literal) ;) (if_statement "if (__stream == (FILE *)0x0) {\n      FUN_00044820();\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_00044820();\n      return 2;\n    }" { (expression_statement "FUN_00044820();" (call_expression "FUN_00044820()" identifier (argument_list "()" ( ))) ;) (return_statement "return 2;" return number_literal ;) })) (while_statement "while (iVar2 = fgetc(__stream), iVar2 != -1) {\n      if (iVar10 < local_24) {\n        *(char *)(iVar5 + iVar10) = (char)iVar2;\n      }\n      else {\n        local_24 = iVar10 + 0x200;\n        local_20 = iVar2;\n        iVar5 = FUN_00019c80();\n        *(char *)(iVar5 + iVar10) = (char)local_20;\n      }\n      iVar10 = iVar10 + 1;\n    }" while (parenthesized_expression "(iVar2 = fgetc(__stream), iVar2 != -1)" ( (comma_expression "iVar2 = fgetc(__stream), iVar2 != -1" (assignment_expression "iVar2 = fgetc(__stream)" identifier = (call_expression "fgetc(__stream)" identifier (argument_list "(__stream)" ( identifier )))) , (binary_expression "iVar2 != -1" identifier != number_literal)) )) (compound_statement "{\n      if (iVar10 < local_24) {\n        *(char *)(iVar5 + iVar10) = (char)iVar2;\n      }\n      else {\n        local_24 = iVar10 + 0x200;\n        local_20 = iVar2;\n        iVar5 = FUN_00019c80();\n        *(char *)(iVar5 + iVar10) = (char)local_20;\n      }\n      iVar10 = iVar10 + 1;\n    }" { (if_statement "if (iVar10 < local_24) {\n        *(char *)(iVar5 + iVar10) = (char)iVar2;\n      }\n      else {\n        local_24 = iVar10 + 0x200;\n        local_20 = iVar2;\n        iVar5 = FUN_00019c80();\n        *(char *)(iVar5 + iVar10) = (char)local_20;\n      }" if (parenthesized_expression "(iVar10 < local_24)" ( (binary_expression "iVar10 < local_24" identifier < identifier) )) (compound_statement "{\n        *(char *)(iVar5 + iVar10) = (char)iVar2;\n      }" { (expression_statement "*(char *)(iVar5 + iVar10) = (char)iVar2;" (assignment_expression "*(char *)(iVar5 + iVar10) = (char)iVar2" (pointer_expression "*(char *)(iVar5 + iVar10)" * (cast_expression "(char *)(iVar5 + iVar10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + iVar10)" ( (binary_expression "iVar5 + iVar10" identifier + identifier) )))) = (cast_expression "(char)iVar2" ( (type_descriptor "char" primitive_type) ) identifier)) ;) }) (else_clause "else {\n        local_24 = iVar10 + 0x200;\n        local_20 = iVar2;\n        iVar5 = FUN_00019c80();\n        *(char *)(iVar5 + iVar10) = (char)local_20;\n      }" else (compound_statement "{\n        local_24 = iVar10 + 0x200;\n        local_20 = iVar2;\n        iVar5 = FUN_00019c80();\n        *(char *)(iVar5 + iVar10) = (char)local_20;\n      }" { (expression_statement "local_24 = iVar10 + 0x200;" (assignment_expression "local_24 = iVar10 + 0x200" identifier = (binary_expression "iVar10 + 0x200" identifier + number_literal)) ;) (expression_statement "local_20 = iVar2;" (assignment_expression "local_20 = iVar2" identifier = identifier) ;) (expression_statement "iVar5 = FUN_00019c80();" (assignment_expression "iVar5 = FUN_00019c80()" identifier = (call_expression "FUN_00019c80()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(char *)(iVar5 + iVar10) = (char)local_20;" (assignment_expression "*(char *)(iVar5 + iVar10) = (char)local_20" (pointer_expression "*(char *)(iVar5 + iVar10)" * (cast_expression "(char *)(iVar5 + iVar10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + iVar10)" ( (binary_expression "iVar5 + iVar10" identifier + identifier) )))) = (cast_expression "(char)local_20" ( (type_descriptor "char" primitive_type) ) identifier)) ;) }))) (expression_statement "iVar10 = iVar10 + 1;" (assignment_expression "iVar10 = iVar10 + 1" identifier = (binary_expression "iVar10 + 1" identifier + number_literal)) ;) })) (if_statement "if (iVar10 < local_24) {\n      *(undefined1 *)(iVar5 + iVar10) = 0;\n    }\n    else {\n      iVar5 = FUN_00019c80();\n      *(undefined1 *)(iVar5 + iVar10) = 0;\n    }" if (parenthesized_expression "(iVar10 < local_24)" ( (binary_expression "iVar10 < local_24" identifier < identifier) )) (compound_statement "{\n      *(undefined1 *)(iVar5 + iVar10) = 0;\n    }" { (expression_statement "*(undefined1 *)(iVar5 + iVar10) = 0;" (assignment_expression "*(undefined1 *)(iVar5 + iVar10) = 0" (pointer_expression "*(undefined1 *)(iVar5 + iVar10)" * (cast_expression "(undefined1 *)(iVar5 + iVar10)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + iVar10)" ( (binary_expression "iVar5 + iVar10" identifier + identifier) )))) = number_literal) ;) }) (else_clause "else {\n      iVar5 = FUN_00019c80();\n      *(undefined1 *)(iVar5 + iVar10) = 0;\n    }" else (compound_statement "{\n      iVar5 = FUN_00019c80();\n      *(undefined1 *)(iVar5 + iVar10) = 0;\n    }" { (expression_statement "iVar5 = FUN_00019c80();" (assignment_expression "iVar5 = FUN_00019c80()" identifier = (call_expression "FUN_00019c80()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(undefined1 *)(iVar5 + iVar10) = 0;" (assignment_expression "*(undefined1 *)(iVar5 + iVar10) = 0" (pointer_expression "*(undefined1 *)(iVar5 + iVar10)" * (cast_expression "(undefined1 *)(iVar5 + iVar10)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + iVar10)" ( (binary_expression "iVar5 + iVar10" identifier + identifier) )))) = number_literal) ;) }))) (expression_statement "uVar7 = 2;" (assignment_expression "uVar7 = 2" identifier = number_literal) ;) (expression_statement "fclose(__stream);" (call_expression "fclose(__stream)" identifier (argument_list "(__stream)" ( identifier ))) ;) (expression_statement "FUN_00018530();" (call_expression "FUN_00018530()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00018530();" (call_expression "FUN_00018530()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar14 = (undefined1 *)0xfffffff3 < &stack0xffffffc4;" (assignment_expression "uVar14 = (undefined1 *)0xfffffff3 < &stack0xffffffc4" identifier = (binary_expression "(undefined1 *)0xfffffff3 < &stack0xffffffc4" (cast_expression "(undefined1 *)0xfffffff3" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < (pointer_expression "&stack0xffffffc4" & identifier))) ;) (expression_statement "uVar16 = &stack0x00000000 == (undefined1 *)0x30;" (assignment_expression "uVar16 = &stack0x00000000 == (undefined1 *)0x30" identifier = (binary_expression "&stack0x00000000 == (undefined1 *)0x30" (pointer_expression "&stack0x00000000" & identifier) == (cast_expression "(undefined1 *)0x30" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "FUN_000183f0();" (call_expression "FUN_000183f0()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_0001a110();" (call_expression "FUN_0001a110()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar5 = 3;" (assignment_expression "iVar5 = 3" identifier = number_literal) ;) (expression_statement "pbVar9 = param_1;" (assignment_expression "pbVar9 = param_1" identifier = identifier) ;) (expression_statement "pbVar11 = &DAT_0004b104;" (assignment_expression "pbVar11 = &DAT_0004b104" identifier = (pointer_expression "&DAT_0004b104" & identifier)) ;) (do_statement "do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);" do (compound_statement "{\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    }" { (if_statement "if (iVar5 == 0) break;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) (expression_statement "uVar14 = *pbVar9 < *pbVar11;" (assignment_expression "uVar14 = *pbVar9 < *pbVar11" identifier = (binary_expression "*pbVar9 < *pbVar11" (pointer_expression "*pbVar9" * identifier) < (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "uVar16 = *pbVar9 == *pbVar11;" (assignment_expression "uVar16 = *pbVar9 == *pbVar11" identifier = (binary_expression "*pbVar9 == *pbVar11" (pointer_expression "*pbVar9" * identifier) == (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar9 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar11 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" 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 = (!(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_00016777;" if (parenthesized_expression "(!bVar12)" ( (unary_expression "!bVar12" ! identifier) )) (goto_statement "goto LAB_00016777;" goto statement_identifier ;)) (if_statement "if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;" if (parenthesized_expression "((DAT_0006f0a0 & 2) != 0)" ( (binary_expression "(DAT_0006f0a0 & 2) != 0" (parenthesized_expression "(DAT_0006f0a0 & 2)" ( (binary_expression "DAT_0006f0a0 & 2" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_000161c3;" goto statement_identifier ;)) (labeled_statement "LAB_000164a7:\n    strtol(param_2,(char **)0x0,10);" statement_identifier : (expression_statement "strtol(param_2,(char **)0x0,10);" (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_000183f0();" (call_expression "FUN_000183f0()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar5 = strcmp((char *)param_1,"-pw");" (assignment_expression "iVar5 = 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 (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\nLAB_000164f6:\n      iVar5 = FUN_00017cd0();\n      if (iVar5 == 3) {\n        DAT_0006f0a8 = FUN_00019990();\n        iVar5 = -1;\n        pcVar8 = param_2;\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          cVar1 = *pcVar8;\n          pcVar8 = pcVar8 + (uint)bVar17 * -2 + 1;\n        } while (cVar1 != '\0');\n        FUN_0001a1f0();\n      }\n      else {\n        FUN_00044820();\n      }\n      iVar5 = strcmp((char *)param_1,"-agent");\n      if ((iVar5 == 0) || (iVar5 = strcmp((char *)param_1,"-pagent"), iVar5 == 0))\n      goto LAB_00015d3a;\n      uVar7 = 2;\n      iVar5 = strcmp((char *)param_1,"-pageant");\n      if (iVar5 == 0) goto LAB_0001688c;\n    }\n    else {\n      iVar5 = strcmp((char *)param_1,"-agent");\n      if (iVar5 == 0) {\nLAB_00015d3a:\n        if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n        goto LAB_000168a1;\n      }\n      uVar7 = 2;\n      iVar5 = strcmp((char *)param_1,"-pagent");\n      if (iVar5 == 0) goto LAB_0001688c;\nLAB_0001685f:\n      iVar5 = strcmp((char *)param_1,"-pageant");\n      if (iVar5 == 0) goto LAB_00016884;\n    }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\nLAB_000164f6:\n      iVar5 = FUN_00017cd0();\n      if (iVar5 == 3) {\n        DAT_0006f0a8 = FUN_00019990();\n        iVar5 = -1;\n        pcVar8 = param_2;\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          cVar1 = *pcVar8;\n          pcVar8 = pcVar8 + (uint)bVar17 * -2 + 1;\n        } while (cVar1 != '\0');\n        FUN_0001a1f0();\n      }\n      else {\n        FUN_00044820();\n      }\n      iVar5 = strcmp((char *)param_1,"-agent");\n      if ((iVar5 == 0) || (iVar5 = strcmp((char *)param_1,"-pagent"), iVar5 == 0))\n      goto LAB_00015d3a;\n      uVar7 = 2;\n      iVar5 = strcmp((char *)param_1,"-pageant");\n      if (iVar5 == 0) goto LAB_0001688c;\n    }" { (if_statement "if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;" if (parenthesized_expression "((DAT_0006f0a0 & 2) != 0)" ( (binary_expression "(DAT_0006f0a0 & 2) != 0" (parenthesized_expression "(DAT_0006f0a0 & 2)" ( (binary_expression "DAT_0006f0a0 & 2" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_000161c3;" goto statement_identifier ;)) (labeled_statement "LAB_000164f6:\n      iVar5 = FUN_00017cd0();" statement_identifier : (expression_statement "iVar5 = FUN_00017cd0();" (assignment_expression "iVar5 = FUN_00017cd0()" identifier = (call_expression "FUN_00017cd0()" identifier (argument_list "()" ( )))) ;)) (if_statement "if (iVar5 == 3) {\n        DAT_0006f0a8 = FUN_00019990();\n        iVar5 = -1;\n        pcVar8 = param_2;\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          cVar1 = *pcVar8;\n          pcVar8 = pcVar8 + (uint)bVar17 * -2 + 1;\n        } while (cVar1 != '\0');\n        FUN_0001a1f0();\n      }\n      else {\n        FUN_00044820();\n      }" if (parenthesized_expression "(iVar5 == 3)" ( (binary_expression "iVar5 == 3" identifier == number_literal) )) (compound_statement "{\n        DAT_0006f0a8 = FUN_00019990();\n        iVar5 = -1;\n        pcVar8 = param_2;\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          cVar1 = *pcVar8;\n          pcVar8 = pcVar8 + (uint)bVar17 * -2 + 1;\n        } while (cVar1 != '\0');\n        FUN_0001a1f0();\n      }" { (expression_statement "DAT_0006f0a8 = FUN_00019990();" (assignment_expression "DAT_0006f0a8 = FUN_00019990()" identifier = (call_expression "FUN_00019990()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar5 = -1;" (assignment_expression "iVar5 = -1" identifier = number_literal) ;) (expression_statement "pcVar8 = param_2;" (assignment_expression "pcVar8 = param_2" identifier = identifier) ;) (do_statement "do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          cVar1 = *pcVar8;\n          pcVar8 = pcVar8 + (uint)bVar17 * -2 + 1;\n        } while (cVar1 != '\0');" do (compound_statement "{\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          cVar1 = *pcVar8;\n          pcVar8 = pcVar8 + (uint)bVar17 * -2 + 1;\n        }" { (if_statement "if (iVar5 == 0) break;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) (expression_statement "cVar1 = *pcVar8;" (assignment_expression "cVar1 = *pcVar8" identifier = (pointer_expression "*pcVar8" * identifier)) ;) (expression_statement "pcVar8 = pcVar8 + (uint)bVar17 * -2 + 1;" (assignment_expression "pcVar8 = pcVar8 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pcVar8 + (uint)bVar17 * -2 + 1" (binary_expression "pcVar8 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar1 != '\0')" ( (binary_expression "cVar1 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "FUN_0001a1f0();" (call_expression "FUN_0001a1f0()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n        FUN_00044820();\n      }" else (compound_statement "{\n        FUN_00044820();\n      }" { (expression_statement "FUN_00044820();" (call_expression "FUN_00044820()" identifier (argument_list "()" ( ))) ;) }))) (expression_statement "iVar5 = strcmp((char *)param_1,"-agent");" (assignment_expression "iVar5 = 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 ((iVar5 == 0) || (iVar5 = strcmp((char *)param_1,"-pagent"), iVar5 == 0))\n      goto LAB_00015d3a;" if (parenthesized_expression "((iVar5 == 0) || (iVar5 = strcmp((char *)param_1,"-pagent"), iVar5 == 0))" ( (binary_expression "(iVar5 == 0) || (iVar5 = strcmp((char *)param_1,"-pagent"), iVar5 == 0)" (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar5 = strcmp((char *)param_1,"-pagent"), iVar5 == 0)" ( (comma_expression "iVar5 = strcmp((char *)param_1,"-pagent"), iVar5 == 0" (assignment_expression "iVar5 = 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 ") )))) , (binary_expression "iVar5 == 0" identifier == number_literal)) ))) )) (goto_statement "goto LAB_00015d3a;" goto statement_identifier ;)) (expression_statement "uVar7 = 2;" (assignment_expression "uVar7 = 2" identifier = number_literal) ;) (expression_statement "iVar5 = strcmp((char *)param_1,"-pageant");" (assignment_expression "iVar5 = 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 (iVar5 == 0) goto LAB_0001688c;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001688c;" goto statement_identifier ;)) }) (else_clause "else {\n      iVar5 = strcmp((char *)param_1,"-agent");\n      if (iVar5 == 0) {\nLAB_00015d3a:\n        if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n        goto LAB_000168a1;\n      }\n      uVar7 = 2;\n      iVar5 = strcmp((char *)param_1,"-pagent");\n      if (iVar5 == 0) goto LAB_0001688c;\nLAB_0001685f:\n      iVar5 = strcmp((char *)param_1,"-pageant");\n      if (iVar5 == 0) goto LAB_00016884;\n    }" else (compound_statement "{\n      iVar5 = strcmp((char *)param_1,"-agent");\n      if (iVar5 == 0) {\nLAB_00015d3a:\n        if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n        goto LAB_000168a1;\n      }\n      uVar7 = 2;\n      iVar5 = strcmp((char *)param_1,"-pagent");\n      if (iVar5 == 0) goto LAB_0001688c;\nLAB_0001685f:\n      iVar5 = strcmp((char *)param_1,"-pageant");\n      if (iVar5 == 0) goto LAB_00016884;\n    }" { (expression_statement "iVar5 = strcmp((char *)param_1,"-agent");" (assignment_expression "iVar5 = 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 (iVar5 == 0) {\nLAB_00015d3a:\n        if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n        goto LAB_000168a1;\n      }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_00015d3a:\n        if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n        goto LAB_000168a1;\n      }" { (labeled_statement "LAB_00015d3a:\n        if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;" statement_identifier : (if_statement "if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;" if (parenthesized_expression "((DAT_0006f0a0 & 2) != 0)" ( (binary_expression "(DAT_0006f0a0 & 2) != 0" (parenthesized_expression "(DAT_0006f0a0 & 2)" ( (binary_expression "DAT_0006f0a0 & 2" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00015d50;" goto statement_identifier ;))) (goto_statement "goto LAB_000168a1;" goto statement_identifier ;) })) (expression_statement "uVar7 = 2;" (assignment_expression "uVar7 = 2" identifier = number_literal) ;) (expression_statement "iVar5 = strcmp((char *)param_1,"-pagent");" (assignment_expression "iVar5 = 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 (iVar5 == 0) goto LAB_0001688c;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001688c;" goto statement_identifier ;)) (labeled_statement "LAB_0001685f:\n      iVar5 = strcmp((char *)param_1,"-pageant");" statement_identifier : (expression_statement "iVar5 = strcmp((char *)param_1,"-pageant");" (assignment_expression "iVar5 = 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 (iVar5 == 0) goto LAB_00016884;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00016884;" goto statement_identifier ;)) }))) (expression_statement "iVar5 = strcmp((char *)param_1,"-noagent");" (assignment_expression "iVar5 = 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 ((iVar5 == 0) || (iVar5 = strcmp((char *)param_1,"-nopagent"), iVar5 == 0)) {\nLAB_00016e5e:\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_00016e44:\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\n      goto LAB_000168e1;\n    }" if (parenthesized_expression "((iVar5 == 0) || (iVar5 = strcmp((char *)param_1,"-nopagent"), iVar5 == 0))" ( (binary_expression "(iVar5 == 0) || (iVar5 = strcmp((char *)param_1,"-nopagent"), iVar5 == 0)" (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar5 = strcmp((char *)param_1,"-nopagent"), iVar5 == 0)" ( (comma_expression "iVar5 = strcmp((char *)param_1,"-nopagent"), iVar5 == 0" (assignment_expression "iVar5 = 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 "iVar5 == 0" identifier == number_literal)) ))) )) (compound_statement "{\nLAB_00016e5e:\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_00016e44:\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\n      goto LAB_000168e1;\n    }" { (labeled_statement "LAB_00016e5e:\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_00016e44:\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;" statement_identifier : (if_statement "if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;" if (parenthesized_expression "((DAT_0006f0a0 & 2) != 0)" ( (binary_expression "(DAT_0006f0a0 & 2) != 0" (parenthesized_expression "(DAT_0006f0a0 & 2)" ( (binary_expression "DAT_0006f0a0 & 2" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00015d50;" goto statement_identifier ;))) (if_statement "if (param_3 != 0) goto LAB_00015c78;" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00015c78;" goto statement_identifier ;)) (goto_statement "goto LAB_000168e1;" goto statement_identifier ;) })) (labeled_statement "LAB_000165eb:\n    iVar5 = strcmp((char *)param_1,"-nopageant");" statement_identifier : (expression_statement "iVar5 = strcmp((char *)param_1,"-nopageant");" (assignment_expression "iVar5 = 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 (iVar5 == 0) goto LAB_00016e5e;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00016e5e;" goto statement_identifier ;)) (expression_statement "iVar5 = strcmp((char *)param_1,"-A");" (assignment_expression "iVar5 = 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 (iVar5 != 0) {\n      iVar5 = strcmp((char *)param_1,"-a");\n      if (iVar5 != 0) goto LAB_00016f0f;\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_0001700b;\n    }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar5 = strcmp((char *)param_1,"-a");\n      if (iVar5 != 0) goto LAB_00016f0f;\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_0001700b;\n    }" { (expression_statement "iVar5 = strcmp((char *)param_1,"-a");" (assignment_expression "iVar5 = 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 (iVar5 != 0) goto LAB_00016f0f;" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00016f0f;" 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_0001700b;" 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 ;) })) (if_statement "if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;" if (parenthesized_expression "((DAT_0006f0a0 & 3) != 0)" ( (binary_expression "(DAT_0006f0a0 & 3) != 0" (parenthesized_expression "(DAT_0006f0a0 & 3)" ( (binary_expression "DAT_0006f0a0 & 3" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00015d50;" goto statement_identifier ;)) (if_statement "if (param_3 != 0) goto LAB_00015c78;" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00015c78;" goto statement_identifier ;)) (labeled_statement "LAB_00016921:\n    FUN_000183f0();" statement_identifier : (expression_statement "FUN_000183f0();" (call_expression "FUN_000183f0()" identifier (argument_list "()" ( ))) ;)) (expression_statement "iVar5 = strcmp((char *)param_1,"-a");" (assignment_expression "iVar5 = 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 (iVar5 != 0) {\n      uVar7 = 1;\n      iVar5 = strcmp((char *)param_1,"-X");\n      if (iVar5 == 0) goto LAB_00016f38;\nLAB_00016f97:\n      iVar5 = strcmp((char *)param_1,"-x");\n      if (iVar5 != 0) goto LAB_0001704f;\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_00016fc4:\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\n      goto LAB_000169e4;\n    }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n      uVar7 = 1;\n      iVar5 = strcmp((char *)param_1,"-X");\n      if (iVar5 == 0) goto LAB_00016f38;\nLAB_00016f97:\n      iVar5 = strcmp((char *)param_1,"-x");\n      if (iVar5 != 0) goto LAB_0001704f;\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_00016fc4:\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\n      goto LAB_000169e4;\n    }" { (expression_statement "uVar7 = 1;" (assignment_expression "uVar7 = 1" identifier = number_literal) ;) (expression_statement "iVar5 = strcmp((char *)param_1,"-X");" (assignment_expression "iVar5 = 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 (iVar5 == 0) goto LAB_00016f38;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00016f38;" goto statement_identifier ;)) (labeled_statement "LAB_00016f97:\n      iVar5 = strcmp((char *)param_1,"-x");" statement_identifier : (expression_statement "iVar5 = strcmp((char *)param_1,"-x");" (assignment_expression "iVar5 = 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 (iVar5 != 0) goto LAB_0001704f;" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0001704f;" 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_00016fc4:\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;" statement_identifier : (if_statement "if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;" if (parenthesized_expression "((DAT_0006f0a0 & 3) != 0)" ( (binary_expression "(DAT_0006f0a0 & 3) != 0" (parenthesized_expression "(DAT_0006f0a0 & 3)" ( (binary_expression "DAT_0006f0a0 & 3" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00015d50;" goto statement_identifier ;))) (if_statement "if (param_3 != 0) goto LAB_00015c78;" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00015c78;" goto statement_identifier ;)) (goto_statement "goto LAB_000169e4;" goto statement_identifier ;) })) (if_statement "if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;" if (parenthesized_expression "((DAT_0006f0a0 & 3) != 0)" ( (binary_expression "(DAT_0006f0a0 & 3) != 0" (parenthesized_expression "(DAT_0006f0a0 & 3)" ( (binary_expression "DAT_0006f0a0 & 3" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00015d50;" goto statement_identifier ;)) (labeled_statement "LAB_00016961:\n    FUN_000183f0();" statement_identifier : (expression_statement "FUN_000183f0();" (call_expression "FUN_000183f0()" identifier (argument_list "()" ( ))) ;)) (expression_statement "iVar5 = strcmp((char *)param_1,"-X");" (assignment_expression "iVar5 = 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 (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      goto LAB_000169a1;\n    }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      goto LAB_000169a1;\n    }" { (if_statement "if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;" if (parenthesized_expression "((DAT_0006f0a0 & 3) != 0)" ( (binary_expression "(DAT_0006f0a0 & 3) != 0" (parenthesized_expression "(DAT_0006f0a0 & 3)" ( (binary_expression "DAT_0006f0a0 & 3" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00015d50;" goto statement_identifier ;)) (goto_statement "goto LAB_000169a1;" goto statement_identifier ;) })) (expression_statement "uVar7 = 1;" (assignment_expression "uVar7 = 1" identifier = number_literal) ;) (expression_statement "iVar5 = strcmp((char *)param_1,"-x");" (assignment_expression "iVar5 = 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 (iVar5 == 0) goto LAB_00016fc4;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00016fc4;" goto statement_identifier ;)) (labeled_statement "LAB_0001704f:\n    iVar5 = strcmp((char *)param_1,"-t");" statement_identifier : (expression_statement "iVar5 = strcmp((char *)param_1,"-t");" (assignment_expression "iVar5 = 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 (iVar5 == 0) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_0001707c;\n    }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_0001707c;\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_0001707c;" goto statement_identifier ;) })) (labeled_statement "LAB_000177b1:\n    iVar5 = strcmp((char *)param_1,"-T");" statement_identifier : (expression_statement "iVar5 = strcmp((char *)param_1,"-T");" (assignment_expression "iVar5 = 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 (iVar5 != 0) goto LAB_00017759;" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00017759;" 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_0001770d:\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;" statement_identifier : (if_statement "if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;" if (parenthesized_expression "((DAT_0006f0a0 & 3) != 0)" ( (binary_expression "(DAT_0006f0a0 & 3) != 0" (parenthesized_expression "(DAT_0006f0a0 & 3)" ( (binary_expression "DAT_0006f0a0 & 3" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00015d50;" goto statement_identifier ;))) (if_statement "if (param_3 != 0) goto LAB_00017091;" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00017091;" goto statement_identifier ;)) (labeled_statement "LAB_00016a67:\n    FUN_000183f0();" statement_identifier : (expression_statement "FUN_000183f0();" (call_expression "FUN_000183f0()" identifier (argument_list "()" ( ))) ;)) (expression_statement "iVar5 = strcmp((char *)param_1,"-N");" (assignment_expression "iVar5 = 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 (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\nLAB_00016aa7:\n      FUN_000183f0();\n      iVar5 = strcmp((char *)param_1,"-C");\n      if (iVar5 == 0) {\n        if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n        goto LAB_00016ae7;\n      }\n      uVar7 = 1;\n      iVar5 = strcmp((char *)param_1,"-1");\n      if (iVar5 != 0) goto LAB_00017647;\nLAB_000175ed:\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\n      goto LAB_00016b27;\n    }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\nLAB_00016aa7:\n      FUN_000183f0();\n      iVar5 = strcmp((char *)param_1,"-C");\n      if (iVar5 == 0) {\n        if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n        goto LAB_00016ae7;\n      }\n      uVar7 = 1;\n      iVar5 = strcmp((char *)param_1,"-1");\n      if (iVar5 != 0) goto LAB_00017647;\nLAB_000175ed:\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\n      goto LAB_00016b27;\n    }" { (if_statement "if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;" if (parenthesized_expression "((DAT_0006f0a0 & 3) != 0)" ( (binary_expression "(DAT_0006f0a0 & 3) != 0" (parenthesized_expression "(DAT_0006f0a0 & 3)" ( (binary_expression "DAT_0006f0a0 & 3" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00015d50;" goto statement_identifier ;)) (labeled_statement "LAB_00016aa7:\n      FUN_000183f0();" statement_identifier : (expression_statement "FUN_000183f0();" (call_expression "FUN_000183f0()" identifier (argument_list "()" ( ))) ;)) (expression_statement "iVar5 = strcmp((char *)param_1,"-C");" (assignment_expression "iVar5 = 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 (iVar5 == 0) {\n        if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n        goto LAB_00016ae7;\n      }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n        if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n        goto LAB_00016ae7;\n      }" { (if_statement "if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;" if (parenthesized_expression "((DAT_0006f0a0 & 2) != 0)" ( (binary_expression "(DAT_0006f0a0 & 2) != 0" (parenthesized_expression "(DAT_0006f0a0 & 2)" ( (binary_expression "DAT_0006f0a0 & 2" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00015d50;" goto statement_identifier ;)) (goto_statement "goto LAB_00016ae7;" goto statement_identifier ;) })) (expression_statement "uVar7 = 1;" (assignment_expression "uVar7 = 1" identifier = number_literal) ;) (expression_statement "iVar5 = strcmp((char *)param_1,"-1");" (assignment_expression "iVar5 = 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 (iVar5 != 0) goto LAB_00017647;" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00017647;" goto statement_identifier ;)) (labeled_statement "LAB_000175ed:\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;" statement_identifier : (if_statement "if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;" if (parenthesized_expression "((DAT_0006f0a0 & 2) != 0)" ( (binary_expression "(DAT_0006f0a0 & 2) != 0" (parenthesized_expression "(DAT_0006f0a0 & 2)" ( (binary_expression "DAT_0006f0a0 & 2" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00015d50;" goto statement_identifier ;))) (if_statement "if (param_3 != 0) goto LAB_00015c78;" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00015c78;" goto statement_identifier ;)) (goto_statement "goto LAB_00016b27;" goto statement_identifier ;) })) (expression_statement "uVar7 = 1;" (assignment_expression "uVar7 = 1" identifier = number_literal) ;) (expression_statement "iVar5 = strcmp((char *)param_1,"-C");" (assignment_expression "iVar5 = 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 (iVar5 == 0) goto LAB_0001762d;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001762d;" goto statement_identifier ;)) (labeled_statement "LAB_00017679:\n    iVar5 = strcmp((char *)param_1,"-1");" statement_identifier : (expression_statement "iVar5 = strcmp((char *)param_1,"-1");" (assignment_expression "iVar5 = 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 (iVar5 == 0) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_000175ed;\n    }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_000175ed;\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_000175ed;" goto statement_identifier ;) })) (labeled_statement "LAB_00017647:\n    iVar5 = strcmp((char *)param_1,"-2");" statement_identifier : (expression_statement "iVar5 = strcmp((char *)param_1,"-2");" (assignment_expression "iVar5 = 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 (iVar5 == 0) {\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_000175ad:\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n      if (param_3 != 0) {\nLAB_00015c78:\n        FUN_00015950();\n        return 1;\n      }\nLAB_00016b67:\n      uVar7 = 1;\n      FUN_000183f0();\n    }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_000175ad:\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n      if (param_3 != 0) {\nLAB_00015c78:\n        FUN_00015950();\n        return 1;\n      }\nLAB_00016b67:\n      uVar7 = 1;\n      FUN_000183f0();\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_000175ad:\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;" statement_identifier : (if_statement "if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;" if (parenthesized_expression "((DAT_0006f0a0 & 2) != 0)" ( (binary_expression "(DAT_0006f0a0 & 2) != 0" (parenthesized_expression "(DAT_0006f0a0 & 2)" ( (binary_expression "DAT_0006f0a0 & 2" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00015d50;" goto statement_identifier ;))) (if_statement "if (param_3 != 0) {\nLAB_00015c78:\n        FUN_00015950();\n        return 1;\n      }" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_00015c78:\n        FUN_00015950();\n        return 1;\n      }" { (labeled_statement "LAB_00015c78:\n        FUN_00015950();" statement_identifier : (expression_statement "FUN_00015950();" (call_expression "FUN_00015950()" identifier (argument_list "()" ( ))) ;)) (return_statement "return 1;" return number_literal ;) })) (labeled_statement "LAB_00016b67:\n      uVar7 = 1;" statement_identifier : (expression_statement "uVar7 = 1;" (assignment_expression "uVar7 = 1" identifier = number_literal) ;)) (expression_statement "FUN_000183f0();" (call_expression "FUN_000183f0()" identifier (argument_list "()" ( ))) ;) })) }) (else_clause "else {\n    iVar5 = 9;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)"-loghost";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar13 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar15 = false;\n    bVar12 = (!bVar13 && !bVar12) == bVar13;\n    if (!bVar12) {\n      iVar5 = 9;\n      pbVar9 = param_1;\n      pbVar11 = (byte *)"-hostkey";\n      do {\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        bVar15 = *pbVar9 < *pbVar11;\n        bVar12 = *pbVar9 == *pbVar11;\n        pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n      } while (bVar12);\n      bVar12 = (!bVar15 && !bVar12) == bVar15;\n      if (bVar12) {\n        if (param_2 == (char *)0x0) {\n          return 0xfffffffe;\n        }\n        if (param_3 < 0) {\n          return 2;\n        }\nLAB_00016218:\n        if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n        if (param_3 != 0) goto LAB_00016123;\n        goto LAB_00015f0d;\n      }\n      goto LAB_0001624d;\n    }\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n    if (param_3 != 0) goto LAB_00016123;\nLAB_00015ec5:\n    uVar14 = auStack_2c < (undefined1 *)0x4;\n    uVar16 = &stack0x00000000 == (undefined1 *)0x30;\n    FUN_00018530();\n    iVar5 = 9;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)"-hostkey";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);\n    bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n    if (!bVar12) goto LAB_00016248;\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\nLAB_00015f0d:\n    FUN_00019990();\n    iVar5 = FUN_0001a210();\n    uVar14 = 0;\n    uVar16 = iVar5 == 0;\n    if ((bool)uVar16) {\n      FUN_00044820();\n      FUN_0001a110();\n      return 2;\n    }\n    uVar7 = 2;\n    FUN_000185e0();\n    FUN_0001a110();\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b0ec;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);\n    bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n    if (!bVar12) goto LAB_0001626b;\n    bVar12 = (DAT_0006f0a0 & 3) == 0;\n    if (!bVar12) goto LAB_000161c3;\nLAB_00015f8f:\n    bVar15 = false;\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)0x53a3b;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    if ((!bVar15 && !bVar12) == bVar15) {\n      FUN_00019ef0();\n      FUN_00019990();\n    }\n    else {\n      iVar5 = FUN_00019140();\n      if (iVar5 == 0) {\n        FUN_00044820();\n        return 2;\n      }\n      do {\n        iVar5 = FUN_00019140();\n      } while (iVar5 != 0);\n      FUN_00019ef0();\n      FUN_00019990();\n    }\n    uVar14 = (undefined1 *)0xffffffef < &stack0xffffffc4;\n    uVar16 = &stack0x00000000 == (undefined1 *)0x2c;\n    uVar7 = 2;\n    FUN_000185e0();\n    FUN_0001a110();\n    FUN_0001a110();\n    iVar5 = 4;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b0fd;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);\n    bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n    if (bVar12) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;\n      goto LAB_000162ed;\n    }\nLAB_00016698:\n    bVar15 = false;\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b101;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar12 = (!bVar15 && !bVar12) == bVar15;\n    if (bVar12) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;\n      if (param_3 != 0) goto LAB_00016123;\n      goto LAB_0001639b;\n    }\nLAB_000166e0:\n    bVar15 = false;\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b104;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar12 = (!bVar15 && !bVar12) == bVar15;\n    if (bVar12) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n      if (param_3 != 0) goto LAB_00016723;\n      goto LAB_000164a7;\n    }\nLAB_00016777:\n    bVar15 = false;\n    iVar5 = 4;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b107;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    if ((!bVar15 && !bVar12) == bVar15) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n      if (param_3 != 0) goto LAB_00016723;\n      goto LAB_000164f6;\n    }\n    iVar5 = strcmp((char *)param_1,"-agent");\n    if ((iVar5 != 0) && (iVar5 = strcmp((char *)param_1,"-pagent"), iVar5 != 0)) goto LAB_0001685f;\nLAB_00016884:\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_0001688c:\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n    if (param_3 != 0) goto LAB_00015c78;\nLAB_000168a1:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-noagent");\n    if (iVar5 != 0) {\n      uVar7 = 1;\n      iVar5 = strcmp((char *)param_1,"-nopagent");\n      if (iVar5 != 0) goto LAB_000165eb;\n      goto LAB_00016e44;\n    }\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\nLAB_000168e1:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-A");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      goto LAB_00016921;\n    }\n    uVar7 = 1;\n    iVar5 = strcmp((char *)param_1,"-a");\n    if (iVar5 == 0) {\nLAB_0001700b:\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\n      goto LAB_00016961;\n    }\nLAB_00016f0f:\n    iVar5 = strcmp((char *)param_1,"-X");\n    if (iVar5 != 0) goto LAB_00016f97;\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_00016f38:\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n    if (param_3 != 0) goto LAB_00015c78;\nLAB_000169a1:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-x");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\nLAB_000169e4:\n      FUN_000183f0();\n      iVar5 = strcmp((char *)param_1,"-t");\n      if (iVar5 == 0) {\n        if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n        goto LAB_00016a27;\n      }\n      uVar7 = 1;\n      iVar5 = strcmp((char *)param_1,"-T");\n      if (iVar5 == 0) goto LAB_0001770d;\nLAB_00017759:\n      iVar5 = strcmp((char *)param_1,"-N");\n      if (iVar5 != 0) goto LAB_00017727;\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_000176cd:\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\n      goto LAB_00016aa7;\n    }\n    uVar7 = 1;\n    iVar5 = strcmp((char *)param_1,"-t");\n    if (iVar5 != 0) goto LAB_000177b1;\nLAB_0001707c:\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n    if (param_3 != 0) goto LAB_00017091;\nLAB_00016a27:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-T");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      goto LAB_00016a67;\n    }\n    uVar7 = 1;\n    iVar5 = strcmp((char *)param_1,"-N");\n    if (iVar5 == 0) goto LAB_000176cd;\nLAB_00017727:\n    iVar5 = strcmp((char *)param_1,"-C");\n    if (iVar5 != 0) goto LAB_00017679;\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_0001762d:\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n    if (param_3 != 0) goto LAB_00015c78;\nLAB_00016ae7:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-1");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\nLAB_00016b27:\n      FUN_000183f0();\n      iVar5 = strcmp((char *)param_1,"-2");\n      if (iVar5 == 0) {\n        if ((DAT_0006f0a0 & 2) != 0) {\nLAB_00015d50:\n          FUN_00044820();\n          return 1;\n        }\n        goto LAB_00016b67;\n      }\n    }\n    else {\n      iVar5 = strcmp((char *)param_1,"-2");\n      if (iVar5 == 0) goto LAB_000175ad;\n    }\n    uVar7 = 1;\n  }" else (compound_statement "{\n    iVar5 = 9;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)"-loghost";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar13 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar15 = false;\n    bVar12 = (!bVar13 && !bVar12) == bVar13;\n    if (!bVar12) {\n      iVar5 = 9;\n      pbVar9 = param_1;\n      pbVar11 = (byte *)"-hostkey";\n      do {\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        bVar15 = *pbVar9 < *pbVar11;\n        bVar12 = *pbVar9 == *pbVar11;\n        pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n      } while (bVar12);\n      bVar12 = (!bVar15 && !bVar12) == bVar15;\n      if (bVar12) {\n        if (param_2 == (char *)0x0) {\n          return 0xfffffffe;\n        }\n        if (param_3 < 0) {\n          return 2;\n        }\nLAB_00016218:\n        if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n        if (param_3 != 0) goto LAB_00016123;\n        goto LAB_00015f0d;\n      }\n      goto LAB_0001624d;\n    }\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n    if (param_3 != 0) goto LAB_00016123;\nLAB_00015ec5:\n    uVar14 = auStack_2c < (undefined1 *)0x4;\n    uVar16 = &stack0x00000000 == (undefined1 *)0x30;\n    FUN_00018530();\n    iVar5 = 9;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)"-hostkey";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);\n    bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n    if (!bVar12) goto LAB_00016248;\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\nLAB_00015f0d:\n    FUN_00019990();\n    iVar5 = FUN_0001a210();\n    uVar14 = 0;\n    uVar16 = iVar5 == 0;\n    if ((bool)uVar16) {\n      FUN_00044820();\n      FUN_0001a110();\n      return 2;\n    }\n    uVar7 = 2;\n    FUN_000185e0();\n    FUN_0001a110();\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b0ec;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);\n    bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n    if (!bVar12) goto LAB_0001626b;\n    bVar12 = (DAT_0006f0a0 & 3) == 0;\n    if (!bVar12) goto LAB_000161c3;\nLAB_00015f8f:\n    bVar15 = false;\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)0x53a3b;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    if ((!bVar15 && !bVar12) == bVar15) {\n      FUN_00019ef0();\n      FUN_00019990();\n    }\n    else {\n      iVar5 = FUN_00019140();\n      if (iVar5 == 0) {\n        FUN_00044820();\n        return 2;\n      }\n      do {\n        iVar5 = FUN_00019140();\n      } while (iVar5 != 0);\n      FUN_00019ef0();\n      FUN_00019990();\n    }\n    uVar14 = (undefined1 *)0xffffffef < &stack0xffffffc4;\n    uVar16 = &stack0x00000000 == (undefined1 *)0x2c;\n    uVar7 = 2;\n    FUN_000185e0();\n    FUN_0001a110();\n    FUN_0001a110();\n    iVar5 = 4;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b0fd;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);\n    bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n    if (bVar12) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;\n      goto LAB_000162ed;\n    }\nLAB_00016698:\n    bVar15 = false;\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b101;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar12 = (!bVar15 && !bVar12) == bVar15;\n    if (bVar12) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;\n      if (param_3 != 0) goto LAB_00016123;\n      goto LAB_0001639b;\n    }\nLAB_000166e0:\n    bVar15 = false;\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b104;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar12 = (!bVar15 && !bVar12) == bVar15;\n    if (bVar12) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n      if (param_3 != 0) goto LAB_00016723;\n      goto LAB_000164a7;\n    }\nLAB_00016777:\n    bVar15 = false;\n    iVar5 = 4;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b107;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    if ((!bVar15 && !bVar12) == bVar15) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n      if (param_3 != 0) goto LAB_00016723;\n      goto LAB_000164f6;\n    }\n    iVar5 = strcmp((char *)param_1,"-agent");\n    if ((iVar5 != 0) && (iVar5 = strcmp((char *)param_1,"-pagent"), iVar5 != 0)) goto LAB_0001685f;\nLAB_00016884:\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_0001688c:\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n    if (param_3 != 0) goto LAB_00015c78;\nLAB_000168a1:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-noagent");\n    if (iVar5 != 0) {\n      uVar7 = 1;\n      iVar5 = strcmp((char *)param_1,"-nopagent");\n      if (iVar5 != 0) goto LAB_000165eb;\n      goto LAB_00016e44;\n    }\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\nLAB_000168e1:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-A");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      goto LAB_00016921;\n    }\n    uVar7 = 1;\n    iVar5 = strcmp((char *)param_1,"-a");\n    if (iVar5 == 0) {\nLAB_0001700b:\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\n      goto LAB_00016961;\n    }\nLAB_00016f0f:\n    iVar5 = strcmp((char *)param_1,"-X");\n    if (iVar5 != 0) goto LAB_00016f97;\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_00016f38:\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n    if (param_3 != 0) goto LAB_00015c78;\nLAB_000169a1:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-x");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\nLAB_000169e4:\n      FUN_000183f0();\n      iVar5 = strcmp((char *)param_1,"-t");\n      if (iVar5 == 0) {\n        if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n        goto LAB_00016a27;\n      }\n      uVar7 = 1;\n      iVar5 = strcmp((char *)param_1,"-T");\n      if (iVar5 == 0) goto LAB_0001770d;\nLAB_00017759:\n      iVar5 = strcmp((char *)param_1,"-N");\n      if (iVar5 != 0) goto LAB_00017727;\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_000176cd:\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\n      goto LAB_00016aa7;\n    }\n    uVar7 = 1;\n    iVar5 = strcmp((char *)param_1,"-t");\n    if (iVar5 != 0) goto LAB_000177b1;\nLAB_0001707c:\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n    if (param_3 != 0) goto LAB_00017091;\nLAB_00016a27:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-T");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      goto LAB_00016a67;\n    }\n    uVar7 = 1;\n    iVar5 = strcmp((char *)param_1,"-N");\n    if (iVar5 == 0) goto LAB_000176cd;\nLAB_00017727:\n    iVar5 = strcmp((char *)param_1,"-C");\n    if (iVar5 != 0) goto LAB_00017679;\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_0001762d:\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n    if (param_3 != 0) goto LAB_00015c78;\nLAB_00016ae7:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-1");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\nLAB_00016b27:\n      FUN_000183f0();\n      iVar5 = strcmp((char *)param_1,"-2");\n      if (iVar5 == 0) {\n        if ((DAT_0006f0a0 & 2) != 0) {\nLAB_00015d50:\n          FUN_00044820();\n          return 1;\n        }\n        goto LAB_00016b67;\n      }\n    }\n    else {\n      iVar5 = strcmp((char *)param_1,"-2");\n      if (iVar5 == 0) goto LAB_000175ad;\n    }\n    uVar7 = 1;\n  }" { (expression_statement "iVar5 = 9;" (assignment_expression "iVar5 = 9" identifier = number_literal) ;) (expression_statement "pbVar9 = param_1;" (assignment_expression "pbVar9 = param_1" identifier = identifier) ;) (expression_statement "pbVar11 = (byte *)"-loghost";" (assignment_expression "pbVar11 = (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 (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar13 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);" do (compound_statement "{\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar13 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    }" { (if_statement "if (iVar5 == 0) break;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) (expression_statement "bVar13 = *pbVar9 < *pbVar11;" (assignment_expression "bVar13 = *pbVar9 < *pbVar11" identifier = (binary_expression "*pbVar9 < *pbVar11" (pointer_expression "*pbVar9" * identifier) < (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "bVar12 = *pbVar9 == *pbVar11;" (assignment_expression "bVar12 = *pbVar9 == *pbVar11" identifier = (binary_expression "*pbVar9 == *pbVar11" (pointer_expression "*pbVar9" * identifier) == (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar9 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar11 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" 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      iVar5 = 9;\n      pbVar9 = param_1;\n      pbVar11 = (byte *)"-hostkey";\n      do {\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        bVar15 = *pbVar9 < *pbVar11;\n        bVar12 = *pbVar9 == *pbVar11;\n        pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n      } while (bVar12);\n      bVar12 = (!bVar15 && !bVar12) == bVar15;\n      if (bVar12) {\n        if (param_2 == (char *)0x0) {\n          return 0xfffffffe;\n        }\n        if (param_3 < 0) {\n          return 2;\n        }\nLAB_00016218:\n        if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n        if (param_3 != 0) goto LAB_00016123;\n        goto LAB_00015f0d;\n      }\n      goto LAB_0001624d;\n    }" if (parenthesized_expression "(!bVar12)" ( (unary_expression "!bVar12" ! identifier) )) (compound_statement "{\n      iVar5 = 9;\n      pbVar9 = param_1;\n      pbVar11 = (byte *)"-hostkey";\n      do {\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        bVar15 = *pbVar9 < *pbVar11;\n        bVar12 = *pbVar9 == *pbVar11;\n        pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n      } while (bVar12);\n      bVar12 = (!bVar15 && !bVar12) == bVar15;\n      if (bVar12) {\n        if (param_2 == (char *)0x0) {\n          return 0xfffffffe;\n        }\n        if (param_3 < 0) {\n          return 2;\n        }\nLAB_00016218:\n        if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n        if (param_3 != 0) goto LAB_00016123;\n        goto LAB_00015f0d;\n      }\n      goto LAB_0001624d;\n    }" { (expression_statement "iVar5 = 9;" (assignment_expression "iVar5 = 9" identifier = number_literal) ;) (expression_statement "pbVar9 = param_1;" (assignment_expression "pbVar9 = param_1" identifier = identifier) ;) (expression_statement "pbVar11 = (byte *)"-hostkey";" (assignment_expression "pbVar11 = (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 (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        bVar15 = *pbVar9 < *pbVar11;\n        bVar12 = *pbVar9 == *pbVar11;\n        pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n      } while (bVar12);" do (compound_statement "{\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        bVar15 = *pbVar9 < *pbVar11;\n        bVar12 = *pbVar9 == *pbVar11;\n        pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n      }" { (if_statement "if (iVar5 == 0) break;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) (expression_statement "bVar15 = *pbVar9 < *pbVar11;" (assignment_expression "bVar15 = *pbVar9 < *pbVar11" identifier = (binary_expression "*pbVar9 < *pbVar11" (pointer_expression "*pbVar9" * identifier) < (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "bVar12 = *pbVar9 == *pbVar11;" (assignment_expression "bVar12 = *pbVar9 == *pbVar11" identifier = (binary_expression "*pbVar9 == *pbVar11" (pointer_expression "*pbVar9" * identifier) == (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar9 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar11 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" 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 (param_2 == (char *)0x0) {\n          return 0xfffffffe;\n        }\n        if (param_3 < 0) {\n          return 2;\n        }\nLAB_00016218:\n        if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n        if (param_3 != 0) goto LAB_00016123;\n        goto LAB_00015f0d;\n      }" if (parenthesized_expression "(bVar12)" ( identifier )) (compound_statement "{\n        if (param_2 == (char *)0x0) {\n          return 0xfffffffe;\n        }\n        if (param_3 < 0) {\n          return 2;\n        }\nLAB_00016218:\n        if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n        if (param_3 != 0) goto LAB_00016123;\n        goto LAB_00015f0d;\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 ;) })) (labeled_statement "LAB_00016218:\n        if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;" statement_identifier : (if_statement "if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;" if (parenthesized_expression "((DAT_0006f0a0 & 2) != 0)" ( (binary_expression "(DAT_0006f0a0 & 2) != 0" (parenthesized_expression "(DAT_0006f0a0 & 2)" ( (binary_expression "DAT_0006f0a0 & 2" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_000161c3;" goto statement_identifier ;))) (if_statement "if (param_3 != 0) goto LAB_00016123;" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00016123;" goto statement_identifier ;)) (goto_statement "goto LAB_00015f0d;" goto statement_identifier ;) })) (goto_statement "goto LAB_0001624d;" 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 ;) })) (if_statement "if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;" if (parenthesized_expression "((DAT_0006f0a0 & 2) != 0)" ( (binary_expression "(DAT_0006f0a0 & 2) != 0" (parenthesized_expression "(DAT_0006f0a0 & 2)" ( (binary_expression "DAT_0006f0a0 & 2" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_000161c3;" goto statement_identifier ;)) (if_statement "if (param_3 != 0) goto LAB_00016123;" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00016123;" goto statement_identifier ;)) (labeled_statement "LAB_00015ec5:\n    uVar14 = auStack_2c < (undefined1 *)0x4;" statement_identifier : (expression_statement "uVar14 = auStack_2c < (undefined1 *)0x4;" (assignment_expression "uVar14 = auStack_2c < (undefined1 *)0x4" identifier = (binary_expression "auStack_2c < (undefined1 *)0x4" identifier < (cast_expression "(undefined1 *)0x4" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;)) (expression_statement "uVar16 = &stack0x00000000 == (undefined1 *)0x30;" (assignment_expression "uVar16 = &stack0x00000000 == (undefined1 *)0x30" identifier = (binary_expression "&stack0x00000000 == (undefined1 *)0x30" (pointer_expression "&stack0x00000000" & identifier) == (cast_expression "(undefined1 *)0x30" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "FUN_00018530();" (call_expression "FUN_00018530()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar5 = 9;" (assignment_expression "iVar5 = 9" identifier = number_literal) ;) (expression_statement "pbVar9 = param_1;" (assignment_expression "pbVar9 = param_1" identifier = identifier) ;) (expression_statement "pbVar11 = (byte *)"-hostkey";" (assignment_expression "pbVar11 = (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 (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);" do (compound_statement "{\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    }" { (if_statement "if (iVar5 == 0) break;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) (expression_statement "uVar14 = *pbVar9 < *pbVar11;" (assignment_expression "uVar14 = *pbVar9 < *pbVar11" identifier = (binary_expression "*pbVar9 < *pbVar11" (pointer_expression "*pbVar9" * identifier) < (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "uVar16 = *pbVar9 == *pbVar11;" (assignment_expression "uVar16 = *pbVar9 == *pbVar11" identifier = (binary_expression "*pbVar9 == *pbVar11" (pointer_expression "*pbVar9" * identifier) == (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar9 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar11 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" 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 = (!(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_00016248;" if (parenthesized_expression "(!bVar12)" ( (unary_expression "!bVar12" ! identifier) )) (goto_statement "goto LAB_00016248;" goto statement_identifier ;)) (if_statement "if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;" if (parenthesized_expression "((DAT_0006f0a0 & 2) != 0)" ( (binary_expression "(DAT_0006f0a0 & 2) != 0" (parenthesized_expression "(DAT_0006f0a0 & 2)" ( (binary_expression "DAT_0006f0a0 & 2" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_000161c3;" goto statement_identifier ;)) (labeled_statement "LAB_00015f0d:\n    FUN_00019990();" statement_identifier : (expression_statement "FUN_00019990();" (call_expression "FUN_00019990()" identifier (argument_list "()" ( ))) ;)) (expression_statement "iVar5 = FUN_0001a210();" (assignment_expression "iVar5 = FUN_0001a210()" identifier = (call_expression "FUN_0001a210()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) (expression_statement "uVar16 = iVar5 == 0;" (assignment_expression "uVar16 = iVar5 == 0" identifier = (binary_expression "iVar5 == 0" identifier == number_literal)) ;) (if_statement "if ((bool)uVar16) {\n      FUN_00044820();\n      FUN_0001a110();\n      return 2;\n    }" if (parenthesized_expression "((bool)uVar16)" ( (cast_expression "(bool)uVar16" ( (type_descriptor "bool" primitive_type) ) identifier) )) (compound_statement "{\n      FUN_00044820();\n      FUN_0001a110();\n      return 2;\n    }" { (expression_statement "FUN_00044820();" (call_expression "FUN_00044820()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_0001a110();" (call_expression "FUN_0001a110()" identifier (argument_list "()" ( ))) ;) (return_statement "return 2;" return number_literal ;) })) (expression_statement "uVar7 = 2;" (assignment_expression "uVar7 = 2" identifier = number_literal) ;) (expression_statement "FUN_000185e0();" (call_expression "FUN_000185e0()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_0001a110();" (call_expression "FUN_0001a110()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar5 = 3;" (assignment_expression "iVar5 = 3" identifier = number_literal) ;) (expression_statement "pbVar9 = param_1;" (assignment_expression "pbVar9 = param_1" identifier = identifier) ;) (expression_statement "pbVar11 = &DAT_0004b0ec;" (assignment_expression "pbVar11 = &DAT_0004b0ec" identifier = (pointer_expression "&DAT_0004b0ec" & identifier)) ;) (do_statement "do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);" do (compound_statement "{\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    }" { (if_statement "if (iVar5 == 0) break;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) (expression_statement "uVar14 = *pbVar9 < *pbVar11;" (assignment_expression "uVar14 = *pbVar9 < *pbVar11" identifier = (binary_expression "*pbVar9 < *pbVar11" (pointer_expression "*pbVar9" * identifier) < (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "uVar16 = *pbVar9 == *pbVar11;" (assignment_expression "uVar16 = *pbVar9 == *pbVar11" identifier = (binary_expression "*pbVar9 == *pbVar11" (pointer_expression "*pbVar9" * identifier) == (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar9 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar11 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" 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 = (!(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_0001626b;" if (parenthesized_expression "(!bVar12)" ( (unary_expression "!bVar12" ! identifier) )) (goto_statement "goto LAB_0001626b;" goto statement_identifier ;)) (expression_statement "bVar12 = (DAT_0006f0a0 & 3) == 0;" (assignment_expression "bVar12 = (DAT_0006f0a0 & 3) == 0" identifier = (binary_expression "(DAT_0006f0a0 & 3) == 0" (parenthesized_expression "(DAT_0006f0a0 & 3)" ( (binary_expression "DAT_0006f0a0 & 3" identifier & number_literal) )) == number_literal)) ;) (if_statement "if (!bVar12) goto LAB_000161c3;" if (parenthesized_expression "(!bVar12)" ( (unary_expression "!bVar12" ! identifier) )) (goto_statement "goto LAB_000161c3;" goto statement_identifier ;)) (labeled_statement "LAB_00015f8f:\n    bVar15 = false;" statement_identifier : (expression_statement "bVar15 = false;" (assignment_expression "bVar15 = false" identifier = false) ;)) (expression_statement "iVar5 = 3;" (assignment_expression "iVar5 = 3" identifier = number_literal) ;) (expression_statement "pbVar9 = param_1;" (assignment_expression "pbVar9 = param_1" identifier = identifier) ;) (expression_statement "pbVar11 = (byte *)0x53a3b;" (assignment_expression "pbVar11 = (byte *)0x53a3b" identifier = (cast_expression "(byte *)0x53a3b" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);" do (compound_statement "{\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    }" { (if_statement "if (iVar5 == 0) break;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) (expression_statement "bVar15 = *pbVar9 < *pbVar11;" (assignment_expression "bVar15 = *pbVar9 < *pbVar11" identifier = (binary_expression "*pbVar9 < *pbVar11" (pointer_expression "*pbVar9" * identifier) < (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "bVar12 = *pbVar9 == *pbVar11;" (assignment_expression "bVar12 = *pbVar9 == *pbVar11" identifier = (binary_expression "*pbVar9 == *pbVar11" (pointer_expression "*pbVar9" * identifier) == (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar9 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar11 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar12)" ( identifier )) ;) (if_statement "if ((!bVar15 && !bVar12) == bVar15) {\n      FUN_00019ef0();\n      FUN_00019990();\n    }\n    else {\n      iVar5 = FUN_00019140();\n      if (iVar5 == 0) {\n        FUN_00044820();\n        return 2;\n      }\n      do {\n        iVar5 = FUN_00019140();\n      } while (iVar5 != 0);\n      FUN_00019ef0();\n      FUN_00019990();\n    }" 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) )) (compound_statement "{\n      FUN_00019ef0();\n      FUN_00019990();\n    }" { (expression_statement "FUN_00019ef0();" (call_expression "FUN_00019ef0()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00019990();" (call_expression "FUN_00019990()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n      iVar5 = FUN_00019140();\n      if (iVar5 == 0) {\n        FUN_00044820();\n        return 2;\n      }\n      do {\n        iVar5 = FUN_00019140();\n      } while (iVar5 != 0);\n      FUN_00019ef0();\n      FUN_00019990();\n    }" else (compound_statement "{\n      iVar5 = FUN_00019140();\n      if (iVar5 == 0) {\n        FUN_00044820();\n        return 2;\n      }\n      do {\n        iVar5 = FUN_00019140();\n      } while (iVar5 != 0);\n      FUN_00019ef0();\n      FUN_00019990();\n    }" { (expression_statement "iVar5 = FUN_00019140();" (assignment_expression "iVar5 = FUN_00019140()" identifier = (call_expression "FUN_00019140()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar5 == 0) {\n        FUN_00044820();\n        return 2;\n      }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n        FUN_00044820();\n        return 2;\n      }" { (expression_statement "FUN_00044820();" (call_expression "FUN_00044820()" identifier (argument_list "()" ( ))) ;) (return_statement "return 2;" return number_literal ;) })) (do_statement "do {\n        iVar5 = FUN_00019140();\n      } while (iVar5 != 0);" do (compound_statement "{\n        iVar5 = FUN_00019140();\n      }" { (expression_statement "iVar5 = FUN_00019140();" (assignment_expression "iVar5 = FUN_00019140()" identifier = (call_expression "FUN_00019140()" identifier (argument_list "()" ( )))) ;) }) while (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) ;) (expression_statement "FUN_00019ef0();" (call_expression "FUN_00019ef0()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00019990();" (call_expression "FUN_00019990()" identifier (argument_list "()" ( ))) ;) }))) (expression_statement "uVar14 = (undefined1 *)0xffffffef < &stack0xffffffc4;" (assignment_expression "uVar14 = (undefined1 *)0xffffffef < &stack0xffffffc4" identifier = (binary_expression "(undefined1 *)0xffffffef < &stack0xffffffc4" (cast_expression "(undefined1 *)0xffffffef" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < (pointer_expression "&stack0xffffffc4" & identifier))) ;) (expression_statement "uVar16 = &stack0x00000000 == (undefined1 *)0x2c;" (assignment_expression "uVar16 = &stack0x00000000 == (undefined1 *)0x2c" identifier = (binary_expression "&stack0x00000000 == (undefined1 *)0x2c" (pointer_expression "&stack0x00000000" & identifier) == (cast_expression "(undefined1 *)0x2c" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "uVar7 = 2;" (assignment_expression "uVar7 = 2" identifier = number_literal) ;) (expression_statement "FUN_000185e0();" (call_expression "FUN_000185e0()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_0001a110();" (call_expression "FUN_0001a110()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_0001a110();" (call_expression "FUN_0001a110()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar5 = 4;" (assignment_expression "iVar5 = 4" identifier = number_literal) ;) (expression_statement "pbVar9 = param_1;" (assignment_expression "pbVar9 = param_1" identifier = identifier) ;) (expression_statement "pbVar11 = &DAT_0004b0fd;" (assignment_expression "pbVar11 = &DAT_0004b0fd" identifier = (pointer_expression "&DAT_0004b0fd" & identifier)) ;) (do_statement "do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);" do (compound_statement "{\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    }" { (if_statement "if (iVar5 == 0) break;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) (expression_statement "uVar14 = *pbVar9 < *pbVar11;" (assignment_expression "uVar14 = *pbVar9 < *pbVar11" identifier = (binary_expression "*pbVar9 < *pbVar11" (pointer_expression "*pbVar9" * identifier) < (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "uVar16 = *pbVar9 == *pbVar11;" (assignment_expression "uVar16 = *pbVar9 == *pbVar11" identifier = (binary_expression "*pbVar9 == *pbVar11" (pointer_expression "*pbVar9" * identifier) == (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar9 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar11 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" 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 = (!(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      if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;\n      goto LAB_000162ed;\n    }" if (parenthesized_expression "(bVar12)" ( identifier )) (compound_statement "{\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;\n      goto LAB_000162ed;\n    }" { (if_statement "if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;" if (parenthesized_expression "((DAT_0006f0a0 & 3) != 0)" ( (binary_expression "(DAT_0006f0a0 & 3) != 0" (parenthesized_expression "(DAT_0006f0a0 & 3)" ( (binary_expression "DAT_0006f0a0 & 3" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_000161c3;" goto statement_identifier ;)) (goto_statement "goto LAB_000162ed;" goto statement_identifier ;) })) (labeled_statement "LAB_00016698:\n    bVar15 = false;" statement_identifier : (expression_statement "bVar15 = false;" (assignment_expression "bVar15 = false" identifier = false) ;)) (expression_statement "iVar5 = 3;" (assignment_expression "iVar5 = 3" identifier = number_literal) ;) (expression_statement "pbVar9 = param_1;" (assignment_expression "pbVar9 = param_1" identifier = identifier) ;) (expression_statement "pbVar11 = &DAT_0004b101;" (assignment_expression "pbVar11 = &DAT_0004b101" identifier = (pointer_expression "&DAT_0004b101" & identifier)) ;) (do_statement "do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);" do (compound_statement "{\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    }" { (if_statement "if (iVar5 == 0) break;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) (expression_statement "bVar15 = *pbVar9 < *pbVar11;" (assignment_expression "bVar15 = *pbVar9 < *pbVar11" identifier = (binary_expression "*pbVar9 < *pbVar11" (pointer_expression "*pbVar9" * identifier) < (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "bVar12 = *pbVar9 == *pbVar11;" (assignment_expression "bVar12 = *pbVar9 == *pbVar11" identifier = (binary_expression "*pbVar9 == *pbVar11" (pointer_expression "*pbVar9" * identifier) == (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar9 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar11 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" 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 (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;\n      if (param_3 != 0) goto LAB_00016123;\n      goto LAB_0001639b;\n    }" if (parenthesized_expression "(bVar12)" ( identifier )) (compound_statement "{\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;\n      if (param_3 != 0) goto LAB_00016123;\n      goto LAB_0001639b;\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 ;) })) (if_statement "if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;" if (parenthesized_expression "((DAT_0006f0a0 & 3) != 0)" ( (binary_expression "(DAT_0006f0a0 & 3) != 0" (parenthesized_expression "(DAT_0006f0a0 & 3)" ( (binary_expression "DAT_0006f0a0 & 3" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_000161c3;" goto statement_identifier ;)) (if_statement "if (param_3 != 0) goto LAB_00016123;" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00016123;" goto statement_identifier ;)) (goto_statement "goto LAB_0001639b;" goto statement_identifier ;) })) (labeled_statement "LAB_000166e0:\n    bVar15 = false;" statement_identifier : (expression_statement "bVar15 = false;" (assignment_expression "bVar15 = false" identifier = false) ;)) (expression_statement "iVar5 = 3;" (assignment_expression "iVar5 = 3" identifier = number_literal) ;) (expression_statement "pbVar9 = param_1;" (assignment_expression "pbVar9 = param_1" identifier = identifier) ;) (expression_statement "pbVar11 = &DAT_0004b104;" (assignment_expression "pbVar11 = &DAT_0004b104" identifier = (pointer_expression "&DAT_0004b104" & identifier)) ;) (do_statement "do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);" do (compound_statement "{\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    }" { (if_statement "if (iVar5 == 0) break;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) (expression_statement "bVar15 = *pbVar9 < *pbVar11;" (assignment_expression "bVar15 = *pbVar9 < *pbVar11" identifier = (binary_expression "*pbVar9 < *pbVar11" (pointer_expression "*pbVar9" * identifier) < (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "bVar12 = *pbVar9 == *pbVar11;" (assignment_expression "bVar12 = *pbVar9 == *pbVar11" identifier = (binary_expression "*pbVar9 == *pbVar11" (pointer_expression "*pbVar9" * identifier) == (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar9 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar11 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" 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 (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n      if (param_3 != 0) goto LAB_00016723;\n      goto LAB_000164a7;\n    }" if (parenthesized_expression "(bVar12)" ( identifier )) (compound_statement "{\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n      if (param_3 != 0) goto LAB_00016723;\n      goto LAB_000164a7;\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 ;) })) (if_statement "if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;" if (parenthesized_expression "((DAT_0006f0a0 & 2) != 0)" ( (binary_expression "(DAT_0006f0a0 & 2) != 0" (parenthesized_expression "(DAT_0006f0a0 & 2)" ( (binary_expression "DAT_0006f0a0 & 2" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_000161c3;" goto statement_identifier ;)) (if_statement "if (param_3 != 0) goto LAB_00016723;" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00016723;" goto statement_identifier ;)) (goto_statement "goto LAB_000164a7;" goto statement_identifier ;) })) (labeled_statement "LAB_00016777:\n    bVar15 = false;" statement_identifier : (expression_statement "bVar15 = false;" (assignment_expression "bVar15 = false" identifier = false) ;)) (expression_statement "iVar5 = 4;" (assignment_expression "iVar5 = 4" identifier = number_literal) ;) (expression_statement "pbVar9 = param_1;" (assignment_expression "pbVar9 = param_1" identifier = identifier) ;) (expression_statement "pbVar11 = &DAT_0004b107;" (assignment_expression "pbVar11 = &DAT_0004b107" identifier = (pointer_expression "&DAT_0004b107" & identifier)) ;) (do_statement "do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);" do (compound_statement "{\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    }" { (if_statement "if (iVar5 == 0) break;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) (expression_statement "bVar15 = *pbVar9 < *pbVar11;" (assignment_expression "bVar15 = *pbVar9 < *pbVar11" identifier = (binary_expression "*pbVar9 < *pbVar11" (pointer_expression "*pbVar9" * identifier) < (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "bVar12 = *pbVar9 == *pbVar11;" (assignment_expression "bVar12 = *pbVar9 == *pbVar11" identifier = (binary_expression "*pbVar9 == *pbVar11" (pointer_expression "*pbVar9" * identifier) == (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar9 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar11 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar12)" ( identifier )) ;) (if_statement "if ((!bVar15 && !bVar12) == bVar15) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n      if (param_3 != 0) goto LAB_00016723;\n      goto LAB_000164f6;\n    }" 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) )) (compound_statement "{\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n      if (param_3 != 0) goto LAB_00016723;\n      goto LAB_000164f6;\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 ;) })) (if_statement "if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;" if (parenthesized_expression "((DAT_0006f0a0 & 2) != 0)" ( (binary_expression "(DAT_0006f0a0 & 2) != 0" (parenthesized_expression "(DAT_0006f0a0 & 2)" ( (binary_expression "DAT_0006f0a0 & 2" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_000161c3;" goto statement_identifier ;)) (if_statement "if (param_3 != 0) goto LAB_00016723;" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00016723;" goto statement_identifier ;)) (goto_statement "goto LAB_000164f6;" goto statement_identifier ;) })) (expression_statement "iVar5 = strcmp((char *)param_1,"-agent");" (assignment_expression "iVar5 = 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 ((iVar5 != 0) && (iVar5 = strcmp((char *)param_1,"-pagent"), iVar5 != 0)) goto LAB_0001685f;" if (parenthesized_expression "((iVar5 != 0) && (iVar5 = strcmp((char *)param_1,"-pagent"), iVar5 != 0))" ( (binary_expression "(iVar5 != 0) && (iVar5 = strcmp((char *)param_1,"-pagent"), iVar5 != 0)" (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar5 = strcmp((char *)param_1,"-pagent"), iVar5 != 0)" ( (comma_expression "iVar5 = strcmp((char *)param_1,"-pagent"), iVar5 != 0" (assignment_expression "iVar5 = 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 ") )))) , (binary_expression "iVar5 != 0" identifier != number_literal)) ))) )) (goto_statement "goto LAB_0001685f;" goto statement_identifier ;)) (labeled_statement "LAB_00016884:\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_0001688c:\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;" statement_identifier : (if_statement "if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;" if (parenthesized_expression "((DAT_0006f0a0 & 2) != 0)" ( (binary_expression "(DAT_0006f0a0 & 2) != 0" (parenthesized_expression "(DAT_0006f0a0 & 2)" ( (binary_expression "DAT_0006f0a0 & 2" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00015d50;" goto statement_identifier ;))) (if_statement "if (param_3 != 0) goto LAB_00015c78;" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00015c78;" goto statement_identifier ;)) (labeled_statement "LAB_000168a1:\n    FUN_000183f0();" statement_identifier : (expression_statement "FUN_000183f0();" (call_expression "FUN_000183f0()" identifier (argument_list "()" ( ))) ;)) (expression_statement "iVar5 = strcmp((char *)param_1,"-noagent");" (assignment_expression "iVar5 = 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 (iVar5 != 0) {\n      uVar7 = 1;\n      iVar5 = strcmp((char *)param_1,"-nopagent");\n      if (iVar5 != 0) goto LAB_000165eb;\n      goto LAB_00016e44;\n    }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n      uVar7 = 1;\n      iVar5 = strcmp((char *)param_1,"-nopagent");\n      if (iVar5 != 0) goto LAB_000165eb;\n      goto LAB_00016e44;\n    }" { (expression_statement "uVar7 = 1;" (assignment_expression "uVar7 = 1" identifier = number_literal) ;) (expression_statement "iVar5 = strcmp((char *)param_1,"-nopagent");" (assignment_expression "iVar5 = 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 ") )))) ;) (if_statement "if (iVar5 != 0) goto LAB_000165eb;" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000165eb;" goto statement_identifier ;)) (goto_statement "goto LAB_00016e44;" goto statement_identifier ;) })) (if_statement "if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;" if (parenthesized_expression "((DAT_0006f0a0 & 2) != 0)" ( (binary_expression "(DAT_0006f0a0 & 2) != 0" (parenthesized_expression "(DAT_0006f0a0 & 2)" ( (binary_expression "DAT_0006f0a0 & 2" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00015d50;" goto statement_identifier ;)) (labeled_statement "LAB_000168e1:\n    FUN_000183f0();" statement_identifier : (expression_statement "FUN_000183f0();" (call_expression "FUN_000183f0()" identifier (argument_list "()" ( ))) ;)) (expression_statement "iVar5 = strcmp((char *)param_1,"-A");" (assignment_expression "iVar5 = 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 (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      goto LAB_00016921;\n    }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      goto LAB_00016921;\n    }" { (if_statement "if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;" if (parenthesized_expression "((DAT_0006f0a0 & 3) != 0)" ( (binary_expression "(DAT_0006f0a0 & 3) != 0" (parenthesized_expression "(DAT_0006f0a0 & 3)" ( (binary_expression "DAT_0006f0a0 & 3" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00015d50;" goto statement_identifier ;)) (goto_statement "goto LAB_00016921;" goto statement_identifier ;) })) (expression_statement "uVar7 = 1;" (assignment_expression "uVar7 = 1" identifier = number_literal) ;) (expression_statement "iVar5 = strcmp((char *)param_1,"-a");" (assignment_expression "iVar5 = 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 (iVar5 == 0) {\nLAB_0001700b:\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\n      goto LAB_00016961;\n    }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0001700b:\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\n      goto LAB_00016961;\n    }" { (labeled_statement "LAB_0001700b:\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;" statement_identifier : (if_statement "if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;" if (parenthesized_expression "((DAT_0006f0a0 & 3) != 0)" ( (binary_expression "(DAT_0006f0a0 & 3) != 0" (parenthesized_expression "(DAT_0006f0a0 & 3)" ( (binary_expression "DAT_0006f0a0 & 3" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00015d50;" goto statement_identifier ;))) (if_statement "if (param_3 != 0) goto LAB_00015c78;" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00015c78;" goto statement_identifier ;)) (goto_statement "goto LAB_00016961;" goto statement_identifier ;) })) (labeled_statement "LAB_00016f0f:\n    iVar5 = strcmp((char *)param_1,"-X");" statement_identifier : (expression_statement "iVar5 = strcmp((char *)param_1,"-X");" (assignment_expression "iVar5 = 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 (iVar5 != 0) goto LAB_00016f97;" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00016f97;" 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_00016f38:\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;" statement_identifier : (if_statement "if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;" if (parenthesized_expression "((DAT_0006f0a0 & 3) != 0)" ( (binary_expression "(DAT_0006f0a0 & 3) != 0" (parenthesized_expression "(DAT_0006f0a0 & 3)" ( (binary_expression "DAT_0006f0a0 & 3" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00015d50;" goto statement_identifier ;))) (if_statement "if (param_3 != 0) goto LAB_00015c78;" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00015c78;" goto statement_identifier ;)) (labeled_statement "LAB_000169a1:\n    FUN_000183f0();" statement_identifier : (expression_statement "FUN_000183f0();" (call_expression "FUN_000183f0()" identifier (argument_list "()" ( ))) ;)) (expression_statement "iVar5 = strcmp((char *)param_1,"-x");" (assignment_expression "iVar5 = 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 (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\nLAB_000169e4:\n      FUN_000183f0();\n      iVar5 = strcmp((char *)param_1,"-t");\n      if (iVar5 == 0) {\n        if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n        goto LAB_00016a27;\n      }\n      uVar7 = 1;\n      iVar5 = strcmp((char *)param_1,"-T");\n      if (iVar5 == 0) goto LAB_0001770d;\nLAB_00017759:\n      iVar5 = strcmp((char *)param_1,"-N");\n      if (iVar5 != 0) goto LAB_00017727;\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_000176cd:\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\n      goto LAB_00016aa7;\n    }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\nLAB_000169e4:\n      FUN_000183f0();\n      iVar5 = strcmp((char *)param_1,"-t");\n      if (iVar5 == 0) {\n        if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n        goto LAB_00016a27;\n      }\n      uVar7 = 1;\n      iVar5 = strcmp((char *)param_1,"-T");\n      if (iVar5 == 0) goto LAB_0001770d;\nLAB_00017759:\n      iVar5 = strcmp((char *)param_1,"-N");\n      if (iVar5 != 0) goto LAB_00017727;\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_000176cd:\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\n      goto LAB_00016aa7;\n    }" { (if_statement "if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;" if (parenthesized_expression "((DAT_0006f0a0 & 3) != 0)" ( (binary_expression "(DAT_0006f0a0 & 3) != 0" (parenthesized_expression "(DAT_0006f0a0 & 3)" ( (binary_expression "DAT_0006f0a0 & 3" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00015d50;" goto statement_identifier ;)) (labeled_statement "LAB_000169e4:\n      FUN_000183f0();" statement_identifier : (expression_statement "FUN_000183f0();" (call_expression "FUN_000183f0()" identifier (argument_list "()" ( ))) ;)) (expression_statement "iVar5 = strcmp((char *)param_1,"-t");" (assignment_expression "iVar5 = 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 (iVar5 == 0) {\n        if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n        goto LAB_00016a27;\n      }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n        if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n        goto LAB_00016a27;\n      }" { (if_statement "if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;" if (parenthesized_expression "((DAT_0006f0a0 & 3) != 0)" ( (binary_expression "(DAT_0006f0a0 & 3) != 0" (parenthesized_expression "(DAT_0006f0a0 & 3)" ( (binary_expression "DAT_0006f0a0 & 3" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00015d50;" goto statement_identifier ;)) (goto_statement "goto LAB_00016a27;" goto statement_identifier ;) })) (expression_statement "uVar7 = 1;" (assignment_expression "uVar7 = 1" identifier = number_literal) ;) (expression_statement "iVar5 = strcmp((char *)param_1,"-T");" (assignment_expression "iVar5 = 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 (iVar5 == 0) goto LAB_0001770d;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001770d;" goto statement_identifier ;)) (labeled_statement "LAB_00017759:\n      iVar5 = strcmp((char *)param_1,"-N");" statement_identifier : (expression_statement "iVar5 = strcmp((char *)param_1,"-N");" (assignment_expression "iVar5 = 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 (iVar5 != 0) goto LAB_00017727;" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00017727;" 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_000176cd:\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;" statement_identifier : (if_statement "if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;" if (parenthesized_expression "((DAT_0006f0a0 & 3) != 0)" ( (binary_expression "(DAT_0006f0a0 & 3) != 0" (parenthesized_expression "(DAT_0006f0a0 & 3)" ( (binary_expression "DAT_0006f0a0 & 3" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00015d50;" goto statement_identifier ;))) (if_statement "if (param_3 != 0) goto LAB_00015c78;" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00015c78;" goto statement_identifier ;)) (goto_statement "goto LAB_00016aa7;" goto statement_identifier ;) })) (expression_statement "uVar7 = 1;" (assignment_expression "uVar7 = 1" identifier = number_literal) ;) (expression_statement "iVar5 = strcmp((char *)param_1,"-t");" (assignment_expression "iVar5 = 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 (iVar5 != 0) goto LAB_000177b1;" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000177b1;" goto statement_identifier ;)) (labeled_statement "LAB_0001707c:\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;" statement_identifier : (if_statement "if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;" if (parenthesized_expression "((DAT_0006f0a0 & 3) != 0)" ( (binary_expression "(DAT_0006f0a0 & 3) != 0" (parenthesized_expression "(DAT_0006f0a0 & 3)" ( (binary_expression "DAT_0006f0a0 & 3" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00015d50;" goto statement_identifier ;))) (if_statement "if (param_3 != 0) goto LAB_00017091;" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00017091;" goto statement_identifier ;)) (labeled_statement "LAB_00016a27:\n    FUN_000183f0();" statement_identifier : (expression_statement "FUN_000183f0();" (call_expression "FUN_000183f0()" identifier (argument_list "()" ( ))) ;)) (expression_statement "iVar5 = strcmp((char *)param_1,"-T");" (assignment_expression "iVar5 = 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 (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      goto LAB_00016a67;\n    }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      goto LAB_00016a67;\n    }" { (if_statement "if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;" if (parenthesized_expression "((DAT_0006f0a0 & 3) != 0)" ( (binary_expression "(DAT_0006f0a0 & 3) != 0" (parenthesized_expression "(DAT_0006f0a0 & 3)" ( (binary_expression "DAT_0006f0a0 & 3" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00015d50;" goto statement_identifier ;)) (goto_statement "goto LAB_00016a67;" goto statement_identifier ;) })) (expression_statement "uVar7 = 1;" (assignment_expression "uVar7 = 1" identifier = number_literal) ;) (expression_statement "iVar5 = strcmp((char *)param_1,"-N");" (assignment_expression "iVar5 = 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 (iVar5 == 0) goto LAB_000176cd;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000176cd;" goto statement_identifier ;)) (labeled_statement "LAB_00017727:\n    iVar5 = strcmp((char *)param_1,"-C");" statement_identifier : (expression_statement "iVar5 = strcmp((char *)param_1,"-C");" (assignment_expression "iVar5 = 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 (iVar5 != 0) goto LAB_00017679;" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00017679;" 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_0001762d:\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;" statement_identifier : (if_statement "if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;" if (parenthesized_expression "((DAT_0006f0a0 & 2) != 0)" ( (binary_expression "(DAT_0006f0a0 & 2) != 0" (parenthesized_expression "(DAT_0006f0a0 & 2)" ( (binary_expression "DAT_0006f0a0 & 2" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00015d50;" goto statement_identifier ;))) (if_statement "if (param_3 != 0) goto LAB_00015c78;" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00015c78;" goto statement_identifier ;)) (labeled_statement "LAB_00016ae7:\n    FUN_000183f0();" statement_identifier : (expression_statement "FUN_000183f0();" (call_expression "FUN_000183f0()" identifier (argument_list "()" ( ))) ;)) (expression_statement "iVar5 = strcmp((char *)param_1,"-1");" (assignment_expression "iVar5 = 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 (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\nLAB_00016b27:\n      FUN_000183f0();\n      iVar5 = strcmp((char *)param_1,"-2");\n      if (iVar5 == 0) {\n        if ((DAT_0006f0a0 & 2) != 0) {\nLAB_00015d50:\n          FUN_00044820();\n          return 1;\n        }\n        goto LAB_00016b67;\n      }\n    }\n    else {\n      iVar5 = strcmp((char *)param_1,"-2");\n      if (iVar5 == 0) goto LAB_000175ad;\n    }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\nLAB_00016b27:\n      FUN_000183f0();\n      iVar5 = strcmp((char *)param_1,"-2");\n      if (iVar5 == 0) {\n        if ((DAT_0006f0a0 & 2) != 0) {\nLAB_00015d50:\n          FUN_00044820();\n          return 1;\n        }\n        goto LAB_00016b67;\n      }\n    }" { (if_statement "if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;" if (parenthesized_expression "((DAT_0006f0a0 & 2) != 0)" ( (binary_expression "(DAT_0006f0a0 & 2) != 0" (parenthesized_expression "(DAT_0006f0a0 & 2)" ( (binary_expression "DAT_0006f0a0 & 2" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00015d50;" goto statement_identifier ;)) (labeled_statement "LAB_00016b27:\n      FUN_000183f0();" statement_identifier : (expression_statement "FUN_000183f0();" (call_expression "FUN_000183f0()" identifier (argument_list "()" ( ))) ;)) (expression_statement "iVar5 = strcmp((char *)param_1,"-2");" (assignment_expression "iVar5 = 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 (iVar5 == 0) {\n        if ((DAT_0006f0a0 & 2) != 0) {\nLAB_00015d50:\n          FUN_00044820();\n          return 1;\n        }\n        goto LAB_00016b67;\n      }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n        if ((DAT_0006f0a0 & 2) != 0) {\nLAB_00015d50:\n          FUN_00044820();\n          return 1;\n        }\n        goto LAB_00016b67;\n      }" { (if_statement "if ((DAT_0006f0a0 & 2) != 0) {\nLAB_00015d50:\n          FUN_00044820();\n          return 1;\n        }" if (parenthesized_expression "((DAT_0006f0a0 & 2) != 0)" ( (binary_expression "(DAT_0006f0a0 & 2) != 0" (parenthesized_expression "(DAT_0006f0a0 & 2)" ( (binary_expression "DAT_0006f0a0 & 2" identifier & number_literal) )) != number_literal) )) (compound_statement "{\nLAB_00015d50:\n          FUN_00044820();\n          return 1;\n        }" { (labeled_statement "LAB_00015d50:\n          FUN_00044820();" statement_identifier : (expression_statement "FUN_00044820();" (call_expression "FUN_00044820()" identifier (argument_list "()" ( ))) ;)) (return_statement "return 1;" return number_literal ;) })) (goto_statement "goto LAB_00016b67;" goto statement_identifier ;) })) }) (else_clause "else {\n      iVar5 = strcmp((char *)param_1,"-2");\n      if (iVar5 == 0) goto LAB_000175ad;\n    }" else (compound_statement "{\n      iVar5 = strcmp((char *)param_1,"-2");\n      if (iVar5 == 0) goto LAB_000175ad;\n    }" { (expression_statement "iVar5 = strcmp((char *)param_1,"-2");" (assignment_expression "iVar5 = 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 (iVar5 == 0) goto LAB_000175ad;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000175ad;" goto statement_identifier ;)) }))) (expression_statement "uVar7 = 1;" (assignment_expression "uVar7 = 1" identifier = number_literal) ;) }))) (expression_statement "iVar5 = strcmp((char *)param_1,"-i");" (assignment_expression "iVar5 = 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 (iVar5 == 0) {\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n    if (param_3 != 0) goto LAB_00016123;\n    FUN_00041790();\n    FUN_00018770();\n    FUN_00041820();\n    iVar5 = strcmp((char *)param_1,"-4");\n    if ((iVar5 == 0) || (iVar5 = strcmp((char *)param_1,"-ipv4"), iVar5 == 0)) goto LAB_00017485;\n    iVar5 = strcmp((char *)param_1,"-6");\n    if (iVar5 == 0) goto LAB_00016c88;\n    uVar7 = 2;\n    iVar5 = strcmp((char *)param_1,"-ipv6");\njoined_r0x000174dc:\n    if (iVar5 == 0) goto LAB_00016c88;\n  }\n  else {\n    iVar5 = strcmp((char *)param_1,"-4");\n    if ((iVar5 == 0) || (iVar5 = strcmp((char *)param_1,"-ipv4"), iVar5 == 0)) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\nLAB_00017091:\n        FUN_00015950();\n        return 1;\n      }\nLAB_00017485:\n      FUN_000183f0();\n      iVar5 = strcmp((char *)param_1,"-6");\n      if (iVar5 != 0) {\n        uVar7 = 1;\n        iVar5 = strcmp((char *)param_1,"-ipv6");\n        goto joined_r0x000174dc;\n      }\n    }\n    else {\n      iVar5 = strcmp((char *)param_1,"-6");\n      if ((iVar5 != 0) && (iVar5 = strcmp((char *)param_1,"-ipv6"), iVar5 != 0)) goto LAB_00016ca6;\n      if (param_3 < 0) {\n        return 1;\n      }\n      if (param_3 != 0) goto LAB_00017091;\n    }\nLAB_00016c88:\n    uVar7 = 1;\n    FUN_000183f0();\n  }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 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    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n    if (param_3 != 0) goto LAB_00016123;\n    FUN_00041790();\n    FUN_00018770();\n    FUN_00041820();\n    iVar5 = strcmp((char *)param_1,"-4");\n    if ((iVar5 == 0) || (iVar5 = strcmp((char *)param_1,"-ipv4"), iVar5 == 0)) goto LAB_00017485;\n    iVar5 = strcmp((char *)param_1,"-6");\n    if (iVar5 == 0) goto LAB_00016c88;\n    uVar7 = 2;\n    iVar5 = strcmp((char *)param_1,"-ipv6");\njoined_r0x000174dc:\n    if (iVar5 == 0) goto LAB_00016c88;\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 ;) })) (if_statement "if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;" if (parenthesized_expression "((DAT_0006f0a0 & 2) != 0)" ( (binary_expression "(DAT_0006f0a0 & 2) != 0" (parenthesized_expression "(DAT_0006f0a0 & 2)" ( (binary_expression "DAT_0006f0a0 & 2" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_000161c3;" goto statement_identifier ;)) (if_statement "if (param_3 != 0) goto LAB_00016123;" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00016123;" goto statement_identifier ;)) (expression_statement "FUN_00041790();" (call_expression "FUN_00041790()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00018770();" (call_expression "FUN_00018770()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00041820();" (call_expression "FUN_00041820()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar5 = strcmp((char *)param_1,"-4");" (assignment_expression "iVar5 = 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 ((iVar5 == 0) || (iVar5 = strcmp((char *)param_1,"-ipv4"), iVar5 == 0)) goto LAB_00017485;" if (parenthesized_expression "((iVar5 == 0) || (iVar5 = strcmp((char *)param_1,"-ipv4"), iVar5 == 0))" ( (binary_expression "(iVar5 == 0) || (iVar5 = strcmp((char *)param_1,"-ipv4"), iVar5 == 0)" (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar5 = strcmp((char *)param_1,"-ipv4"), iVar5 == 0)" ( (comma_expression "iVar5 = strcmp((char *)param_1,"-ipv4"), iVar5 == 0" (assignment_expression "iVar5 = 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 "iVar5 == 0" identifier == number_literal)) ))) )) (goto_statement "goto LAB_00017485;" goto statement_identifier ;)) (expression_statement "iVar5 = strcmp((char *)param_1,"-6");" (assignment_expression "iVar5 = 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 (iVar5 == 0) goto LAB_00016c88;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00016c88;" goto statement_identifier ;)) (expression_statement "uVar7 = 2;" (assignment_expression "uVar7 = 2" identifier = number_literal) ;) (expression_statement "iVar5 = strcmp((char *)param_1,"-ipv6");" (assignment_expression "iVar5 = 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 ") )))) ;) (labeled_statement "joined_r0x000174dc:\n    if (iVar5 == 0) goto LAB_00016c88;" statement_identifier : (if_statement "if (iVar5 == 0) goto LAB_00016c88;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00016c88;" goto statement_identifier ;))) }) (else_clause "else {\n    iVar5 = strcmp((char *)param_1,"-4");\n    if ((iVar5 == 0) || (iVar5 = strcmp((char *)param_1,"-ipv4"), iVar5 == 0)) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\nLAB_00017091:\n        FUN_00015950();\n        return 1;\n      }\nLAB_00017485:\n      FUN_000183f0();\n      iVar5 = strcmp((char *)param_1,"-6");\n      if (iVar5 != 0) {\n        uVar7 = 1;\n        iVar5 = strcmp((char *)param_1,"-ipv6");\n        goto joined_r0x000174dc;\n      }\n    }\n    else {\n      iVar5 = strcmp((char *)param_1,"-6");\n      if ((iVar5 != 0) && (iVar5 = strcmp((char *)param_1,"-ipv6"), iVar5 != 0)) goto LAB_00016ca6;\n      if (param_3 < 0) {\n        return 1;\n      }\n      if (param_3 != 0) goto LAB_00017091;\n    }\nLAB_00016c88:\n    uVar7 = 1;\n    FUN_000183f0();\n  }" else (compound_statement "{\n    iVar5 = strcmp((char *)param_1,"-4");\n    if ((iVar5 == 0) || (iVar5 = strcmp((char *)param_1,"-ipv4"), iVar5 == 0)) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\nLAB_00017091:\n        FUN_00015950();\n        return 1;\n      }\nLAB_00017485:\n      FUN_000183f0();\n      iVar5 = strcmp((char *)param_1,"-6");\n      if (iVar5 != 0) {\n        uVar7 = 1;\n        iVar5 = strcmp((char *)param_1,"-ipv6");\n        goto joined_r0x000174dc;\n      }\n    }\n    else {\n      iVar5 = strcmp((char *)param_1,"-6");\n      if ((iVar5 != 0) && (iVar5 = strcmp((char *)param_1,"-ipv6"), iVar5 != 0)) goto LAB_00016ca6;\n      if (param_3 < 0) {\n        return 1;\n      }\n      if (param_3 != 0) goto LAB_00017091;\n    }\nLAB_00016c88:\n    uVar7 = 1;\n    FUN_000183f0();\n  }" { (expression_statement "iVar5 = strcmp((char *)param_1,"-4");" (assignment_expression "iVar5 = 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 ((iVar5 == 0) || (iVar5 = strcmp((char *)param_1,"-ipv4"), iVar5 == 0)) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\nLAB_00017091:\n        FUN_00015950();\n        return 1;\n      }\nLAB_00017485:\n      FUN_000183f0();\n      iVar5 = strcmp((char *)param_1,"-6");\n      if (iVar5 != 0) {\n        uVar7 = 1;\n        iVar5 = strcmp((char *)param_1,"-ipv6");\n        goto joined_r0x000174dc;\n      }\n    }\n    else {\n      iVar5 = strcmp((char *)param_1,"-6");\n      if ((iVar5 != 0) && (iVar5 = strcmp((char *)param_1,"-ipv6"), iVar5 != 0)) goto LAB_00016ca6;\n      if (param_3 < 0) {\n        return 1;\n      }\n      if (param_3 != 0) goto LAB_00017091;\n    }" if (parenthesized_expression "((iVar5 == 0) || (iVar5 = strcmp((char *)param_1,"-ipv4"), iVar5 == 0))" ( (binary_expression "(iVar5 == 0) || (iVar5 = strcmp((char *)param_1,"-ipv4"), iVar5 == 0)" (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar5 = strcmp((char *)param_1,"-ipv4"), iVar5 == 0)" ( (comma_expression "iVar5 = strcmp((char *)param_1,"-ipv4"), iVar5 == 0" (assignment_expression "iVar5 = 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 "iVar5 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n      if (param_3 < 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\nLAB_00017091:\n        FUN_00015950();\n        return 1;\n      }\nLAB_00017485:\n      FUN_000183f0();\n      iVar5 = strcmp((char *)param_1,"-6");\n      if (iVar5 != 0) {\n        uVar7 = 1;\n        iVar5 = strcmp((char *)param_1,"-ipv6");\n        goto joined_r0x000174dc;\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 ;) })) (if_statement "if (param_3 != 0) {\nLAB_00017091:\n        FUN_00015950();\n        return 1;\n      }" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_00017091:\n        FUN_00015950();\n        return 1;\n      }" { (labeled_statement "LAB_00017091:\n        FUN_00015950();" statement_identifier : (expression_statement "FUN_00015950();" (call_expression "FUN_00015950()" identifier (argument_list "()" ( ))) ;)) (return_statement "return 1;" return number_literal ;) })) (labeled_statement "LAB_00017485:\n      FUN_000183f0();" statement_identifier : (expression_statement "FUN_000183f0();" (call_expression "FUN_000183f0()" identifier (argument_list "()" ( ))) ;)) (expression_statement "iVar5 = strcmp((char *)param_1,"-6");" (assignment_expression "iVar5 = 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 (iVar5 != 0) {\n        uVar7 = 1;\n        iVar5 = strcmp((char *)param_1,"-ipv6");\n        goto joined_r0x000174dc;\n      }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n        uVar7 = 1;\n        iVar5 = strcmp((char *)param_1,"-ipv6");\n        goto joined_r0x000174dc;\n      }" { (expression_statement "uVar7 = 1;" (assignment_expression "uVar7 = 1" identifier = number_literal) ;) (expression_statement "iVar5 = strcmp((char *)param_1,"-ipv6");" (assignment_expression "iVar5 = 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 ") )))) ;) (goto_statement "goto joined_r0x000174dc;" goto statement_identifier ;) })) }) (else_clause "else {\n      iVar5 = strcmp((char *)param_1,"-6");\n      if ((iVar5 != 0) && (iVar5 = strcmp((char *)param_1,"-ipv6"), iVar5 != 0)) goto LAB_00016ca6;\n      if (param_3 < 0) {\n        return 1;\n      }\n      if (param_3 != 0) goto LAB_00017091;\n    }" else (compound_statement "{\n      iVar5 = strcmp((char *)param_1,"-6");\n      if ((iVar5 != 0) && (iVar5 = strcmp((char *)param_1,"-ipv6"), iVar5 != 0)) goto LAB_00016ca6;\n      if (param_3 < 0) {\n        return 1;\n      }\n      if (param_3 != 0) goto LAB_00017091;\n    }" { (expression_statement "iVar5 = strcmp((char *)param_1,"-6");" (assignment_expression "iVar5 = 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 ((iVar5 != 0) && (iVar5 = strcmp((char *)param_1,"-ipv6"), iVar5 != 0)) goto LAB_00016ca6;" if (parenthesized_expression "((iVar5 != 0) && (iVar5 = strcmp((char *)param_1,"-ipv6"), iVar5 != 0))" ( (binary_expression "(iVar5 != 0) && (iVar5 = strcmp((char *)param_1,"-ipv6"), iVar5 != 0)" (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar5 = strcmp((char *)param_1,"-ipv6"), iVar5 != 0)" ( (comma_expression "iVar5 = strcmp((char *)param_1,"-ipv6"), iVar5 != 0" (assignment_expression "iVar5 = 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 ") )))) , (binary_expression "iVar5 != 0" identifier != number_literal)) ))) )) (goto_statement "goto LAB_00016ca6;" 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 ;) })) (if_statement "if (param_3 != 0) goto LAB_00017091;" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00017091;" goto statement_identifier ;)) }))) (labeled_statement "LAB_00016c88:\n    uVar7 = 1;" statement_identifier : (expression_statement "uVar7 = 1;" (assignment_expression "uVar7 = 1" identifier = number_literal) ;)) (expression_statement "FUN_000183f0();" (call_expression "FUN_000183f0()" identifier (argument_list "()" ( ))) ;) }))) (labeled_statement "LAB_00016ca6:\n  iVar5 = strcmp((char *)param_1,"-sercfg");" statement_identifier : (expression_statement "iVar5 = strcmp((char *)param_1,"-sercfg");" (assignment_expression "iVar5 = 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 (iVar5 == 0) {\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;\n    if (param_3 != 0) {\nLAB_00016723:\n      FUN_00015950();\n      return 2;\n    }\n    iVar5 = FUN_00017cd0();\n    pcVar8 = param_2;\n    if (iVar5 != 4) {\n      FUN_00044820();\n    }\n    for (; *pcVar8 != '\0'; pcVar8 = pcVar8 + iVar10 + iVar5) {\n      pcVar4 = strchr(pcVar8,0x2c);\n      if (pcVar4 == (char *)0x0) {\n        uVar6 = 0xffffffff;\n        iVar5 = 0;\n        pcVar4 = pcVar8;\n        do {\n          if (uVar6 == 0) break;\n          uVar6 = uVar6 - 1;\n          cVar1 = *pcVar4;\n          pcVar4 = pcVar4 + (uint)bVar17 * -2 + 1;\n        } while (cVar1 != '\0');\n        iVar10 = ~uVar6 - 1;\n      }\n      else {\n        *pcVar4 = '\0';\n        iVar5 = 1;\n        iVar10 = (int)pcVar4 - (int)pcVar8;\n      }\n      if (iVar10 == 1) {\n        switch(*pcVar8) {\n        case '1':\n        case '2':\n          FUN_000183f0();\n          break;\n        default:\n          FUN_00044820();\n          break;\n        case '5':\n        case '6':\n        case '7':\n        case '8':\n        case '9':\n          FUN_000183f0();\n          break;\n        case 'D':\n          FUN_000183f0();\n          break;\n        case 'N':\n          FUN_000183f0();\n          break;\n        case 'R':\n          FUN_000183f0();\n          break;\n        case 'X':\n          FUN_000183f0();\n          break;\n        case 'e':\n          FUN_000183f0();\n          break;\n        case 'm':\n          FUN_000183f0();\n          break;\n        case 'n':\n          FUN_000183f0();\n          break;\n        case 'o':\n          FUN_000183f0();\n          break;\n        case 's':\n          FUN_000183f0();\n        }\n      }\n      else if ((iVar10 == 3) && (iVar2 = strncmp(pcVar8,"1.5",3), iVar2 == 0)) {\n        FUN_000183f0();\n      }\n      else {\n        lVar3 = strtol(pcVar8,(char **)0x0,10);\n        if (lVar3 == 0) {\n          FUN_00044820();\n        }\n        else {\n          FUN_000183f0();\n        }\n      }\n    }\n    iVar5 = strcmp((char *)param_1,"-sessionlog");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 1) != 0) goto LAB_000161c3;\n      goto LAB_0001722b;\n    }\n    iVar5 = strcmp((char *)param_1,"-sshlog");\n    if (iVar5 != 0) goto LAB_000173ff;\nLAB_000173c4:\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n    if (param_3 != 0) {\nLAB_00016123:\n      FUN_00015950();\n      return 2;\n    }\n  }\n  else {\n    iVar5 = strcmp((char *)param_1,"-sessionlog");\n    if (iVar5 != 0) {\n      iVar5 = strcmp((char *)param_1,"-sshlog");\n      if (iVar5 != 0) goto LAB_00017404;\nLAB_000173b1:\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      goto LAB_000173c4;\n    }\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    if ((DAT_0006f0a0 & 1) != 0) goto LAB_000161c3;\n    if (param_3 != 0) goto LAB_00016123;\nLAB_0001722b:\n    FUN_00041790();\n    FUN_00018770();\n    FUN_000183f0();\n    FUN_00041820();\n    iVar5 = strcmp((char *)param_1,"-sshlog");\n    if (iVar5 != 0) {\nLAB_000173ff:\n      uVar7 = 2;\nLAB_00017404:\n      iVar5 = strcmp((char *)param_1,"-sshrawlog");\n      if (iVar5 != 0) {\n        iVar5 = strcmp((char *)param_1,"-proxycmd");\n        if (iVar5 != 0) {\n          return uVar7;\n        }\n        if (param_2 == (char *)0x0) {\n          return 0xfffffffe;\n        }\n        if (param_3 < 0) {\n          return 2;\n        }\n        if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n        if (param_3 != 0) goto LAB_00016123;\n        goto LAB_00017304;\n      }\n      goto LAB_000173b1;\n    }\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n  }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 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    if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;\n    if (param_3 != 0) {\nLAB_00016723:\n      FUN_00015950();\n      return 2;\n    }\n    iVar5 = FUN_00017cd0();\n    pcVar8 = param_2;\n    if (iVar5 != 4) {\n      FUN_00044820();\n    }\n    for (; *pcVar8 != '\0'; pcVar8 = pcVar8 + iVar10 + iVar5) {\n      pcVar4 = strchr(pcVar8,0x2c);\n      if (pcVar4 == (char *)0x0) {\n        uVar6 = 0xffffffff;\n        iVar5 = 0;\n        pcVar4 = pcVar8;\n        do {\n          if (uVar6 == 0) break;\n          uVar6 = uVar6 - 1;\n          cVar1 = *pcVar4;\n          pcVar4 = pcVar4 + (uint)bVar17 * -2 + 1;\n        } while (cVar1 != '\0');\n        iVar10 = ~uVar6 - 1;\n      }\n      else {\n        *pcVar4 = '\0';\n        iVar5 = 1;\n        iVar10 = (int)pcVar4 - (int)pcVar8;\n      }\n      if (iVar10 == 1) {\n        switch(*pcVar8) {\n        case '1':\n        case '2':\n          FUN_000183f0();\n          break;\n        default:\n          FUN_00044820();\n          break;\n        case '5':\n        case '6':\n        case '7':\n        case '8':\n        case '9':\n          FUN_000183f0();\n          break;\n        case 'D':\n          FUN_000183f0();\n          break;\n        case 'N':\n          FUN_000183f0();\n          break;\n        case 'R':\n          FUN_000183f0();\n          break;\n        case 'X':\n          FUN_000183f0();\n          break;\n        case 'e':\n          FUN_000183f0();\n          break;\n        case 'm':\n          FUN_000183f0();\n          break;\n        case 'n':\n          FUN_000183f0();\n          break;\n        case 'o':\n          FUN_000183f0();\n          break;\n        case 's':\n          FUN_000183f0();\n        }\n      }\n      else if ((iVar10 == 3) && (iVar2 = strncmp(pcVar8,"1.5",3), iVar2 == 0)) {\n        FUN_000183f0();\n      }\n      else {\n        lVar3 = strtol(pcVar8,(char **)0x0,10);\n        if (lVar3 == 0) {\n          FUN_00044820();\n        }\n        else {\n          FUN_000183f0();\n        }\n      }\n    }\n    iVar5 = strcmp((char *)param_1,"-sessionlog");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 1) != 0) goto LAB_000161c3;\n      goto LAB_0001722b;\n    }\n    iVar5 = strcmp((char *)param_1,"-sshlog");\n    if (iVar5 != 0) goto LAB_000173ff;\nLAB_000173c4:\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n    if (param_3 != 0) {\nLAB_00016123:\n      FUN_00015950();\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 ;) })) (if_statement "if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;" if (parenthesized_expression "((DAT_0006f0a0 & 3) != 0)" ( (binary_expression "(DAT_0006f0a0 & 3) != 0" (parenthesized_expression "(DAT_0006f0a0 & 3)" ( (binary_expression "DAT_0006f0a0 & 3" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_000161c3;" goto statement_identifier ;)) (if_statement "if (param_3 != 0) {\nLAB_00016723:\n      FUN_00015950();\n      return 2;\n    }" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_00016723:\n      FUN_00015950();\n      return 2;\n    }" { (labeled_statement "LAB_00016723:\n      FUN_00015950();" statement_identifier : (expression_statement "FUN_00015950();" (call_expression "FUN_00015950()" identifier (argument_list "()" ( ))) ;)) (return_statement "return 2;" return number_literal ;) })) (expression_statement "iVar5 = FUN_00017cd0();" (assignment_expression "iVar5 = FUN_00017cd0()" identifier = (call_expression "FUN_00017cd0()" identifier (argument_list "()" ( )))) ;) (expression_statement "pcVar8 = param_2;" (assignment_expression "pcVar8 = param_2" identifier = identifier) ;) (if_statement "if (iVar5 != 4) {\n      FUN_00044820();\n    }" if (parenthesized_expression "(iVar5 != 4)" ( (binary_expression "iVar5 != 4" identifier != number_literal) )) (compound_statement "{\n      FUN_00044820();\n    }" { (expression_statement "FUN_00044820();" (call_expression "FUN_00044820()" identifier (argument_list "()" ( ))) ;) })) (for_statement "for (; *pcVar8 != '\0'; pcVar8 = pcVar8 + iVar10 + iVar5) {\n      pcVar4 = strchr(pcVar8,0x2c);\n      if (pcVar4 == (char *)0x0) {\n        uVar6 = 0xffffffff;\n        iVar5 = 0;\n        pcVar4 = pcVar8;\n        do {\n          if (uVar6 == 0) break;\n          uVar6 = uVar6 - 1;\n          cVar1 = *pcVar4;\n          pcVar4 = pcVar4 + (uint)bVar17 * -2 + 1;\n        } while (cVar1 != '\0');\n        iVar10 = ~uVar6 - 1;\n      }\n      else {\n        *pcVar4 = '\0';\n        iVar5 = 1;\n        iVar10 = (int)pcVar4 - (int)pcVar8;\n      }\n      if (iVar10 == 1) {\n        switch(*pcVar8) {\n        case '1':\n        case '2':\n          FUN_000183f0();\n          break;\n        default:\n          FUN_00044820();\n          break;\n        case '5':\n        case '6':\n        case '7':\n        case '8':\n        case '9':\n          FUN_000183f0();\n          break;\n        case 'D':\n          FUN_000183f0();\n          break;\n        case 'N':\n          FUN_000183f0();\n          break;\n        case 'R':\n          FUN_000183f0();\n          break;\n        case 'X':\n          FUN_000183f0();\n          break;\n        case 'e':\n          FUN_000183f0();\n          break;\n        case 'm':\n          FUN_000183f0();\n          break;\n        case 'n':\n          FUN_000183f0();\n          break;\n        case 'o':\n          FUN_000183f0();\n          break;\n        case 's':\n          FUN_000183f0();\n        }\n      }\n      else if ((iVar10 == 3) && (iVar2 = strncmp(pcVar8,"1.5",3), iVar2 == 0)) {\n        FUN_000183f0();\n      }\n      else {\n        lVar3 = strtol(pcVar8,(char **)0x0,10);\n        if (lVar3 == 0) {\n          FUN_00044820();\n        }\n        else {\n          FUN_000183f0();\n        }\n      }\n    }" for ( ; (binary_expression "*pcVar8 != '\0'" (pointer_expression "*pcVar8" * identifier) != (char_literal "'\0'" ' escape_sequence ')) ; (assignment_expression "pcVar8 = pcVar8 + iVar10 + iVar5" identifier = (binary_expression "pcVar8 + iVar10 + iVar5" (binary_expression "pcVar8 + iVar10" identifier + identifier) + identifier)) ) (compound_statement "{\n      pcVar4 = strchr(pcVar8,0x2c);\n      if (pcVar4 == (char *)0x0) {\n        uVar6 = 0xffffffff;\n        iVar5 = 0;\n        pcVar4 = pcVar8;\n        do {\n          if (uVar6 == 0) break;\n          uVar6 = uVar6 - 1;\n          cVar1 = *pcVar4;\n          pcVar4 = pcVar4 + (uint)bVar17 * -2 + 1;\n        } while (cVar1 != '\0');\n        iVar10 = ~uVar6 - 1;\n      }\n      else {\n        *pcVar4 = '\0';\n        iVar5 = 1;\n        iVar10 = (int)pcVar4 - (int)pcVar8;\n      }\n      if (iVar10 == 1) {\n        switch(*pcVar8) {\n        case '1':\n        case '2':\n          FUN_000183f0();\n          break;\n        default:\n          FUN_00044820();\n          break;\n        case '5':\n        case '6':\n        case '7':\n        case '8':\n        case '9':\n          FUN_000183f0();\n          break;\n        case 'D':\n          FUN_000183f0();\n          break;\n        case 'N':\n          FUN_000183f0();\n          break;\n        case 'R':\n          FUN_000183f0();\n          break;\n        case 'X':\n          FUN_000183f0();\n          break;\n        case 'e':\n          FUN_000183f0();\n          break;\n        case 'm':\n          FUN_000183f0();\n          break;\n        case 'n':\n          FUN_000183f0();\n          break;\n        case 'o':\n          FUN_000183f0();\n          break;\n        case 's':\n          FUN_000183f0();\n        }\n      }\n      else if ((iVar10 == 3) && (iVar2 = strncmp(pcVar8,"1.5",3), iVar2 == 0)) {\n        FUN_000183f0();\n      }\n      else {\n        lVar3 = strtol(pcVar8,(char **)0x0,10);\n        if (lVar3 == 0) {\n          FUN_00044820();\n        }\n        else {\n          FUN_000183f0();\n        }\n      }\n    }" { (expression_statement "pcVar4 = strchr(pcVar8,0x2c);" (assignment_expression "pcVar4 = strchr(pcVar8,0x2c)" identifier = (call_expression "strchr(pcVar8,0x2c)" identifier (argument_list "(pcVar8,0x2c)" ( identifier , number_literal )))) ;) (if_statement "if (pcVar4 == (char *)0x0) {\n        uVar6 = 0xffffffff;\n        iVar5 = 0;\n        pcVar4 = pcVar8;\n        do {\n          if (uVar6 == 0) break;\n          uVar6 = uVar6 - 1;\n          cVar1 = *pcVar4;\n          pcVar4 = pcVar4 + (uint)bVar17 * -2 + 1;\n        } while (cVar1 != '\0');\n        iVar10 = ~uVar6 - 1;\n      }\n      else {\n        *pcVar4 = '\0';\n        iVar5 = 1;\n        iVar10 = (int)pcVar4 - (int)pcVar8;\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        uVar6 = 0xffffffff;\n        iVar5 = 0;\n        pcVar4 = pcVar8;\n        do {\n          if (uVar6 == 0) break;\n          uVar6 = uVar6 - 1;\n          cVar1 = *pcVar4;\n          pcVar4 = pcVar4 + (uint)bVar17 * -2 + 1;\n        } while (cVar1 != '\0');\n        iVar10 = ~uVar6 - 1;\n      }" { (expression_statement "uVar6 = 0xffffffff;" (assignment_expression "uVar6 = 0xffffffff" identifier = number_literal) ;) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (expression_statement "pcVar4 = pcVar8;" (assignment_expression "pcVar4 = pcVar8" identifier = identifier) ;) (do_statement "do {\n          if (uVar6 == 0) break;\n          uVar6 = uVar6 - 1;\n          cVar1 = *pcVar4;\n          pcVar4 = pcVar4 + (uint)bVar17 * -2 + 1;\n        } while (cVar1 != '\0');" do (compound_statement "{\n          if (uVar6 == 0) break;\n          uVar6 = uVar6 - 1;\n          cVar1 = *pcVar4;\n          pcVar4 = pcVar4 + (uint)bVar17 * -2 + 1;\n        }" { (if_statement "if (uVar6 == 0) break;" if (parenthesized_expression "(uVar6 == 0)" ( (binary_expression "uVar6 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar6 = uVar6 - 1;" (assignment_expression "uVar6 = uVar6 - 1" identifier = (binary_expression "uVar6 - 1" identifier - number_literal)) ;) (expression_statement "cVar1 = *pcVar4;" (assignment_expression "cVar1 = *pcVar4" identifier = (pointer_expression "*pcVar4" * identifier)) ;) (expression_statement "pcVar4 = pcVar4 + (uint)bVar17 * -2 + 1;" (assignment_expression "pcVar4 = pcVar4 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pcVar4 + (uint)bVar17 * -2 + 1" (binary_expression "pcVar4 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar1 != '\0')" ( (binary_expression "cVar1 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "iVar10 = ~uVar6 - 1;" (assignment_expression "iVar10 = ~uVar6 - 1" identifier = (binary_expression "~uVar6 - 1" (unary_expression "~uVar6" ~ identifier) - number_literal)) ;) }) (else_clause "else {\n        *pcVar4 = '\0';\n        iVar5 = 1;\n        iVar10 = (int)pcVar4 - (int)pcVar8;\n      }" else (compound_statement "{\n        *pcVar4 = '\0';\n        iVar5 = 1;\n        iVar10 = (int)pcVar4 - (int)pcVar8;\n      }" { (expression_statement "*pcVar4 = '\0';" (assignment_expression "*pcVar4 = '\0'" (pointer_expression "*pcVar4" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "iVar5 = 1;" (assignment_expression "iVar5 = 1" identifier = number_literal) ;) (expression_statement "iVar10 = (int)pcVar4 - (int)pcVar8;" (assignment_expression "iVar10 = (int)pcVar4 - (int)pcVar8" identifier = (binary_expression "(int)pcVar4 - (int)pcVar8" (cast_expression "(int)pcVar4" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pcVar8" ( (type_descriptor "int" primitive_type) ) identifier))) ;) }))) (if_statement "if (iVar10 == 1) {\n        switch(*pcVar8) {\n        case '1':\n        case '2':\n          FUN_000183f0();\n          break;\n        default:\n          FUN_00044820();\n          break;\n        case '5':\n        case '6':\n        case '7':\n        case '8':\n        case '9':\n          FUN_000183f0();\n          break;\n        case 'D':\n          FUN_000183f0();\n          break;\n        case 'N':\n          FUN_000183f0();\n          break;\n        case 'R':\n          FUN_000183f0();\n          break;\n        case 'X':\n          FUN_000183f0();\n          break;\n        case 'e':\n          FUN_000183f0();\n          break;\n        case 'm':\n          FUN_000183f0();\n          break;\n        case 'n':\n          FUN_000183f0();\n          break;\n        case 'o':\n          FUN_000183f0();\n          break;\n        case 's':\n          FUN_000183f0();\n        }\n      }\n      else if ((iVar10 == 3) && (iVar2 = strncmp(pcVar8,"1.5",3), iVar2 == 0)) {\n        FUN_000183f0();\n      }\n      else {\n        lVar3 = strtol(pcVar8,(char **)0x0,10);\n        if (lVar3 == 0) {\n          FUN_00044820();\n        }\n        else {\n          FUN_000183f0();\n        }\n      }" if (parenthesized_expression "(iVar10 == 1)" ( (binary_expression "iVar10 == 1" identifier == number_literal) )) (compound_statement "{\n        switch(*pcVar8) {\n        case '1':\n        case '2':\n          FUN_000183f0();\n          break;\n        default:\n          FUN_00044820();\n          break;\n        case '5':\n        case '6':\n        case '7':\n        case '8':\n        case '9':\n          FUN_000183f0();\n          break;\n        case 'D':\n          FUN_000183f0();\n          break;\n        case 'N':\n          FUN_000183f0();\n          break;\n        case 'R':\n          FUN_000183f0();\n          break;\n        case 'X':\n          FUN_000183f0();\n          break;\n        case 'e':\n          FUN_000183f0();\n          break;\n        case 'm':\n          FUN_000183f0();\n          break;\n        case 'n':\n          FUN_000183f0();\n          break;\n        case 'o':\n          FUN_000183f0();\n          break;\n        case 's':\n          FUN_000183f0();\n        }\n      }" { (switch_statement "switch(*pcVar8) {\n        case '1':\n        case '2':\n          FUN_000183f0();\n          break;\n        default:\n          FUN_00044820();\n          break;\n        case '5':\n        case '6':\n        case '7':\n        case '8':\n        case '9':\n          FUN_000183f0();\n          break;\n        case 'D':\n          FUN_000183f0();\n          break;\n        case 'N':\n          FUN_000183f0();\n          break;\n        case 'R':\n          FUN_000183f0();\n          break;\n        case 'X':\n          FUN_000183f0();\n          break;\n        case 'e':\n          FUN_000183f0();\n          break;\n        case 'm':\n          FUN_000183f0();\n          break;\n        case 'n':\n          FUN_000183f0();\n          break;\n        case 'o':\n          FUN_000183f0();\n          break;\n        case 's':\n          FUN_000183f0();\n        }" switch (parenthesized_expression "(*pcVar8)" ( (pointer_expression "*pcVar8" * identifier) )) (compound_statement "{\n        case '1':\n        case '2':\n          FUN_000183f0();\n          break;\n        default:\n          FUN_00044820();\n          break;\n        case '5':\n        case '6':\n        case '7':\n        case '8':\n        case '9':\n          FUN_000183f0();\n          break;\n        case 'D':\n          FUN_000183f0();\n          break;\n        case 'N':\n          FUN_000183f0();\n          break;\n        case 'R':\n          FUN_000183f0();\n          break;\n        case 'X':\n          FUN_000183f0();\n          break;\n        case 'e':\n          FUN_000183f0();\n          break;\n        case 'm':\n          FUN_000183f0();\n          break;\n        case 'n':\n          FUN_000183f0();\n          break;\n        case 'o':\n          FUN_000183f0();\n          break;\n        case 's':\n          FUN_000183f0();\n        }" { (case_statement "case '1':" case (char_literal "'1'" ' character ') :) (case_statement "case '2':\n          FUN_000183f0();\n          break;" case (char_literal "'2'" ' character ') : (expression_statement "FUN_000183f0();" (call_expression "FUN_000183f0()" identifier (argument_list "()" ( ))) ;) (break_statement "break;" break ;)) (case_statement "default:\n          FUN_00044820();\n          break;" default : (expression_statement "FUN_00044820();" (call_expression "FUN_00044820()" identifier (argument_list "()" ( ))) ;) (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_000183f0();\n          break;" case (char_literal "'9'" ' character ') : (expression_statement "FUN_000183f0();" (call_expression "FUN_000183f0()" identifier (argument_list "()" ( ))) ;) (break_statement "break;" break ;)) (case_statement "case 'D':\n          FUN_000183f0();\n          break;" case (char_literal "'D'" ' character ') : (expression_statement "FUN_000183f0();" (call_expression "FUN_000183f0()" identifier (argument_list "()" ( ))) ;) (break_statement "break;" break ;)) (case_statement "case 'N':\n          FUN_000183f0();\n          break;" case (char_literal "'N'" ' character ') : (expression_statement "FUN_000183f0();" (call_expression "FUN_000183f0()" identifier (argument_list "()" ( ))) ;) (break_statement "break;" break ;)) (case_statement "case 'R':\n          FUN_000183f0();\n          break;" case (char_literal "'R'" ' character ') : (expression_statement "FUN_000183f0();" (call_expression "FUN_000183f0()" identifier (argument_list "()" ( ))) ;) (break_statement "break;" break ;)) (case_statement "case 'X':\n          FUN_000183f0();\n          break;" case (char_literal "'X'" ' character ') : (expression_statement "FUN_000183f0();" (call_expression "FUN_000183f0()" identifier (argument_list "()" ( ))) ;) (break_statement "break;" break ;)) (case_statement "case 'e':\n          FUN_000183f0();\n          break;" case (char_literal "'e'" ' character ') : (expression_statement "FUN_000183f0();" (call_expression "FUN_000183f0()" identifier (argument_list "()" ( ))) ;) (break_statement "break;" break ;)) (case_statement "case 'm':\n          FUN_000183f0();\n          break;" case (char_literal "'m'" ' character ') : (expression_statement "FUN_000183f0();" (call_expression "FUN_000183f0()" identifier (argument_list "()" ( ))) ;) (break_statement "break;" break ;)) (case_statement "case 'n':\n          FUN_000183f0();\n          break;" case (char_literal "'n'" ' character ') : (expression_statement "FUN_000183f0();" (call_expression "FUN_000183f0()" identifier (argument_list "()" ( ))) ;) (break_statement "break;" break ;)) (case_statement "case 'o':\n          FUN_000183f0();\n          break;" case (char_literal "'o'" ' character ') : (expression_statement "FUN_000183f0();" (call_expression "FUN_000183f0()" identifier (argument_list "()" ( ))) ;) (break_statement "break;" break ;)) (case_statement "case 's':\n          FUN_000183f0();" case (char_literal "'s'" ' character ') : (expression_statement "FUN_000183f0();" (call_expression "FUN_000183f0()" identifier (argument_list "()" ( ))) ;)) })) }) (else_clause "else if ((iVar10 == 3) && (iVar2 = strncmp(pcVar8,"1.5",3), iVar2 == 0)) {\n        FUN_000183f0();\n      }\n      else {\n        lVar3 = strtol(pcVar8,(char **)0x0,10);\n        if (lVar3 == 0) {\n          FUN_00044820();\n        }\n        else {\n          FUN_000183f0();\n        }\n      }" else (if_statement "if ((iVar10 == 3) && (iVar2 = strncmp(pcVar8,"1.5",3), iVar2 == 0)) {\n        FUN_000183f0();\n      }\n      else {\n        lVar3 = strtol(pcVar8,(char **)0x0,10);\n        if (lVar3 == 0) {\n          FUN_00044820();\n        }\n        else {\n          FUN_000183f0();\n        }\n      }" if (parenthesized_expression "((iVar10 == 3) && (iVar2 = strncmp(pcVar8,"1.5",3), iVar2 == 0))" ( (binary_expression "(iVar10 == 3) && (iVar2 = strncmp(pcVar8,"1.5",3), iVar2 == 0)" (parenthesized_expression "(iVar10 == 3)" ( (binary_expression "iVar10 == 3" identifier == number_literal) )) && (parenthesized_expression "(iVar2 = strncmp(pcVar8,"1.5",3), iVar2 == 0)" ( (comma_expression "iVar2 = strncmp(pcVar8,"1.5",3), iVar2 == 0" (assignment_expression "iVar2 = strncmp(pcVar8,"1.5",3)" identifier = (call_expression "strncmp(pcVar8,"1.5",3)" identifier (argument_list "(pcVar8,"1.5",3)" ( identifier , (string_literal ""1.5"" " string_content ") , number_literal )))) , (binary_expression "iVar2 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n        FUN_000183f0();\n      }" { (expression_statement "FUN_000183f0();" (call_expression "FUN_000183f0()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n        lVar3 = strtol(pcVar8,(char **)0x0,10);\n        if (lVar3 == 0) {\n          FUN_00044820();\n        }\n        else {\n          FUN_000183f0();\n        }\n      }" else (compound_statement "{\n        lVar3 = strtol(pcVar8,(char **)0x0,10);\n        if (lVar3 == 0) {\n          FUN_00044820();\n        }\n        else {\n          FUN_000183f0();\n        }\n      }" { (expression_statement "lVar3 = strtol(pcVar8,(char **)0x0,10);" (assignment_expression "lVar3 = strtol(pcVar8,(char **)0x0,10)" identifier = (call_expression "strtol(pcVar8,(char **)0x0,10)" identifier (argument_list "(pcVar8,(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 (lVar3 == 0) {\n          FUN_00044820();\n        }\n        else {\n          FUN_000183f0();\n        }" if (parenthesized_expression "(lVar3 == 0)" ( (binary_expression "lVar3 == 0" identifier == number_literal) )) (compound_statement "{\n          FUN_00044820();\n        }" { (expression_statement "FUN_00044820();" (call_expression "FUN_00044820()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n          FUN_000183f0();\n        }" else (compound_statement "{\n          FUN_000183f0();\n        }" { (expression_statement "FUN_000183f0();" (call_expression "FUN_000183f0()" identifier (argument_list "()" ( ))) ;) }))) }))))) })) (expression_statement "iVar5 = strcmp((char *)param_1,"-sessionlog");" (assignment_expression "iVar5 = 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 (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 1) != 0) goto LAB_000161c3;\n      goto LAB_0001722b;\n    }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n      if ((DAT_0006f0a0 & 1) != 0) goto LAB_000161c3;\n      goto LAB_0001722b;\n    }" { (if_statement "if ((DAT_0006f0a0 & 1) != 0) goto LAB_000161c3;" if (parenthesized_expression "((DAT_0006f0a0 & 1) != 0)" ( (binary_expression "(DAT_0006f0a0 & 1) != 0" (parenthesized_expression "(DAT_0006f0a0 & 1)" ( (binary_expression "DAT_0006f0a0 & 1" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_000161c3;" goto statement_identifier ;)) (goto_statement "goto LAB_0001722b;" goto statement_identifier ;) })) (expression_statement "iVar5 = strcmp((char *)param_1,"-sshlog");" (assignment_expression "iVar5 = 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 (iVar5 != 0) goto LAB_000173ff;" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000173ff;" goto statement_identifier ;)) (labeled_statement "LAB_000173c4:\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;" statement_identifier : (if_statement "if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;" if (parenthesized_expression "((DAT_0006f0a0 & 2) != 0)" ( (binary_expression "(DAT_0006f0a0 & 2) != 0" (parenthesized_expression "(DAT_0006f0a0 & 2)" ( (binary_expression "DAT_0006f0a0 & 2" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_000161c3;" goto statement_identifier ;))) (if_statement "if (param_3 != 0) {\nLAB_00016123:\n      FUN_00015950();\n      return 2;\n    }" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_00016123:\n      FUN_00015950();\n      return 2;\n    }" { (labeled_statement "LAB_00016123:\n      FUN_00015950();" statement_identifier : (expression_statement "FUN_00015950();" (call_expression "FUN_00015950()" identifier (argument_list "()" ( ))) ;)) (return_statement "return 2;" return number_literal ;) })) }) (else_clause "else {\n    iVar5 = strcmp((char *)param_1,"-sessionlog");\n    if (iVar5 != 0) {\n      iVar5 = strcmp((char *)param_1,"-sshlog");\n      if (iVar5 != 0) goto LAB_00017404;\nLAB_000173b1:\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      goto LAB_000173c4;\n    }\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    if ((DAT_0006f0a0 & 1) != 0) goto LAB_000161c3;\n    if (param_3 != 0) goto LAB_00016123;\nLAB_0001722b:\n    FUN_00041790();\n    FUN_00018770();\n    FUN_000183f0();\n    FUN_00041820();\n    iVar5 = strcmp((char *)param_1,"-sshlog");\n    if (iVar5 != 0) {\nLAB_000173ff:\n      uVar7 = 2;\nLAB_00017404:\n      iVar5 = strcmp((char *)param_1,"-sshrawlog");\n      if (iVar5 != 0) {\n        iVar5 = strcmp((char *)param_1,"-proxycmd");\n        if (iVar5 != 0) {\n          return uVar7;\n        }\n        if (param_2 == (char *)0x0) {\n          return 0xfffffffe;\n        }\n        if (param_3 < 0) {\n          return 2;\n        }\n        if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n        if (param_3 != 0) goto LAB_00016123;\n        goto LAB_00017304;\n      }\n      goto LAB_000173b1;\n    }\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n  }" else (compound_statement "{\n    iVar5 = strcmp((char *)param_1,"-sessionlog");\n    if (iVar5 != 0) {\n      iVar5 = strcmp((char *)param_1,"-sshlog");\n      if (iVar5 != 0) goto LAB_00017404;\nLAB_000173b1:\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      goto LAB_000173c4;\n    }\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    if ((DAT_0006f0a0 & 1) != 0) goto LAB_000161c3;\n    if (param_3 != 0) goto LAB_00016123;\nLAB_0001722b:\n    FUN_00041790();\n    FUN_00018770();\n    FUN_000183f0();\n    FUN_00041820();\n    iVar5 = strcmp((char *)param_1,"-sshlog");\n    if (iVar5 != 0) {\nLAB_000173ff:\n      uVar7 = 2;\nLAB_00017404:\n      iVar5 = strcmp((char *)param_1,"-sshrawlog");\n      if (iVar5 != 0) {\n        iVar5 = strcmp((char *)param_1,"-proxycmd");\n        if (iVar5 != 0) {\n          return uVar7;\n        }\n        if (param_2 == (char *)0x0) {\n          return 0xfffffffe;\n        }\n        if (param_3 < 0) {\n          return 2;\n        }\n        if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n        if (param_3 != 0) goto LAB_00016123;\n        goto LAB_00017304;\n      }\n      goto LAB_000173b1;\n    }\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n  }" { (expression_statement "iVar5 = strcmp((char *)param_1,"-sessionlog");" (assignment_expression "iVar5 = 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 (iVar5 != 0) {\n      iVar5 = strcmp((char *)param_1,"-sshlog");\n      if (iVar5 != 0) goto LAB_00017404;\nLAB_000173b1:\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      goto LAB_000173c4;\n    }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar5 = strcmp((char *)param_1,"-sshlog");\n      if (iVar5 != 0) goto LAB_00017404;\nLAB_000173b1:\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      goto LAB_000173c4;\n    }" { (expression_statement "iVar5 = strcmp((char *)param_1,"-sshlog");" (assignment_expression "iVar5 = 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 (iVar5 != 0) goto LAB_00017404;" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00017404;" goto statement_identifier ;)) (labeled_statement "LAB_000173b1:\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 ;) })) (goto_statement "goto LAB_000173c4;" 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 ;) })) (if_statement "if ((DAT_0006f0a0 & 1) != 0) goto LAB_000161c3;" if (parenthesized_expression "((DAT_0006f0a0 & 1) != 0)" ( (binary_expression "(DAT_0006f0a0 & 1) != 0" (parenthesized_expression "(DAT_0006f0a0 & 1)" ( (binary_expression "DAT_0006f0a0 & 1" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_000161c3;" goto statement_identifier ;)) (if_statement "if (param_3 != 0) goto LAB_00016123;" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00016123;" goto statement_identifier ;)) (labeled_statement "LAB_0001722b:\n    FUN_00041790();" statement_identifier : (expression_statement "FUN_00041790();" (call_expression "FUN_00041790()" identifier (argument_list "()" ( ))) ;)) (expression_statement "FUN_00018770();" (call_expression "FUN_00018770()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_000183f0();" (call_expression "FUN_000183f0()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00041820();" (call_expression "FUN_00041820()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar5 = strcmp((char *)param_1,"-sshlog");" (assignment_expression "iVar5 = 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 (iVar5 != 0) {\nLAB_000173ff:\n      uVar7 = 2;\nLAB_00017404:\n      iVar5 = strcmp((char *)param_1,"-sshrawlog");\n      if (iVar5 != 0) {\n        iVar5 = strcmp((char *)param_1,"-proxycmd");\n        if (iVar5 != 0) {\n          return uVar7;\n        }\n        if (param_2 == (char *)0x0) {\n          return 0xfffffffe;\n        }\n        if (param_3 < 0) {\n          return 2;\n        }\n        if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n        if (param_3 != 0) goto LAB_00016123;\n        goto LAB_00017304;\n      }\n      goto LAB_000173b1;\n    }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_000173ff:\n      uVar7 = 2;\nLAB_00017404:\n      iVar5 = strcmp((char *)param_1,"-sshrawlog");\n      if (iVar5 != 0) {\n        iVar5 = strcmp((char *)param_1,"-proxycmd");\n        if (iVar5 != 0) {\n          return uVar7;\n        }\n        if (param_2 == (char *)0x0) {\n          return 0xfffffffe;\n        }\n        if (param_3 < 0) {\n          return 2;\n        }\n        if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n        if (param_3 != 0) goto LAB_00016123;\n        goto LAB_00017304;\n      }\n      goto LAB_000173b1;\n    }" { (labeled_statement "LAB_000173ff:\n      uVar7 = 2;" statement_identifier : (expression_statement "uVar7 = 2;" (assignment_expression "uVar7 = 2" identifier = number_literal) ;)) (labeled_statement "LAB_00017404:\n      iVar5 = strcmp((char *)param_1,"-sshrawlog");" statement_identifier : (expression_statement "iVar5 = strcmp((char *)param_1,"-sshrawlog");" (assignment_expression "iVar5 = 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 (iVar5 != 0) {\n        iVar5 = strcmp((char *)param_1,"-proxycmd");\n        if (iVar5 != 0) {\n          return uVar7;\n        }\n        if (param_2 == (char *)0x0) {\n          return 0xfffffffe;\n        }\n        if (param_3 < 0) {\n          return 2;\n        }\n        if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n        if (param_3 != 0) goto LAB_00016123;\n        goto LAB_00017304;\n      }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n        iVar5 = strcmp((char *)param_1,"-proxycmd");\n        if (iVar5 != 0) {\n          return uVar7;\n        }\n        if (param_2 == (char *)0x0) {\n          return 0xfffffffe;\n        }\n        if (param_3 < 0) {\n          return 2;\n        }\n        if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n        if (param_3 != 0) goto LAB_00016123;\n        goto LAB_00017304;\n      }" { (expression_statement "iVar5 = strcmp((char *)param_1,"-proxycmd");" (assignment_expression "iVar5 = 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 (iVar5 != 0) {\n          return uVar7;\n        }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n          return uVar7;\n        }" { (return_statement "return uVar7;" 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 ;) })) (if_statement "if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;" if (parenthesized_expression "((DAT_0006f0a0 & 2) != 0)" ( (binary_expression "(DAT_0006f0a0 & 2) != 0" (parenthesized_expression "(DAT_0006f0a0 & 2)" ( (binary_expression "DAT_0006f0a0 & 2" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_000161c3;" goto statement_identifier ;)) (if_statement "if (param_3 != 0) goto LAB_00016123;" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00016123;" goto statement_identifier ;)) (goto_statement "goto LAB_00017304;" goto statement_identifier ;) })) (goto_statement "goto LAB_000173b1;" goto statement_identifier ;) })) (if_statement "if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;" if (parenthesized_expression "((DAT_0006f0a0 & 2) != 0)" ( (binary_expression "(DAT_0006f0a0 & 2) != 0" (parenthesized_expression "(DAT_0006f0a0 & 2)" ( (binary_expression "DAT_0006f0a0 & 2" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_000161c3;" goto statement_identifier ;)) }))) (expression_statement "FUN_00041790();" (call_expression "FUN_00041790()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00018770();" (call_expression "FUN_00018770()" identifier (argument_list "()" ( ))) ;) (expression_statement "strcmp((char *)param_1,"-sshlog");" (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_000183f0();" (call_expression "FUN_000183f0()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00041820();" (call_expression "FUN_00041820()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar5 = strcmp((char *)param_1,"-proxycmd");" (assignment_expression "iVar5 = 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 (iVar5 != 0) {\n    return 2;\n  }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n    return 2;\n  }" { (return_statement "return 2;" return number_literal ;) })) (if_statement "if ((DAT_0006f0a0 & 2) == 0) {\nLAB_00017304:\n    FUN_000183f0();\n    FUN_00018530();\n    return 2;\n  }" if (parenthesized_expression "((DAT_0006f0a0 & 2) == 0)" ( (binary_expression "(DAT_0006f0a0 & 2) == 0" (parenthesized_expression "(DAT_0006f0a0 & 2)" ( (binary_expression "DAT_0006f0a0 & 2" identifier & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_00017304:\n    FUN_000183f0();\n    FUN_00018530();\n    return 2;\n  }" { (labeled_statement "LAB_00017304:\n    FUN_000183f0();" statement_identifier : (expression_statement "FUN_000183f0();" (call_expression "FUN_000183f0()" identifier (argument_list "()" ( ))) ;)) (expression_statement "FUN_00018530();" (call_expression "FUN_00018530()" identifier (argument_list "()" ( ))) ;) (return_statement "return 2;" return number_literal ;) })) (labeled_statement "LAB_000161c3:\n  FUN_00044820();" statement_identifier : (expression_statement "FUN_00044820();" (call_expression "FUN_00044820()" identifier (argument_list "()" ( ))) ;)) (return_statement "return 2;" return number_literal ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* 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  char *pcVar2;\n  long lVar3;\n  FILE *__stream;\n  char *pcVar4;\n  Filename *pFVar5;\n  int iVar6;\n  int iVar7;\n  int iVar8;\n  uint uVar9;\n  char *pcVar10;\n  byte *pbVar11;\n  byte *pbVar12;\n  bool bVar13;\n  bool bVar14;\n  undefined1 uVar15;\n  bool bVar16;\n  undefined1 uVar17;\n  byte bVar18;\n  undefined1 auStack_2c [8];\n  size_t local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  bVar18 = 0;\n  iVar7 = 6;\n  uStack_14 = 0x15b6e;\n  bVar13 = &stack0xfffffff0 < (undefined1 *)0x1c;\n  bVar16 = &stack0x00000000 == (undefined1 *)0x2c;\n  pbVar11 = (byte *)p;\n  pbVar12 = (byte *)"-load";\n  do {\n    if (iVar7 == 0) break;\n    iVar7 = iVar7 + -1;\n    bVar13 = *pbVar11 < *pbVar12;\n    bVar16 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + 1;\n    pbVar12 = pbVar12 + 1;\n  } while (bVar16);\n  bVar14 = false;\n  bVar13 = (!bVar13 && !bVar16) == bVar13;\n  if (bVar13) {\n    if (value == (char *)0x0) {\n      return -2;\n    }\n    if (need_save < 0) {\n      return 2;\n    }\n    do_defaults(value,conf);\n    loaded_session = 1;\n    cmdline_session_name = dupstr(value);\n    return 2;\n  }\n  iVar7 = 5;\n  pbVar11 = (byte *)p;\n  pbVar12 = &DAT_0004b0b5;\n  do {\n    if (iVar7 == 0) break;\n    iVar7 = iVar7 + -1;\n    bVar14 = *pbVar11 < *pbVar12;\n    bVar13 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + 1;\n    pbVar12 = pbVar12 + 1;\n  } while (bVar13);\n  bVar16 = false;\n  bVar13 = (!bVar14 && !bVar13) == bVar14;\n  if (bVar13) {\n    if (need_save < 0) {\n      return 1;\n    }\n    if (((byte)cmdline_tooltype & 3) == 0) {\n      if (need_save == 0) {\n        default_protocol = 3;\n        default_port = 0x16;\n        iVar7 = 3;\nLAB_00015c0d:\n        conf_set_int(conf,2,iVar7);\n        conf_set_int(conf,1,default_port);\n        return 1;\n      }\n      goto LAB_00015c78;\n    }\n    goto LAB_00015d50;\n  }\n  iVar7 = 8;\n  pbVar11 = (byte *)p;\n  pbVar12 = (byte *)"-telnet";\n  do {\n    if (iVar7 == 0) break;\n    iVar7 = iVar7 + -1;\n    bVar16 = *pbVar11 < *pbVar12;\n    bVar13 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + 1;\n    pbVar12 = pbVar12 + 1;\n  } while (bVar13);\n  bVar14 = false;\n  bVar13 = (!bVar16 && !bVar13) == bVar16;\n  if (bVar13) {\n    if (need_save < 0) {\n      return 1;\n    }\n    if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\n    if (need_save == 0) {\n      default_protocol = 1;\n      default_port = 0x17;\n      iVar7 = 1;\n      goto LAB_00015c0d;\n    }\n    goto LAB_00015c78;\n  }\n  iVar7 = 8;\n  pbVar11 = (byte *)p;\n  pbVar12 = (byte *)"-rlogin";\n  do {\n    if (iVar7 == 0) break;\n    iVar7 = iVar7 + -1;\n    bVar14 = *pbVar11 < *pbVar12;\n    bVar13 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + 1;\n    pbVar12 = pbVar12 + 1;\n  } while (bVar13);\n  bVar16 = false;\n  bVar13 = (!bVar14 && !bVar13) == bVar14;\n  if (bVar13) {\n    if (need_save < 0) {\n      return 1;\n    }\n    if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\n    if (need_save == 0) {\n      default_protocol = 2;\n      default_port = 0x201;\n      iVar7 = 2;\n      goto LAB_00015c0d;\n    }\n    goto LAB_00015c78;\n  }\n  iVar7 = 5;\n  pbVar11 = (byte *)p;\n  pbVar12 = &DAT_0004b0ca;\n  do {\n    if (iVar7 == 0) break;\n    iVar7 = iVar7 + -1;\n    bVar16 = *pbVar11 < *pbVar12;\n    bVar13 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + 1;\n    pbVar12 = pbVar12 + 1;\n  } while (bVar13);\n  bVar14 = false;\n  bVar13 = (!bVar16 && !bVar13) == bVar16;\n  if (bVar13) {\n    if (need_save < 0) {\n      return 1;\n    }\n    if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\n    if (need_save != 0) goto LAB_00015c78;\n    uVar15 = auStack_2c < (undefined1 *)0x4;\n    uVar17 = &stack0x00000000 == (undefined1 *)0x30;\n    default_protocol = 0;\n    conf_set_int(conf,2,0);\n    iVar7 = 8;\n    pbVar11 = (byte *)p;\n    pbVar12 = (byte *)"-serial";\n    do {\n      if (iVar7 == 0) break;\n      iVar7 = iVar7 + -1;\n      uVar15 = *pbVar11 < *pbVar12;\n      uVar17 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    } while ((bool)uVar17);\n    bVar13 = false;\n    bVar16 = (!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15;\n    if (bVar16) {\n      if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\n      goto LAB_00015dd0;\n    }\n    iVar7 = 3;\n    pbVar11 = (byte *)p;\n    pbVar12 = &DAT_0004b0d7;\n    do {\n      if (iVar7 == 0) break;\n      iVar7 = iVar7 + -1;\n      bVar13 = *pbVar11 < *pbVar12;\n      bVar16 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    } while (bVar16);\n    bVar13 = (!bVar13 && !bVar16) == bVar13;\n    if (bVar13) goto LAB_00015e28;\nLAB_00015e31:\n    iVar7 = 1;\n  }\n  else {\n    iVar7 = 8;\n    pbVar11 = (byte *)p;\n    pbVar12 = (byte *)"-serial";\n    do {\n      if (iVar7 == 0) break;\n      iVar7 = iVar7 + -1;\n      bVar14 = *pbVar11 < *pbVar12;\n      bVar13 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + 1;\n      pbVar12 = pbVar12 + 1;\n    } while (bVar13);\n    bVar16 = false;\n    bVar13 = (!bVar14 && !bVar13) == bVar14;\n    if (bVar13) {\n      if (need_save < 0) {\n        return 1;\n      }\n      if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\n      if (need_save != 0) goto LAB_00015c78;\nLAB_00015dd0:\n      default_protocol = 4;\n      conf_set_int(conf,2,4);\n      pcVar2 = conf_get_str(conf,0);\n      uVar15 = (undefined1 *)0xfffffff3 < &stack0xffffffc4;\n      uVar17 = &stack0x00000000 == (undefined1 *)0x30;\n      conf_set_str(conf,0x39,pcVar2);\n      iVar7 = 3;\n      pbVar11 = (byte *)p;\n      pbVar12 = &DAT_0004b0d7;\n      do {\n        if (iVar7 == 0) break;\n        iVar7 = iVar7 + -1;\n        uVar15 = *pbVar11 < *pbVar12;\n        uVar17 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n        pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n      } while ((bool)uVar17);\n      bVar13 = (!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15;\n      if (bVar13) goto LAB_00015e28;\n      goto LAB_00015e31;\n    }\n    iVar7 = 3;\n    pbVar11 = (byte *)p;\n    pbVar12 = &DAT_0004b0d7;\n    do {\n      if (iVar7 == 0) break;\n      iVar7 = iVar7 + -1;\n      bVar16 = *pbVar11 < *pbVar12;\n      bVar13 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + 1;\n      pbVar12 = pbVar12 + 1;\n    } while (bVar13);\n    if ((!bVar16 && !bVar13) == bVar16) {\n      if (need_save < 0) {\n        return 1;\n      }\nLAB_00015e28:\n      flags = flags | 1;\n      bVar13 = flags == 0;\n      goto LAB_00015e31;\n    }\n    iVar7 = 0;\n    bVar13 = true;\n  }\n  bVar16 = false;\n  iVar8 = 3;\n  pbVar11 = (byte *)p;\n  pbVar12 = (byte *)0x53a29;\n  do {\n    if (iVar8 == 0) break;\n    iVar8 = iVar8 + -1;\n    bVar16 = *pbVar11 < *pbVar12;\n    bVar13 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n    pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n  } while (bVar13);\n  bVar14 = false;\n  bVar13 = (!bVar16 && !bVar13) == bVar16;\n  if (bVar13) {\n    if (value == (char *)0x0) {\n      return -2;\n    }\n    if (need_save < 0) {\n      return 2;\n    }\n    if (((byte)cmdline_tooltype & 2) != 0) goto LAB_000161c3;\n    if (need_save != 0) goto LAB_00016123;\n    uVar15 = auStack_2c < (undefined1 *)0x4;\n    uVar17 = &stack0x00000000 == (undefined1 *)0x30;\n    conf_set_str(conf,0x34,value);\n    iVar7 = 9;\n    pbVar11 = (byte *)p;\n    pbVar12 = (byte *)"-loghost";\n    do {\n      if (iVar7 == 0) break;\n      iVar7 = iVar7 + -1;\n      uVar15 = *pbVar11 < *pbVar12;\n      uVar17 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    } while ((bool)uVar17);\n    bVar13 = false;\n    bVar16 = (!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15;\n    if (bVar16) {\n      if (((byte)cmdline_tooltype & 2) != 0) goto LAB_000161c3;\n      goto LAB_00015ec5;\n    }\n    iVar7 = 9;\n    pbVar11 = (byte *)p;\n    pbVar12 = (byte *)"-hostkey";\n    do {\n      if (iVar7 == 0) break;\n      iVar7 = iVar7 + -1;\n      bVar13 = *pbVar11 < *pbVar12;\n      bVar16 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    } while (bVar16);\n    bVar13 = (!bVar13 && !bVar16) == bVar13;\n    if (bVar13) goto LAB_00016218;\nLAB_00016248:\n    iVar7 = 2;\nLAB_0001624d:\n    bVar16 = false;\n    iVar8 = 3;\n    pbVar11 = (byte *)p;\n    pbVar12 = &DAT_0004b0ec;\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar16 = *pbVar11 < *pbVar12;\n      bVar13 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    } while (bVar13);\n    bVar13 = (!bVar16 && !bVar13) == bVar16;\n    if (bVar13) {\nLAB_00016647:\n      if (value == (char *)0x0) {\n        return -2;\n      }\n      if (need_save < 0) {\n        return 2;\n      }\n      if (((byte)cmdline_tooltype & 3) != 0) goto LAB_000161c3;\n      bVar13 = need_save == 0;\n      if (!bVar13) goto LAB_00016123;\n      goto LAB_00015f8f;\n    }\nLAB_0001626b:\n    bVar16 = false;\n    iVar8 = 3;\n    pbVar11 = (byte *)p;\n    pbVar12 = &DAT_0004b0ef;\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar16 = *pbVar11 < *pbVar12;\n      bVar13 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    } while (bVar13);\n    bVar14 = false;\n    bVar13 = (!bVar16 && !bVar13) == bVar16;\n    if (bVar13) goto LAB_00016647;\n    iVar8 = 3;\n    pbVar11 = (byte *)p;\n    pbVar12 = (byte *)0x53a3b;\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar14 = *pbVar11 < *pbVar12;\n      bVar13 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    } while (bVar13);\n    bVar16 = false;\n    bVar13 = (!bVar14 && !bVar13) == bVar14;\n    if (bVar13) goto LAB_00016647;\n    iVar8 = 4;\n    pbVar11 = (byte *)p;\n    pbVar12 = &DAT_0004b0fd;\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar16 = *pbVar11 < *pbVar12;\n      bVar13 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    } while (bVar13);\n    bVar13 = (!bVar16 && !bVar13) == bVar16;\n    if (!bVar13) goto LAB_00016698;\n    if (value == (char *)0x0) {\n      return -2;\n    }\n    if (need_save < 0) {\n      return 2;\n    }\n    if (((byte)cmdline_tooltype & 3) != 0) goto LAB_000161c3;\n    if (need_save != 0) goto LAB_00016123;\nLAB_000162ed:\n    pcVar2 = host_strchr(value,0x3a);\n    if (pcVar2 == (char *)0x0) {\n      cmdline_error("-nc expects argument of form \'host:port\'");\n      return 2;\n    }\n    iVar7 = 2;\n    pcVar4 = dupprintf("%.*s");\n    conf_set_str(conf,0x2e,pcVar4);\n    lVar3 = strtol(pcVar2 + 1,(char **)0x0,10);\n    uVar15 = (undefined1 *)0xfffffff3 < &stack0xffffffc4;\n    uVar17 = &stack0x00000000 == (undefined1 *)0x30;\n    conf_set_int(conf,0x2f,lVar3);\n    safefree(pcVar4);\n    iVar8 = 3;\n    pbVar11 = (byte *)p;\n    pbVar12 = &DAT_0004b101;\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      uVar15 = *pbVar11 < *pbVar12;\n      uVar17 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    } while ((bool)uVar17);\n    bVar13 = (!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15;\n    if (!bVar13) goto LAB_000166e0;\n    if (((byte)cmdline_tooltype & 3) != 0) goto LAB_000161c3;\nLAB_0001639b:\n    iVar7 = 0;\n    pcVar2 = (char *)0x0;\n    __stream = fopen64(value,"r");\n    local_24 = 0;\n    if (__stream == (FILE *)0x0) {\n      cmdline_error("unable to open command file \"%s\"");\n      return 2;\n    }\n    while (iVar8 = fgetc(__stream), iVar8 != -1) {\n      if (iVar7 < (int)local_24) {\n        pcVar2[iVar7] = (char)iVar8;\n      }\n      else {\n        local_24 = iVar7 + 0x200;\n        local_20 = iVar8;\n        pcVar2 = (char *)saferealloc(pcVar2,local_24,1);\n        pcVar2[iVar7] = (char)local_20;\n      }\n      iVar7 = iVar7 + 1;\n    }\n    if (iVar7 < (int)local_24) {\n      pcVar2[iVar7] = '\0';\n    }\n    else {\n      pcVar2 = (char *)saferealloc(pcVar2,iVar7 + 0x200,1);\n      pcVar2[iVar7] = '\0';\n    }\n    iVar7 = 2;\n    fclose(__stream);\n    conf_set_str(conf,0x14,pcVar2);\n    conf_set_str(conf,0x15,"");\n    uVar15 = (undefined1 *)0xfffffff3 < &stack0xffffffc4;\n    uVar17 = &stack0x00000000 == (undefined1 *)0x30;\n    conf_set_int(conf,0x16,1);\n    safefree(pcVar2);\n    iVar8 = 3;\n    pbVar11 = (byte *)p;\n    pbVar12 = &DAT_0004b104;\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      uVar15 = *pbVar11 < *pbVar12;\n      uVar17 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    } while ((bool)uVar17);\n    bVar13 = (!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15;\n    if (!bVar13) goto LAB_00016777;\n    if (((byte)cmdline_tooltype & 2) != 0) goto LAB_000161c3;\nLAB_000164a7:\n    lVar3 = strtol(value,(char **)0x0,10);\n    conf_set_int(conf,1,lVar3);\n    iVar7 = strcmp(p,"-pw");\n    if (iVar7 == 0) {\n      if (((byte)cmdline_tooltype & 2) != 0) goto LAB_000161c3;\nLAB_000164f6:\n      iVar7 = conf_get_int(conf,2);\n      if (iVar7 == 3) {\n        cmdline_password = dupstr(value);\n        uVar9 = 0xffffffff;\n        pcVar2 = value;\n        do {\n          if (uVar9 == 0) break;\n          uVar9 = uVar9 - 1;\n          cVar1 = *pcVar2;\n          pcVar2 = pcVar2 + (uint)bVar18 * -2 + 1;\n        } while (cVar1 != '\0');\n        smemclr(value,~uVar9 - 1);\n      }\n      else {\n        cmdline_error("the -pw option can only be used with the SSH protocol");\n      }\n      iVar7 = strcmp(p,"-agent");\n      if ((iVar7 == 0) || (iVar7 = strcmp(p,"-pagent"), iVar7 == 0)) goto LAB_00015d3a;\n      iVar7 = 2;\n      iVar8 = strcmp(p,"-pageant");\n      if (iVar8 == 0) goto LAB_0001688c;\n    }\n    else {\n      iVar7 = strcmp(p,"-agent");\n      if (iVar7 == 0) {\nLAB_00015d3a:\n        if (((byte)cmdline_tooltype & 2) != 0) goto LAB_00015d50;\n        goto LAB_000168a1;\n      }\n      iVar7 = 2;\n      iVar8 = strcmp(p,"-pagent");\n      if (iVar8 == 0) goto LAB_0001688c;\nLAB_0001685f:\n      iVar8 = strcmp(p,"-pageant");\n      if (iVar8 == 0) goto LAB_00016884;\n    }\n    iVar8 = strcmp(p,"-noagent");\n    if ((iVar8 == 0) || (iVar8 = strcmp(p,"-nopagent"), iVar8 == 0)) {\nLAB_00016e5e:\n      if (need_save < 0) {\n        return 1;\n      }\nLAB_00016e44:\n      if (((byte)cmdline_tooltype & 2) != 0) goto LAB_00015d50;\n      if (need_save != 0) goto LAB_00015c78;\n      goto LAB_000168e1;\n    }\nLAB_000165eb:\n    iVar8 = strcmp(p,"-nopageant");\n    if (iVar8 == 0) goto LAB_00016e5e;\n    iVar8 = strcmp(p,"-A");\n    if (iVar8 != 0) {\n      iVar8 = strcmp(p,"-a");\n      if (iVar8 != 0) goto LAB_00016f0f;\n      if (need_save < 0) {\n        return 1;\n      }\n      goto LAB_0001700b;\n    }\n    if (need_save < 0) {\n      return 1;\n    }\n    if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\n    if (need_save != 0) goto LAB_00015c78;\nLAB_00016921:\n    conf_set_int(conf,0x1d,1);\n    iVar7 = strcmp(p,"-a");\n    if (iVar7 != 0) {\n      iVar7 = 1;\n      iVar8 = strcmp(p,"-X");\n      if (iVar8 == 0) goto LAB_00016f38;\nLAB_00016f97:\n      iVar8 = strcmp(p,"-x");\n      if (iVar8 != 0) goto LAB_0001704f;\n      if (need_save < 0) {\n        return 1;\n      }\nLAB_00016fc4:\n      if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\n      if (need_save != 0) goto LAB_00015c78;\n      goto LAB_000169e4;\n    }\n    if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\nLAB_00016961:\n    conf_set_int(conf,0x1d,0);\n    iVar7 = strcmp(p,"-X");\n    if (iVar7 == 0) {\n      if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\n      goto LAB_000169a1;\n    }\n    iVar7 = 1;\n    iVar8 = strcmp(p,"-x");\n    if (iVar8 == 0) goto LAB_00016fc4;\nLAB_0001704f:\n    iVar8 = strcmp(p,"-t");\n    if (iVar8 == 0) {\n      if (need_save < 0) {\n        return 1;\n      }\n      goto LAB_0001707c;\n    }\nLAB_000177b1:\n    iVar8 = strcmp(p,"-T");\n    if (iVar8 != 0) goto LAB_00017759;\n    if (need_save < 0) {\n      return 1;\n    }\nLAB_0001770d:\n    if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\n    if (need_save != 0) goto LAB_00017091;\nLAB_00016a67:\n    conf_set_int(conf,0x16,1);\n    iVar7 = strcmp(p,"-N");\n    if (iVar7 == 0) {\n      if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\nLAB_00016aa7:\n      conf_set_int(conf,0x2d,1);\n      iVar7 = strcmp(p,"-C");\n      if (iVar7 == 0) {\n        if (((byte)cmdline_tooltype & 2) != 0) goto LAB_00015d50;\n        goto LAB_00016ae7;\n      }\n      iVar7 = 1;\n      iVar8 = strcmp(p,"-1");\n      if (iVar8 != 0) goto LAB_00017647;\nLAB_000175ed:\n      if (((byte)cmdline_tooltype & 2) != 0) goto LAB_00015d50;\n      if (need_save != 0) goto LAB_00015c78;\n      goto LAB_00016b27;\n    }\n    iVar7 = 1;\n    iVar8 = strcmp(p,"-C");\n    if (iVar8 == 0) goto LAB_0001762d;\nLAB_00017679:\n    iVar8 = strcmp(p,"-1");\n    if (iVar8 == 0) {\n      if (need_save < 0) {\n        return 1;\n      }\n      goto LAB_000175ed;\n    }\nLAB_00017647:\n    iVar8 = strcmp(p,"-2");\n    if (iVar8 == 0) {\n      if (need_save < 0) {\n        return 1;\n      }\nLAB_000175ad:\n      if (((byte)cmdline_tooltype & 2) != 0) goto LAB_00015d50;\n      if (need_save != 0) {\nLAB_00015c78:\n        cmdline_save_param(p,value,0);\n        return 1;\n      }\nLAB_00016b67:\n      iVar7 = 1;\n      conf_set_int(conf,0x21,3);\n    }\n  }\n  else {\n    iVar8 = 9;\n    pbVar11 = (byte *)p;\n    pbVar12 = (byte *)"-loghost";\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar14 = *pbVar11 < *pbVar12;\n      bVar13 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    } while (bVar13);\n    bVar16 = false;\n    bVar13 = (!bVar14 && !bVar13) == bVar14;\n    if (!bVar13) {\n      iVar8 = 9;\n      pbVar11 = (byte *)p;\n      pbVar12 = (byte *)"-hostkey";\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar16 = *pbVar11 < *pbVar12;\n        bVar13 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n        pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n      } while (bVar13);\n      bVar13 = (!bVar16 && !bVar13) == bVar16;\n      if (bVar13) {\n        if (value == (char *)0x0) {\n          return -2;\n        }\n        if (need_save < 0) {\n          return 2;\n        }\nLAB_00016218:\n        if (((byte)cmdline_tooltype & 2) != 0) goto LAB_000161c3;\n        if (need_save != 0) goto LAB_00016123;\n        goto LAB_00015f0d;\n      }\n      goto LAB_0001624d;\n    }\n    if (value == (char *)0x0) {\n      return -2;\n    }\n    if (need_save < 0) {\n      return 2;\n    }\n    if (((byte)cmdline_tooltype & 2) != 0) goto LAB_000161c3;\n    if (need_save != 0) goto LAB_00016123;\nLAB_00015ec5:\n    uVar15 = auStack_2c < (undefined1 *)0x4;\n    uVar17 = &stack0x00000000 == (undefined1 *)0x30;\n    conf_set_str(conf,9,value);\n    iVar7 = 9;\n    pbVar11 = (byte *)p;\n    pbVar12 = (byte *)"-hostkey";\n    do {\n      if (iVar7 == 0) break;\n      iVar7 = iVar7 + -1;\n      uVar15 = *pbVar11 < *pbVar12;\n      uVar17 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    } while ((bool)uVar17);\n    bVar13 = (!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15;\n    if (!bVar13) goto LAB_00016248;\n    if (((byte)cmdline_tooltype & 2) != 0) goto LAB_000161c3;\nLAB_00015f0d:\n    pcVar2 = dupstr(value);\n    iVar7 = validate_manual_hostkey(pcVar2);\n    uVar15 = 0;\n    uVar17 = iVar7 == 0;\n    if ((bool)uVar17) {\n      cmdline_error("\'%s\' is not a valid format for a manual host key specification");\n      safefree(pcVar2);\n      return 2;\n    }\n    iVar7 = 2;\n    conf_set_str_str(conf,0xad,pcVar2,"");\n    safefree(pcVar2);\n    iVar8 = 3;\n    pbVar11 = (byte *)p;\n    pbVar12 = &DAT_0004b0ec;\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      uVar15 = *pbVar11 < *pbVar12;\n      uVar17 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    } while ((bool)uVar17);\n    bVar13 = (!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15;\n    if (!bVar13) goto LAB_0001626b;\n    bVar13 = ((byte)cmdline_tooltype & 3) == 0;\n    if (!bVar13) goto LAB_000161c3;\nLAB_00015f8f:\n    bVar16 = false;\n    iVar7 = 3;\n    pbVar11 = (byte *)p;\n    pbVar12 = (byte *)0x53a3b;\n    do {\n      if (iVar7 == 0) break;\n      iVar7 = iVar7 + -1;\n      bVar16 = *pbVar11 < *pbVar12;\n      bVar13 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    } while (bVar13);\n    if ((!bVar16 && !bVar13) == bVar16) {\n      pcVar2 = dupprintf("L%s");\n      pcVar4 = dupstr("D");\n    }\n    else {\n      pcVar2 = host_strchr(value,0x3a);\n      pcVar4 = pcVar2;\n      if (pcVar2 == (char *)0x0) {\n        cmdline_error("-%c expects at least two colons in its argument");\n        return 2;\n      }\n      do {\n        pcVar10 = pcVar4;\n        pcVar4 = pcVar2;\n        pcVar2 = host_strchr(pcVar4 + 1,0x3a);\n      } while (pcVar2 != (char *)0x0);\n      pcVar2 = dupprintf("%c%.*s");\n      pcVar4 = dupstr(pcVar10 + 1);\n    }\n    uVar15 = (undefined1 *)0xffffffef < &stack0xffffffc4;\n    uVar17 = &stack0x00000000 == (undefined1 *)0x2c;\n    iVar7 = 2;\n    conf_set_str_str(conf,0x9b,pcVar2,pcVar4);\n    safefree(pcVar2);\n    safefree(pcVar4);\n    iVar8 = 4;\n    pbVar11 = (byte *)p;\n    pbVar12 = &DAT_0004b0fd;\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      uVar15 = *pbVar11 < *pbVar12;\n      uVar17 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    } while ((bool)uVar17);\n    bVar13 = (!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15;\n    if (bVar13) {\n      if (((byte)cmdline_tooltype & 3) != 0) goto LAB_000161c3;\n      goto LAB_000162ed;\n    }\nLAB_00016698:\n    bVar16 = false;\n    iVar8 = 3;\n    pbVar11 = (byte *)p;\n    pbVar12 = &DAT_0004b101;\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar16 = *pbVar11 < *pbVar12;\n      bVar13 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    } while (bVar13);\n    bVar13 = (!bVar16 && !bVar13) == bVar16;\n    if (bVar13) {\n      if (value == (char *)0x0) {\n        return -2;\n      }\n      if (need_save < 0) {\n        return 2;\n      }\n      if (((byte)cmdline_tooltype & 3) != 0) goto LAB_000161c3;\n      if (need_save != 0) goto LAB_00016123;\n      goto LAB_0001639b;\n    }\nLAB_000166e0:\n    bVar16 = false;\n    iVar8 = 3;\n    pbVar11 = (byte *)p;\n    pbVar12 = &DAT_0004b104;\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar16 = *pbVar11 < *pbVar12;\n      bVar13 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    } while (bVar13);\n    bVar13 = (!bVar16 && !bVar13) == bVar16;\n    if (bVar13) {\n      if (value == (char *)0x0) {\n        return -2;\n      }\n      if (need_save < 0) {\n        return 2;\n      }\n      if (((byte)cmdline_tooltype & 2) != 0) goto LAB_000161c3;\n      if (need_save != 0) goto LAB_00016723;\n      goto LAB_000164a7;\n    }\nLAB_00016777:\n    bVar16 = false;\n    iVar8 = 4;\n    pbVar11 = (byte *)p;\n    pbVar12 = &DAT_0004b107;\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar16 = *pbVar11 < *pbVar12;\n      bVar13 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    } while (bVar13);\n    if ((!bVar16 && !bVar13) == bVar16) {\n      if (value == (char *)0x0) {\n        return -2;\n      }\n      if (need_save < 0) {\n        return 2;\n      }\n      if (((byte)cmdline_tooltype & 2) != 0) goto LAB_000161c3;\n      if (need_save != 0) goto LAB_00016723;\n      goto LAB_000164f6;\n    }\n    iVar8 = strcmp(p,"-agent");\n    if ((iVar8 != 0) && (iVar8 = strcmp(p,"-pagent"), iVar8 != 0)) goto LAB_0001685f;\nLAB_00016884:\n    if (need_save < 0) {\n      return 1;\n    }\nLAB_0001688c:\n    if (((byte)cmdline_tooltype & 2) != 0) goto LAB_00015d50;\n    if (need_save != 0) goto LAB_00015c78;\nLAB_000168a1:\n    conf_set_int(conf,0x1c,1);\n    iVar7 = strcmp(p,"-noagent");\n    if (iVar7 != 0) {\n      iVar7 = 1;\n      iVar8 = strcmp(p,"-nopagent");\n      if (iVar8 != 0) goto LAB_000165eb;\n      goto LAB_00016e44;\n    }\n    if (((byte)cmdline_tooltype & 2) != 0) goto LAB_00015d50;\nLAB_000168e1:\n    conf_set_int(conf,0x1c,0);\n    iVar7 = strcmp(p,"-A");\n    if (iVar7 == 0) {\n      if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\n      goto LAB_00016921;\n    }\n    iVar7 = 1;\n    iVar8 = strcmp(p,"-a");\n    if (iVar8 == 0) {\nLAB_0001700b:\n      if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\n      if (need_save != 0) goto LAB_00015c78;\n      goto LAB_00016961;\n    }\nLAB_00016f0f:\n    iVar8 = strcmp(p,"-X");\n    if (iVar8 != 0) goto LAB_00016f97;\n    if (need_save < 0) {\n      return 1;\n    }\nLAB_00016f38:\n    if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\n    if (need_save != 0) goto LAB_00015c78;\nLAB_000169a1:\n    conf_set_int(conf,0x95,1);\n    iVar7 = strcmp(p,"-x");\n    if (iVar7 == 0) {\n      if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\nLAB_000169e4:\n      conf_set_int(conf,0x95,0);\n      iVar7 = strcmp(p,"-t");\n      if (iVar7 == 0) {\n        if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\n        goto LAB_00016a27;\n      }\n      iVar7 = 1;\n      iVar8 = strcmp(p,"-T");\n      if (iVar8 == 0) goto LAB_0001770d;\nLAB_00017759:\n      iVar8 = strcmp(p,"-N");\n      if (iVar8 != 0) goto LAB_00017727;\n      if (need_save < 0) {\n        return 1;\n      }\nLAB_000176cd:\n      if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\n      if (need_save != 0) goto LAB_00015c78;\n      goto LAB_00016aa7;\n    }\n    iVar7 = 1;\n    iVar8 = strcmp(p,"-t");\n    if (iVar8 != 0) goto LAB_000177b1;\nLAB_0001707c:\n    if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\n    if (need_save != 0) goto LAB_00017091;\nLAB_00016a27:\n    conf_set_int(conf,0x16,0);\n    iVar7 = strcmp(p,"-T");\n    if (iVar7 == 0) {\n      if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\n      goto LAB_00016a67;\n    }\n    iVar7 = 1;\n    iVar8 = strcmp(p,"-N");\n    if (iVar8 == 0) goto LAB_000176cd;\nLAB_00017727:\n    iVar8 = strcmp(p,"-C");\n    if (iVar8 != 0) goto LAB_00017679;\n    if (need_save < 0) {\n      return 1;\n    }\nLAB_0001762d:\n    if (((byte)cmdline_tooltype & 2) != 0) goto LAB_00015d50;\n    if (need_save != 0) goto LAB_00015c78;\nLAB_00016ae7:\n    conf_set_int(conf,0x17,1);\n    iVar7 = strcmp(p,"-1");\n    if (iVar7 == 0) {\n      if (((byte)cmdline_tooltype & 2) != 0) goto LAB_00015d50;\nLAB_00016b27:\n      conf_set_int(conf,0x21,0);\n      iVar7 = strcmp(p,"-2");\n      if (iVar7 == 0) {\n        if (((byte)cmdline_tooltype & 2) != 0) {\nLAB_00015d50:\n          cmdline_error("option \"%s\" not available in this tool");\n          return 1;\n        }\n        goto LAB_00016b67;\n      }\n    }\n    else {\n      iVar7 = strcmp(p,"-2");\n      if (iVar7 == 0) goto LAB_000175ad;\n    }\n    iVar7 = 1;\n  }\n  iVar8 = strcmp(p,"-i");\n  if (iVar8 == 0) {\n    if (value == (char *)0x0) {\n      return -2;\n    }\n    if (need_save < 0) {\n      return 2;\n    }\n    if (((byte)cmdline_tooltype & 2) != 0) goto LAB_000161c3;\n    if (need_save != 0) goto LAB_00016123;\n    pFVar5 = filename_from_str(value);\n    conf_set_filename(conf,0x20,pFVar5);\n    filename_free(pFVar5);\n    iVar7 = strcmp(p,"-4");\n    if ((iVar7 == 0) || (iVar7 = strcmp(p,"-ipv4"), iVar7 == 0)) goto LAB_00017485;\n    iVar7 = strcmp(p,"-6");\n    if (iVar7 == 0) goto LAB_00016c88;\n    iVar7 = 2;\n    iVar8 = strcmp(p,"-ipv6");\njoined_r0x000174dc:\n    if (iVar8 == 0) goto LAB_00016c88;\n  }\n  else {\n    iVar8 = strcmp(p,"-4");\n    if ((iVar8 == 0) || (iVar8 = strcmp(p,"-ipv4"), iVar8 == 0)) {\n      if (need_save < 0) {\n        return 1;\n      }\n      if (need_save != 0) {\nLAB_00017091:\n        cmdline_save_param(p,value,1);\n        return 1;\n      }\nLAB_00017485:\n      conf_set_int(conf,3,1);\n      iVar7 = strcmp(p,"-6");\n      if (iVar7 != 0) {\n        iVar7 = 1;\n        iVar8 = strcmp(p,"-ipv6");\n        goto joined_r0x000174dc;\n      }\n    }\n    else {\n      iVar8 = strcmp(p,"-6");\n      if ((iVar8 != 0) && (iVar8 = strcmp(p,"-ipv6"), iVar8 != 0)) goto LAB_00016ca6;\n      if (need_save < 0) {\n        return 1;\n      }\n      if (need_save != 0) goto LAB_00017091;\n    }\nLAB_00016c88:\n    iVar7 = 1;\n    conf_set_int(conf,3,2);\n  }\nLAB_00016ca6:\n  iVar8 = strcmp(p,"-sercfg");\n  if (iVar8 == 0) {\n    if (value == (char *)0x0) {\n      return -2;\n    }\n    if (need_save < 0) {\n      return 2;\n    }\n    if (((byte)cmdline_tooltype & 3) != 0) goto LAB_000161c3;\n    if (need_save != 0) {\nLAB_00016723:\n      cmdline_save_param(p,value,1);\n      return 2;\n    }\n    iVar7 = conf_get_int(conf,2);\n    pcVar2 = value;\n    if (iVar7 != 4) {\n      cmdline_error("the -sercfg option can only be used with the serial protocol");\n    }\n    for (; *pcVar2 != '\0'; pcVar2 = pcVar2 + iVar8 + iVar7) {\n      pcVar4 = strchr(pcVar2,0x2c);\n      if (pcVar4 == (char *)0x0) {\n        uVar9 = 0xffffffff;\n        iVar7 = 0;\n        pcVar4 = pcVar2;\n        do {\n          if (uVar9 == 0) break;\n          uVar9 = uVar9 - 1;\n          cVar1 = *pcVar4;\n          pcVar4 = pcVar4 + (uint)bVar18 * -2 + 1;\n        } while (cVar1 != '\0');\n        iVar8 = ~uVar9 - 1;\n      }\n      else {\n        *pcVar4 = '\0';\n        iVar7 = 1;\n        iVar8 = (int)pcVar4 - (int)pcVar2;\n      }\n      if (iVar8 == 1) {\n        iVar6 = (int)*pcVar2;\n        switch(iVar6 - 0x31U & 0xff) {\n        case 0:\n        case 1:\n          conf_set_int(conf,0x3c,(iVar6 + -0x30) * 2);\n          break;\n        default:\n          cmdline_error("Unrecognised suboption \"-sercfg %c\"");\n          break;\n        case 4:\n        case 5:\n        case 6:\n        case 7:\n        case 8:\n          conf_set_int(conf,0x3b,iVar6 + -0x30);\n          break;\n        case 0x13:\n          conf_set_int(conf,0x3e,3);\n          break;\n        case 0x1d:\n          conf_set_int(conf,0x3e,0);\n          break;\n        case 0x21:\n          conf_set_int(conf,0x3e,2);\n          break;\n        case 0x27:\n          conf_set_int(conf,0x3e,1);\n          break;\n        case 0x34:\n          conf_set_int(conf,0x3d,2);\n          break;\n        case 0x3c:\n          conf_set_int(conf,0x3d,3);\n          break;\n        case 0x3d:\n          conf_set_int(conf,0x3d,0);\n          break;\n        case 0x3e:\n          conf_set_int(conf,0x3d,1);\n          break;\n        case 0x42:\n          conf_set_int(conf,0x3d,4);\n        }\n      }\n      else if ((iVar8 == 3) && (iVar6 = strncmp(pcVar2,"1.5",3), iVar6 == 0)) {\n        conf_set_int(conf,0x3c,3);\n      }\n      else {\n        lVar3 = strtol(pcVar2,(char **)0x0,10);\n        if (lVar3 == 0) {\n          cmdline_error("Unrecognised suboption \"-sercfg %s\"");\n        }\n        else {\n          conf_set_int(conf,0x3a,lVar3);\n        }\n      }\n    }\n    iVar7 = strcmp(p,"-sessionlog");\n    if (iVar7 == 0) {\n      if (((byte)cmdline_tooltype & 1) != 0) goto LAB_000161c3;\n      goto LAB_0001722b;\n    }\n    iVar7 = strcmp(p,"-sshlog");\n    if (iVar7 != 0) goto LAB_000173ff;\nLAB_000173c4:\n    if (((byte)cmdline_tooltype & 2) != 0) goto LAB_000161c3;\n    if (need_save != 0) {\nLAB_00016123:\n      cmdline_save_param(p,value,0);\n      return 2;\n    }\n  }\n  else {\n    iVar8 = strcmp(p,"-sessionlog");\n    if (iVar8 != 0) {\n      iVar8 = strcmp(p,"-sshlog");\n      if (iVar8 != 0) goto LAB_00017404;\nLAB_000173b1:\n      if (value == (char *)0x0) {\n        return -2;\n      }\n      if (need_save < 0) {\n        return 2;\n      }\n      goto LAB_000173c4;\n    }\n    if (value == (char *)0x0) {\n      return -2;\n    }\n    if (need_save < 0) {\n      return 2;\n    }\n    if (((byte)cmdline_tooltype & 1) != 0) goto LAB_000161c3;\n    if (need_save != 0) goto LAB_00016123;\nLAB_0001722b:\n    pFVar5 = filename_from_str(value);\n    conf_set_filename(conf,0x77,pFVar5);\n    conf_set_int(conf,0x78,2);\n    filename_free(pFVar5);\n    iVar7 = strcmp(p,"-sshlog");\n    if (iVar7 != 0) {\nLAB_000173ff:\n      iVar7 = 2;\nLAB_00017404:\n      iVar8 = strcmp(p,"-sshrawlog");\n      if (iVar8 != 0) {\n        iVar8 = strcmp(p,"-proxycmd");\n        if (iVar8 != 0) {\n          return iVar7;\n        }\n        if (value == (char *)0x0) {\n          return -2;\n        }\n        if (need_save < 0) {\n          return 2;\n        }\n        if (((byte)cmdline_tooltype & 2) != 0) goto LAB_000161c3;\n        if (need_save != 0) goto LAB_00016123;\n        goto LAB_00017304;\n      }\n      goto LAB_000173b1;\n    }\n    if (((byte)cmdline_tooltype & 2) != 0) goto LAB_000161c3;\n  }\n  pFVar5 = filename_from_str(value);\n  conf_set_filename(conf,0x77,pFVar5);\n  iVar7 = strcmp(p,"-sshlog");\n  conf_set_int(conf,0x78,4 - (uint)(iVar7 == 0));\n  filename_free(pFVar5);\n  iVar7 = strcmp(p,"-proxycmd");\n  if (iVar7 != 0) {\n    return 2;\n  }\n  if (((byte)cmdline_tooltype & 2) == 0) {\nLAB_00017304:\n    conf_set_int(conf,0xd,5);\n    conf_set_str(conf,0x12,value);\n    return 2;\n  }\nLAB_000161c3:\n  cmdline_error("option \"%s\" not available in this tool");\n  return 2;\n}\n\n" comment comment (function_definition "int cmdline_process_param(char *p,char *value,int need_save,Conf *conf)\n\n{\n  char cVar1;\n  char *pcVar2;\n  long lVar3;\n  FILE *__stream;\n  char *pcVar4;\n  Filename *pFVar5;\n  int iVar6;\n  int iVar7;\n  int iVar8;\n  uint uVar9;\n  char *pcVar10;\n  byte *pbVar11;\n  byte *pbVar12;\n  bool bVar13;\n  bool bVar14;\n  undefined1 uVar15;\n  bool bVar16;\n  undefined1 uVar17;\n  byte bVar18;\n  undefined1 auStack_2c [8];\n  size_t local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  bVar18 = 0;\n  iVar7 = 6;\n  uStack_14 = 0x15b6e;\n  bVar13 = &stack0xfffffff0 < (undefined1 *)0x1c;\n  bVar16 = &stack0x00000000 == (undefined1 *)0x2c;\n  pbVar11 = (byte *)p;\n  pbVar12 = (byte *)"-load";\n  do {\n    if (iVar7 == 0) break;\n    iVar7 = iVar7 + -1;\n    bVar13 = *pbVar11 < *pbVar12;\n    bVar16 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + 1;\n    pbVar12 = pbVar12 + 1;\n  } while (bVar16);\n  bVar14 = false;\n  bVar13 = (!bVar13 && !bVar16) == bVar13;\n  if (bVar13) {\n    if (value == (char *)0x0) {\n      return -2;\n    }\n    if (need_save < 0) {\n      return 2;\n    }\n    do_defaults(value,conf);\n    loaded_session = 1;\n    cmdline_session_name = dupstr(value);\n    return 2;\n  }\n  iVar7 = 5;\n  pbVar11 = (byte *)p;\n  pbVar12 = &DAT_0004b0b5;\n  do {\n    if (iVar7 == 0) break;\n    iVar7 = iVar7 + -1;\n    bVar14 = *pbVar11 < *pbVar12;\n    bVar13 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + 1;\n    pbVar12 = pbVar12 + 1;\n  } while (bVar13);\n  bVar16 = false;\n  bVar13 = (!bVar14 && !bVar13) == bVar14;\n  if (bVar13) {\n    if (need_save < 0) {\n      return 1;\n    }\n    if (((byte)cmdline_tooltype & 3) == 0) {\n      if (need_save == 0) {\n        default_protocol = 3;\n        default_port = 0x16;\n        iVar7 = 3;\nLAB_00015c0d:\n        conf_set_int(conf,2,iVar7);\n        conf_set_int(conf,1,default_port);\n        return 1;\n      }\n      goto LAB_00015c78;\n    }\n    goto LAB_00015d50;\n  }\n  iVar7 = 8;\n  pbVar11 = (byte *)p;\n  pbVar12 = (byte *)"-telnet";\n  do {\n    if (iVar7 == 0) break;\n    iVar7 = iVar7 + -1;\n    bVar16 = *pbVar11 < *pbVar12;\n    bVar13 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + 1;\n    pbVar12 = pbVar12 + 1;\n  } while (bVar13);\n  bVar14 = false;\n  bVar13 = (!bVar16 && !bVar13) == bVar16;\n  if (bVar13) {\n    if (need_save < 0) {\n      return 1;\n    }\n    if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\n    if (need_save == 0) {\n      default_protocol = 1;\n      default_port = 0x17;\n      iVar7 = 1;\n      goto LAB_00015c0d;\n    }\n    goto LAB_00015c78;\n  }\n  iVar7 = 8;\n  pbVar11 = (byte *)p;\n  pbVar12 = (byte *)"-rlogin";\n  do {\n    if (iVar7 == 0) break;\n    iVar7 = iVar7 + -1;\n    bVar14 = *pbVar11 < *pbVar12;\n    bVar13 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + 1;\n    pbVar12 = pbVar12 + 1;\n  } while (bVar13);\n  bVar16 = false;\n  bVar13 = (!bVar14 && !bVar13) == bVar14;\n  if (bVar13) {\n    if (need_save < 0) {\n      return 1;\n    }\n    if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\n    if (need_save == 0) {\n      default_protocol = 2;\n      default_port = 0x201;\n      iVar7 = 2;\n      goto LAB_00015c0d;\n    }\n    goto LAB_00015c78;\n  }\n  iVar7 = 5;\n  pbVar11 = (byte *)p;\n  pbVar12 = &DAT_0004b0ca;\n  do {\n    if (iVar7 == 0) break;\n    iVar7 = iVar7 + -1;\n    bVar16 = *pbVar11 < *pbVar12;\n    bVar13 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + 1;\n    pbVar12 = pbVar12 + 1;\n  } while (bVar13);\n  bVar14 = false;\n  bVar13 = (!bVar16 && !bVar13) == bVar16;\n  if (bVar13) {\n    if (need_save < 0) {\n      return 1;\n    }\n    if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\n    if (need_save != 0) goto LAB_00015c78;\n    uVar15 = auStack_2c < (undefined1 *)0x4;\n    uVar17 = &stack0x00000000 == (undefined1 *)0x30;\n    default_protocol = 0;\n    conf_set_int(conf,2,0);\n    iVar7 = 8;\n    pbVar11 = (byte *)p;\n    pbVar12 = (byte *)"-serial";\n    do {\n      if (iVar7 == 0) break;\n      iVar7 = iVar7 + -1;\n      uVar15 = *pbVar11 < *pbVar12;\n      uVar17 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    } while ((bool)uVar17);\n    bVar13 = false;\n    bVar16 = (!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15;\n    if (bVar16) {\n      if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\n      goto LAB_00015dd0;\n    }\n    iVar7 = 3;\n    pbVar11 = (byte *)p;\n    pbVar12 = &DAT_0004b0d7;\n    do {\n      if (iVar7 == 0) break;\n      iVar7 = iVar7 + -1;\n      bVar13 = *pbVar11 < *pbVar12;\n      bVar16 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    } while (bVar16);\n    bVar13 = (!bVar13 && !bVar16) == bVar13;\n    if (bVar13) goto LAB_00015e28;\nLAB_00015e31:\n    iVar7 = 1;\n  }\n  else {\n    iVar7 = 8;\n    pbVar11 = (byte *)p;\n    pbVar12 = (byte *)"-serial";\n    do {\n      if (iVar7 == 0) break;\n      iVar7 = iVar7 + -1;\n      bVar14 = *pbVar11 < *pbVar12;\n      bVar13 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + 1;\n      pbVar12 = pbVar12 + 1;\n    } while (bVar13);\n    bVar16 = false;\n    bVar13 = (!bVar14 && !bVar13) == bVar14;\n    if (bVar13) {\n      if (need_save < 0) {\n        return 1;\n      }\n      if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\n      if (need_save != 0) goto LAB_00015c78;\nLAB_00015dd0:\n      default_protocol = 4;\n      conf_set_int(conf,2,4);\n      pcVar2 = conf_get_str(conf,0);\n      uVar15 = (undefined1 *)0xfffffff3 < &stack0xffffffc4;\n      uVar17 = &stack0x00000000 == (undefined1 *)0x30;\n      conf_set_str(conf,0x39,pcVar2);\n      iVar7 = 3;\n      pbVar11 = (byte *)p;\n      pbVar12 = &DAT_0004b0d7;\n      do {\n        if (iVar7 == 0) break;\n        iVar7 = iVar7 + -1;\n        uVar15 = *pbVar11 < *pbVar12;\n        uVar17 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n        pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n      } while ((bool)uVar17);\n      bVar13 = (!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15;\n      if (bVar13) goto LAB_00015e28;\n      goto LAB_00015e31;\n    }\n    iVar7 = 3;\n    pbVar11 = (byte *)p;\n    pbVar12 = &DAT_0004b0d7;\n    do {\n      if (iVar7 == 0) break;\n      iVar7 = iVar7 + -1;\n      bVar16 = *pbVar11 < *pbVar12;\n      bVar13 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + 1;\n      pbVar12 = pbVar12 + 1;\n    } while (bVar13);\n    if ((!bVar16 && !bVar13) == bVar16) {\n      if (need_save < 0) {\n        return 1;\n      }\nLAB_00015e28:\n      flags = flags | 1;\n      bVar13 = flags == 0;\n      goto LAB_00015e31;\n    }\n    iVar7 = 0;\n    bVar13 = true;\n  }\n  bVar16 = false;\n  iVar8 = 3;\n  pbVar11 = (byte *)p;\n  pbVar12 = (byte *)0x53a29;\n  do {\n    if (iVar8 == 0) break;\n    iVar8 = iVar8 + -1;\n    bVar16 = *pbVar11 < *pbVar12;\n    bVar13 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n    pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n  } while (bVar13);\n  bVar14 = false;\n  bVar13 = (!bVar16 && !bVar13) == bVar16;\n  if (bVar13) {\n    if (value == (char *)0x0) {\n      return -2;\n    }\n    if (need_save < 0) {\n      return 2;\n    }\n    if (((byte)cmdline_tooltype & 2) != 0) goto LAB_000161c3;\n    if (need_save != 0) goto LAB_00016123;\n    uVar15 = auStack_2c < (undefined1 *)0x4;\n    uVar17 = &stack0x00000000 == (undefined1 *)0x30;\n    conf_set_str(conf,0x34,value);\n    iVar7 = 9;\n    pbVar11 = (byte *)p;\n    pbVar12 = (byte *)"-loghost";\n    do {\n      if (iVar7 == 0) break;\n      iVar7 = iVar7 + -1;\n      uVar15 = *pbVar11 < *pbVar12;\n      uVar17 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    } while ((bool)uVar17);\n    bVar13 = false;\n    bVar16 = (!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15;\n    if (bVar16) {\n      if (((byte)cmdline_tooltype & 2) != 0) goto LAB_000161c3;\n      goto LAB_00015ec5;\n    }\n    iVar7 = 9;\n    pbVar11 = (byte *)p;\n    pbVar12 = (byte *)"-hostkey";\n    do {\n      if (iVar7 == 0) break;\n      iVar7 = iVar7 + -1;\n      bVar13 = *pbVar11 < *pbVar12;\n      bVar16 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    } while (bVar16);\n    bVar13 = (!bVar13 && !bVar16) == bVar13;\n    if (bVar13) goto LAB_00016218;\nLAB_00016248:\n    iVar7 = 2;\nLAB_0001624d:\n    bVar16 = false;\n    iVar8 = 3;\n    pbVar11 = (byte *)p;\n    pbVar12 = &DAT_0004b0ec;\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar16 = *pbVar11 < *pbVar12;\n      bVar13 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    } while (bVar13);\n    bVar13 = (!bVar16 && !bVar13) == bVar16;\n    if (bVar13) {\nLAB_00016647:\n      if (value == (char *)0x0) {\n        return -2;\n      }\n      if (need_save < 0) {\n        return 2;\n      }\n      if (((byte)cmdline_tooltype & 3) != 0) goto LAB_000161c3;\n      bVar13 = need_save == 0;\n      if (!bVar13) goto LAB_00016123;\n      goto LAB_00015f8f;\n    }\nLAB_0001626b:\n    bVar16 = false;\n    iVar8 = 3;\n    pbVar11 = (byte *)p;\n    pbVar12 = &DAT_0004b0ef;\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar16 = *pbVar11 < *pbVar12;\n      bVar13 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    } while (bVar13);\n    bVar14 = false;\n    bVar13 = (!bVar16 && !bVar13) == bVar16;\n    if (bVar13) goto LAB_00016647;\n    iVar8 = 3;\n    pbVar11 = (byte *)p;\n    pbVar12 = (byte *)0x53a3b;\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar14 = *pbVar11 < *pbVar12;\n      bVar13 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    } while (bVar13);\n    bVar16 = false;\n    bVar13 = (!bVar14 && !bVar13) == bVar14;\n    if (bVar13) goto LAB_00016647;\n    iVar8 = 4;\n    pbVar11 = (byte *)p;\n    pbVar12 = &DAT_0004b0fd;\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar16 = *pbVar11 < *pbVar12;\n      bVar13 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    } while (bVar13);\n    bVar13 = (!bVar16 && !bVar13) == bVar16;\n    if (!bVar13) goto LAB_00016698;\n    if (value == (char *)0x0) {\n      return -2;\n    }\n    if (need_save < 0) {\n      return 2;\n    }\n    if (((byte)cmdline_tooltype & 3) != 0) goto LAB_000161c3;\n    if (need_save != 0) goto LAB_00016123;\nLAB_000162ed:\n    pcVar2 = host_strchr(value,0x3a);\n    if (pcVar2 == (char *)0x0) {\n      cmdline_error("-nc expects argument of form \'host:port\'");\n      return 2;\n    }\n    iVar7 = 2;\n    pcVar4 = dupprintf("%.*s");\n    conf_set_str(conf,0x2e,pcVar4);\n    lVar3 = strtol(pcVar2 + 1,(char **)0x0,10);\n    uVar15 = (undefined1 *)0xfffffff3 < &stack0xffffffc4;\n    uVar17 = &stack0x00000000 == (undefined1 *)0x30;\n    conf_set_int(conf,0x2f,lVar3);\n    safefree(pcVar4);\n    iVar8 = 3;\n    pbVar11 = (byte *)p;\n    pbVar12 = &DAT_0004b101;\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      uVar15 = *pbVar11 < *pbVar12;\n      uVar17 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    } while ((bool)uVar17);\n    bVar13 = (!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15;\n    if (!bVar13) goto LAB_000166e0;\n    if (((byte)cmdline_tooltype & 3) != 0) goto LAB_000161c3;\nLAB_0001639b:\n    iVar7 = 0;\n    pcVar2 = (char *)0x0;\n    __stream = fopen64(value,"r");\n    local_24 = 0;\n    if (__stream == (FILE *)0x0) {\n      cmdline_error("unable to open command file \"%s\"");\n      return 2;\n    }\n    while (iVar8 = fgetc(__stream), iVar8 != -1) {\n      if (iVar7 < (int)local_24) {\n        pcVar2[iVar7] = (char)iVar8;\n      }\n      else {\n        local_24 = iVar7 + 0x200;\n        local_20 = iVar8;\n        pcVar2 = (char *)saferealloc(pcVar2,local_24,1);\n        pcVar2[iVar7] = (char)local_20;\n      }\n      iVar7 = iVar7 + 1;\n    }\n    if (iVar7 < (int)local_24) {\n      pcVar2[iVar7] = '\0';\n    }\n    else {\n      pcVar2 = (char *)saferealloc(pcVar2,iVar7 + 0x200,1);\n      pcVar2[iVar7] = '\0';\n    }\n    iVar7 = 2;\n    fclose(__stream);\n    conf_set_str(conf,0x14,pcVar2);\n    conf_set_str(conf,0x15,"");\n    uVar15 = (undefined1 *)0xfffffff3 < &stack0xffffffc4;\n    uVar17 = &stack0x00000000 == (undefined1 *)0x30;\n    conf_set_int(conf,0x16,1);\n    safefree(pcVar2);\n    iVar8 = 3;\n    pbVar11 = (byte *)p;\n    pbVar12 = &DAT_0004b104;\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      uVar15 = *pbVar11 < *pbVar12;\n      uVar17 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    } while ((bool)uVar17);\n    bVar13 = (!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15;\n    if (!bVar13) goto LAB_00016777;\n    if (((byte)cmdline_tooltype & 2) != 0) goto LAB_000161c3;\nLAB_000164a7:\n    lVar3 = strtol(value,(char **)0x0,10);\n    conf_set_int(conf,1,lVar3);\n    iVar7 = strcmp(p,"-pw");\n    if (iVar7 == 0) {\n      if (((byte)cmdline_tooltype & 2) != 0) goto LAB_000161c3;\nLAB_000164f6:\n      iVar7 = conf_get_int(conf,2);\n      if (iVar7 == 3) {\n        cmdline_password = dupstr(value);\n        uVar9 = 0xffffffff;\n        pcVar2 = value;\n        do {\n          if (uVar9 == 0) break;\n          uVar9 = uVar9 - 1;\n          cVar1 = *pcVar2;\n          pcVar2 = pcVar2 + (uint)bVar18 * -2 + 1;\n        } while (cVar1 != '\0');\n        smemclr(value,~uVar9 - 1);\n      }\n      else {\n        cmdline_error("the -pw option can only be used with the SSH protocol");\n      }\n      iVar7 = strcmp(p,"-agent");\n      if ((iVar7 == 0) || (iVar7 = strcmp(p,"-pagent"), iVar7 == 0)) goto LAB_00015d3a;\n      iVar7 = 2;\n      iVar8 = strcmp(p,"-pageant");\n      if (iVar8 == 0) goto LAB_0001688c;\n    }\n    else {\n      iVar7 = strcmp(p,"-agent");\n      if (iVar7 == 0) {\nLAB_00015d3a:\n        if (((byte)cmdline_tooltype & 2) != 0) goto LAB_00015d50;\n        goto LAB_000168a1;\n      }\n      iVar7 = 2;\n      iVar8 = strcmp(p,"-pagent");\n      if (iVar8 == 0) goto LAB_0001688c;\nLAB_0001685f:\n      iVar8 = strcmp(p,"-pageant");\n      if (iVar8 == 0) goto LAB_00016884;\n    }\n    iVar8 = strcmp(p,"-noagent");\n    if ((iVar8 == 0) || (iVar8 = strcmp(p,"-nopagent"), iVar8 == 0)) {\nLAB_00016e5e:\n      if (need_save < 0) {\n        return 1;\n      }\nLAB_00016e44:\n      if (((byte)cmdline_tooltype & 2) != 0) goto LAB_00015d50;\n      if (need_save != 0) goto LAB_00015c78;\n      goto LAB_000168e1;\n    }\nLAB_000165eb:\n    iVar8 = strcmp(p,"-nopageant");\n    if (iVar8 == 0) goto LAB_00016e5e;\n    iVar8 = strcmp(p,"-A");\n    if (iVar8 != 0) {\n      iVar8 = strcmp(p,"-a");\n      if (iVar8 != 0) goto LAB_00016f0f;\n      if (need_save < 0) {\n        return 1;\n      }\n      goto LAB_0001700b;\n    }\n    if (need_save < 0) {\n      return 1;\n    }\n    if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\n    if (need_save != 0) goto LAB_00015c78;\nLAB_00016921:\n    conf_set_int(conf,0x1d,1);\n    iVar7 = strcmp(p,"-a");\n    if (iVar7 != 0) {\n      iVar7 = 1;\n      iVar8 = strcmp(p,"-X");\n      if (iVar8 == 0) goto LAB_00016f38;\nLAB_00016f97:\n      iVar8 = strcmp(p,"-x");\n      if (iVar8 != 0) goto LAB_0001704f;\n      if (need_save < 0) {\n        return 1;\n      }\nLAB_00016fc4:\n      if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\n      if (need_save != 0) goto LAB_00015c78;\n      goto LAB_000169e4;\n    }\n    if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\nLAB_00016961:\n    conf_set_int(conf,0x1d,0);\n    iVar7 = strcmp(p,"-X");\n    if (iVar7 == 0) {\n      if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\n      goto LAB_000169a1;\n    }\n    iVar7 = 1;\n    iVar8 = strcmp(p,"-x");\n    if (iVar8 == 0) goto LAB_00016fc4;\nLAB_0001704f:\n    iVar8 = strcmp(p,"-t");\n    if (iVar8 == 0) {\n      if (need_save < 0) {\n        return 1;\n      }\n      goto LAB_0001707c;\n    }\nLAB_000177b1:\n    iVar8 = strcmp(p,"-T");\n    if (iVar8 != 0) goto LAB_00017759;\n    if (need_save < 0) {\n      return 1;\n    }\nLAB_0001770d:\n    if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\n    if (need_save != 0) goto LAB_00017091;\nLAB_00016a67:\n    conf_set_int(conf,0x16,1);\n    iVar7 = strcmp(p,"-N");\n    if (iVar7 == 0) {\n      if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\nLAB_00016aa7:\n      conf_set_int(conf,0x2d,1);\n      iVar7 = strcmp(p,"-C");\n      if (iVar7 == 0) {\n        if (((byte)cmdline_tooltype & 2) != 0) goto LAB_00015d50;\n        goto LAB_00016ae7;\n      }\n      iVar7 = 1;\n      iVar8 = strcmp(p,"-1");\n      if (iVar8 != 0) goto LAB_00017647;\nLAB_000175ed:\n      if (((byte)cmdline_tooltype & 2) != 0) goto LAB_00015d50;\n      if (need_save != 0) goto LAB_00015c78;\n      goto LAB_00016b27;\n    }\n    iVar7 = 1;\n    iVar8 = strcmp(p,"-C");\n    if (iVar8 == 0) goto LAB_0001762d;\nLAB_00017679:\n    iVar8 = strcmp(p,"-1");\n    if (iVar8 == 0) {\n      if (need_save < 0) {\n        return 1;\n      }\n      goto LAB_000175ed;\n    }\nLAB_00017647:\n    iVar8 = strcmp(p,"-2");\n    if (iVar8 == 0) {\n      if (need_save < 0) {\n        return 1;\n      }\nLAB_000175ad:\n      if (((byte)cmdline_tooltype & 2) != 0) goto LAB_00015d50;\n      if (need_save != 0) {\nLAB_00015c78:\n        cmdline_save_param(p,value,0);\n        return 1;\n      }\nLAB_00016b67:\n      iVar7 = 1;\n      conf_set_int(conf,0x21,3);\n    }\n  }\n  else {\n    iVar8 = 9;\n    pbVar11 = (byte *)p;\n    pbVar12 = (byte *)"-loghost";\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar14 = *pbVar11 < *pbVar12;\n      bVar13 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    } while (bVar13);\n    bVar16 = false;\n    bVar13 = (!bVar14 && !bVar13) == bVar14;\n    if (!bVar13) {\n      iVar8 = 9;\n      pbVar11 = (byte *)p;\n      pbVar12 = (byte *)"-hostkey";\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar16 = *pbVar11 < *pbVar12;\n        bVar13 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n        pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n      } while (bVar13);\n      bVar13 = (!bVar16 && !bVar13) == bVar16;\n      if (bVar13) {\n        if (value == (char *)0x0) {\n          return -2;\n        }\n        if (need_save < 0) {\n          return 2;\n        }\nLAB_00016218:\n        if (((byte)cmdline_tooltype & 2) != 0) goto LAB_000161c3;\n        if (need_save != 0) goto LAB_00016123;\n        goto LAB_00015f0d;\n      }\n      goto LAB_0001624d;\n    }\n    if (value == (char *)0x0) {\n      return -2;\n    }\n    if (need_save < 0) {\n      return 2;\n    }\n    if (((byte)cmdline_tooltype & 2) != 0) goto LAB_000161c3;\n    if (need_save != 0) goto LAB_00016123;\nLAB_00015ec5:\n    uVar15 = auStack_2c < (undefined1 *)0x4;\n    uVar17 = &stack0x00000000 == (undefined1 *)0x30;\n    conf_set_str(conf,9,value);\n    iVar7 = 9;\n    pbVar11 = (byte *)p;\n    pbVar12 = (byte *)"-hostkey";\n    do {\n      if (iVar7 == 0) break;\n      iVar7 = iVar7 + -1;\n      uVar15 = *pbVar11 < *pbVar12;\n      uVar17 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    } while ((bool)uVar17);\n    bVar13 = (!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15;\n    if (!bVar13) goto LAB_00016248;\n    if (((byte)cmdline_tooltype & 2) != 0) goto LAB_000161c3;\nLAB_00015f0d:\n    pcVar2 = dupstr(value);\n    iVar7 = validate_manual_hostkey(pcVar2);\n    uVar15 = 0;\n    uVar17 = iVar7 == 0;\n    if ((bool)uVar17) {\n      cmdline_error("\'%s\' is not a valid format for a manual host key specification");\n      safefree(pcVar2);\n      return 2;\n    }\n    iVar7 = 2;\n    conf_set_str_str(conf,0xad,pcVar2,"");\n    safefree(pcVar2);\n    iVar8 = 3;\n    pbVar11 = (byte *)p;\n    pbVar12 = &DAT_0004b0ec;\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      uVar15 = *pbVar11 < *pbVar12;\n      uVar17 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    } while ((bool)uVar17);\n    bVar13 = (!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15;\n    if (!bVar13) goto LAB_0001626b;\n    bVar13 = ((byte)cmdline_tooltype & 3) == 0;\n    if (!bVar13) goto LAB_000161c3;\nLAB_00015f8f:\n    bVar16 = false;\n    iVar7 = 3;\n    pbVar11 = (byte *)p;\n    pbVar12 = (byte *)0x53a3b;\n    do {\n      if (iVar7 == 0) break;\n      iVar7 = iVar7 + -1;\n      bVar16 = *pbVar11 < *pbVar12;\n      bVar13 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    } while (bVar13);\n    if ((!bVar16 && !bVar13) == bVar16) {\n      pcVar2 = dupprintf("L%s");\n      pcVar4 = dupstr("D");\n    }\n    else {\n      pcVar2 = host_strchr(value,0x3a);\n      pcVar4 = pcVar2;\n      if (pcVar2 == (char *)0x0) {\n        cmdline_error("-%c expects at least two colons in its argument");\n        return 2;\n      }\n      do {\n        pcVar10 = pcVar4;\n        pcVar4 = pcVar2;\n        pcVar2 = host_strchr(pcVar4 + 1,0x3a);\n      } while (pcVar2 != (char *)0x0);\n      pcVar2 = dupprintf("%c%.*s");\n      pcVar4 = dupstr(pcVar10 + 1);\n    }\n    uVar15 = (undefined1 *)0xffffffef < &stack0xffffffc4;\n    uVar17 = &stack0x00000000 == (undefined1 *)0x2c;\n    iVar7 = 2;\n    conf_set_str_str(conf,0x9b,pcVar2,pcVar4);\n    safefree(pcVar2);\n    safefree(pcVar4);\n    iVar8 = 4;\n    pbVar11 = (byte *)p;\n    pbVar12 = &DAT_0004b0fd;\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      uVar15 = *pbVar11 < *pbVar12;\n      uVar17 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    } while ((bool)uVar17);\n    bVar13 = (!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15;\n    if (bVar13) {\n      if (((byte)cmdline_tooltype & 3) != 0) goto LAB_000161c3;\n      goto LAB_000162ed;\n    }\nLAB_00016698:\n    bVar16 = false;\n    iVar8 = 3;\n    pbVar11 = (byte *)p;\n    pbVar12 = &DAT_0004b101;\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar16 = *pbVar11 < *pbVar12;\n      bVar13 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    } while (bVar13);\n    bVar13 = (!bVar16 && !bVar13) == bVar16;\n    if (bVar13) {\n      if (value == (char *)0x0) {\n        return -2;\n      }\n      if (need_save < 0) {\n        return 2;\n      }\n      if (((byte)cmdline_tooltype & 3) != 0) goto LAB_000161c3;\n      if (need_save != 0) goto LAB_00016123;\n      goto LAB_0001639b;\n    }\nLAB_000166e0:\n    bVar16 = false;\n    iVar8 = 3;\n    pbVar11 = (byte *)p;\n    pbVar12 = &DAT_0004b104;\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar16 = *pbVar11 < *pbVar12;\n      bVar13 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    } while (bVar13);\n    bVar13 = (!bVar16 && !bVar13) == bVar16;\n    if (bVar13) {\n      if (value == (char *)0x0) {\n        return -2;\n      }\n      if (need_save < 0) {\n        return 2;\n      }\n      if (((byte)cmdline_tooltype & 2) != 0) goto LAB_000161c3;\n      if (need_save != 0) goto LAB_00016723;\n      goto LAB_000164a7;\n    }\nLAB_00016777:\n    bVar16 = false;\n    iVar8 = 4;\n    pbVar11 = (byte *)p;\n    pbVar12 = &DAT_0004b107;\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar16 = *pbVar11 < *pbVar12;\n      bVar13 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    } while (bVar13);\n    if ((!bVar16 && !bVar13) == bVar16) {\n      if (value == (char *)0x0) {\n        return -2;\n      }\n      if (need_save < 0) {\n        return 2;\n      }\n      if (((byte)cmdline_tooltype & 2) != 0) goto LAB_000161c3;\n      if (need_save != 0) goto LAB_00016723;\n      goto LAB_000164f6;\n    }\n    iVar8 = strcmp(p,"-agent");\n    if ((iVar8 != 0) && (iVar8 = strcmp(p,"-pagent"), iVar8 != 0)) goto LAB_0001685f;\nLAB_00016884:\n    if (need_save < 0) {\n      return 1;\n    }\nLAB_0001688c:\n    if (((byte)cmdline_tooltype & 2) != 0) goto LAB_00015d50;\n    if (need_save != 0) goto LAB_00015c78;\nLAB_000168a1:\n    conf_set_int(conf,0x1c,1);\n    iVar7 = strcmp(p,"-noagent");\n    if (iVar7 != 0) {\n      iVar7 = 1;\n      iVar8 = strcmp(p,"-nopagent");\n      if (iVar8 != 0) goto LAB_000165eb;\n      goto LAB_00016e44;\n    }\n    if (((byte)cmdline_tooltype & 2) != 0) goto LAB_00015d50;\nLAB_000168e1:\n    conf_set_int(conf,0x1c,0);\n    iVar7 = strcmp(p,"-A");\n    if (iVar7 == 0) {\n      if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\n      goto LAB_00016921;\n    }\n    iVar7 = 1;\n    iVar8 = strcmp(p,"-a");\n    if (iVar8 == 0) {\nLAB_0001700b:\n      if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\n      if (need_save != 0) goto LAB_00015c78;\n      goto LAB_00016961;\n    }\nLAB_00016f0f:\n    iVar8 = strcmp(p,"-X");\n    if (iVar8 != 0) goto LAB_00016f97;\n    if (need_save < 0) {\n      return 1;\n    }\nLAB_00016f38:\n    if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\n    if (need_save != 0) goto LAB_00015c78;\nLAB_000169a1:\n    conf_set_int(conf,0x95,1);\n    iVar7 = strcmp(p,"-x");\n    if (iVar7 == 0) {\n      if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\nLAB_000169e4:\n      conf_set_int(conf,0x95,0);\n      iVar7 = strcmp(p,"-t");\n      if (iVar7 == 0) {\n        if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\n        goto LAB_00016a27;\n      }\n      iVar7 = 1;\n      iVar8 = strcmp(p,"-T");\n      if (iVar8 == 0) goto LAB_0001770d;\nLAB_00017759:\n      iVar8 = strcmp(p,"-N");\n      if (iVar8 != 0) goto LAB_00017727;\n      if (need_save < 0) {\n        return 1;\n      }\nLAB_000176cd:\n      if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\n      if (need_save != 0) goto LAB_00015c78;\n      goto LAB_00016aa7;\n    }\n    iVar7 = 1;\n    iVar8 = strcmp(p,"-t");\n    if (iVar8 != 0) goto LAB_000177b1;\nLAB_0001707c:\n    if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\n    if (need_save != 0) goto LAB_00017091;\nLAB_00016a27:\n    conf_set_int(conf,0x16,0);\n    iVar7 = strcmp(p,"-T");\n    if (iVar7 == 0) {\n      if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\n      goto LAB_00016a67;\n    }\n    iVar7 = 1;\n    iVar8 = strcmp(p,"-N");\n    if (iVar8 == 0) goto LAB_000176cd;\nLAB_00017727:\n    iVar8 = strcmp(p,"-C");\n    if (iVar8 != 0) goto LAB_00017679;\n    if (need_save < 0) {\n      return 1;\n    }\nLAB_0001762d:\n    if (((byte)cmdline_tooltype & 2) != 0) goto LAB_00015d50;\n    if (need_save != 0) goto LAB_00015c78;\nLAB_00016ae7:\n    conf_set_int(conf,0x17,1);\n    iVar7 = strcmp(p,"-1");\n    if (iVar7 == 0) {\n      if (((byte)cmdline_tooltype & 2) != 0) goto LAB_00015d50;\nLAB_00016b27:\n      conf_set_int(conf,0x21,0);\n      iVar7 = strcmp(p,"-2");\n      if (iVar7 == 0) {\n        if (((byte)cmdline_tooltype & 2) != 0) {\nLAB_00015d50:\n          cmdline_error("option \"%s\" not available in this tool");\n          return 1;\n        }\n        goto LAB_00016b67;\n      }\n    }\n    else {\n      iVar7 = strcmp(p,"-2");\n      if (iVar7 == 0) goto LAB_000175ad;\n    }\n    iVar7 = 1;\n  }\n  iVar8 = strcmp(p,"-i");\n  if (iVar8 == 0) {\n    if (value == (char *)0x0) {\n      return -2;\n    }\n    if (need_save < 0) {\n      return 2;\n    }\n    if (((byte)cmdline_tooltype & 2) != 0) goto LAB_000161c3;\n    if (need_save != 0) goto LAB_00016123;\n    pFVar5 = filename_from_str(value);\n    conf_set_filename(conf,0x20,pFVar5);\n    filename_free(pFVar5);\n    iVar7 = strcmp(p,"-4");\n    if ((iVar7 == 0) || (iVar7 = strcmp(p,"-ipv4"), iVar7 == 0)) goto LAB_00017485;\n    iVar7 = strcmp(p,"-6");\n    if (iVar7 == 0) goto LAB_00016c88;\n    iVar7 = 2;\n    iVar8 = strcmp(p,"-ipv6");\njoined_r0x000174dc:\n    if (iVar8 == 0) goto LAB_00016c88;\n  }\n  else {\n    iVar8 = strcmp(p,"-4");\n    if ((iVar8 == 0) || (iVar8 = strcmp(p,"-ipv4"), iVar8 == 0)) {\n      if (need_save < 0) {\n        return 1;\n      }\n      if (need_save != 0) {\nLAB_00017091:\n        cmdline_save_param(p,value,1);\n        return 1;\n      }\nLAB_00017485:\n      conf_set_int(conf,3,1);\n      iVar7 = strcmp(p,"-6");\n      if (iVar7 != 0) {\n        iVar7 = 1;\n        iVar8 = strcmp(p,"-ipv6");\n        goto joined_r0x000174dc;\n      }\n    }\n    else {\n      iVar8 = strcmp(p,"-6");\n      if ((iVar8 != 0) && (iVar8 = strcmp(p,"-ipv6"), iVar8 != 0)) goto LAB_00016ca6;\n      if (need_save < 0) {\n        return 1;\n      }\n      if (need_save != 0) goto LAB_00017091;\n    }\nLAB_00016c88:\n    iVar7 = 1;\n    conf_set_int(conf,3,2);\n  }\nLAB_00016ca6:\n  iVar8 = strcmp(p,"-sercfg");\n  if (iVar8 == 0) {\n    if (value == (char *)0x0) {\n      return -2;\n    }\n    if (need_save < 0) {\n      return 2;\n    }\n    if (((byte)cmdline_tooltype & 3) != 0) goto LAB_000161c3;\n    if (need_save != 0) {\nLAB_00016723:\n      cmdline_save_param(p,value,1);\n      return 2;\n    }\n    iVar7 = conf_get_int(conf,2);\n    pcVar2 = value;\n    if (iVar7 != 4) {\n      cmdline_error("the -sercfg option can only be used with the serial protocol");\n    }\n    for (; *pcVar2 != '\0'; pcVar2 = pcVar2 + iVar8 + iVar7) {\n      pcVar4 = strchr(pcVar2,0x2c);\n      if (pcVar4 == (char *)0x0) {\n        uVar9 = 0xffffffff;\n        iVar7 = 0;\n        pcVar4 = pcVar2;\n        do {\n          if (uVar9 == 0) break;\n          uVar9 = uVar9 - 1;\n          cVar1 = *pcVar4;\n          pcVar4 = pcVar4 + (uint)bVar18 * -2 + 1;\n        } while (cVar1 != '\0');\n        iVar8 = ~uVar9 - 1;\n      }\n      else {\n        *pcVar4 = '\0';\n        iVar7 = 1;\n        iVar8 = (int)pcVar4 - (int)pcVar2;\n      }\n      if (iVar8 == 1) {\n        iVar6 = (int)*pcVar2;\n        switch(iVar6 - 0x31U & 0xff) {\n        case 0:\n        case 1:\n          conf_set_int(conf,0x3c,(iVar6 + -0x30) * 2);\n          break;\n        default:\n          cmdline_error("Unrecognised suboption \"-sercfg %c\"");\n          break;\n        case 4:\n        case 5:\n        case 6:\n        case 7:\n        case 8:\n          conf_set_int(conf,0x3b,iVar6 + -0x30);\n          break;\n        case 0x13:\n          conf_set_int(conf,0x3e,3);\n          break;\n        case 0x1d:\n          conf_set_int(conf,0x3e,0);\n          break;\n        case 0x21:\n          conf_set_int(conf,0x3e,2);\n          break;\n        case 0x27:\n          conf_set_int(conf,0x3e,1);\n          break;\n        case 0x34:\n          conf_set_int(conf,0x3d,2);\n          break;\n        case 0x3c:\n          conf_set_int(conf,0x3d,3);\n          break;\n        case 0x3d:\n          conf_set_int(conf,0x3d,0);\n          break;\n        case 0x3e:\n          conf_set_int(conf,0x3d,1);\n          break;\n        case 0x42:\n          conf_set_int(conf,0x3d,4);\n        }\n      }\n      else if ((iVar8 == 3) && (iVar6 = strncmp(pcVar2,"1.5",3), iVar6 == 0)) {\n        conf_set_int(conf,0x3c,3);\n      }\n      else {\n        lVar3 = strtol(pcVar2,(char **)0x0,10);\n        if (lVar3 == 0) {\n          cmdline_error("Unrecognised suboption \"-sercfg %s\"");\n        }\n        else {\n          conf_set_int(conf,0x3a,lVar3);\n        }\n      }\n    }\n    iVar7 = strcmp(p,"-sessionlog");\n    if (iVar7 == 0) {\n      if (((byte)cmdline_tooltype & 1) != 0) goto LAB_000161c3;\n      goto LAB_0001722b;\n    }\n    iVar7 = strcmp(p,"-sshlog");\n    if (iVar7 != 0) goto LAB_000173ff;\nLAB_000173c4:\n    if (((byte)cmdline_tooltype & 2) != 0) goto LAB_000161c3;\n    if (need_save != 0) {\nLAB_00016123:\n      cmdline_save_param(p,value,0);\n      return 2;\n    }\n  }\n  else {\n    iVar8 = strcmp(p,"-sessionlog");\n    if (iVar8 != 0) {\n      iVar8 = strcmp(p,"-sshlog");\n      if (iVar8 != 0) goto LAB_00017404;\nLAB_000173b1:\n      if (value == (char *)0x0) {\n        return -2;\n      }\n      if (need_save < 0) {\n        return 2;\n      }\n      goto LAB_000173c4;\n    }\n    if (value == (char *)0x0) {\n      return -2;\n    }\n    if (need_save < 0) {\n      return 2;\n    }\n    if (((byte)cmdline_tooltype & 1) != 0) goto LAB_000161c3;\n    if (need_save != 0) goto LAB_00016123;\nLAB_0001722b:\n    pFVar5 = filename_from_str(value);\n    conf_set_filename(conf,0x77,pFVar5);\n    conf_set_int(conf,0x78,2);\n    filename_free(pFVar5);\n    iVar7 = strcmp(p,"-sshlog");\n    if (iVar7 != 0) {\nLAB_000173ff:\n      iVar7 = 2;\nLAB_00017404:\n      iVar8 = strcmp(p,"-sshrawlog");\n      if (iVar8 != 0) {\n        iVar8 = strcmp(p,"-proxycmd");\n        if (iVar8 != 0) {\n          return iVar7;\n        }\n        if (value == (char *)0x0) {\n          return -2;\n        }\n        if (need_save < 0) {\n          return 2;\n        }\n        if (((byte)cmdline_tooltype & 2) != 0) goto LAB_000161c3;\n        if (need_save != 0) goto LAB_00016123;\n        goto LAB_00017304;\n      }\n      goto LAB_000173b1;\n    }\n    if (((byte)cmdline_tooltype & 2) != 0) goto LAB_000161c3;\n  }\n  pFVar5 = filename_from_str(value);\n  conf_set_filename(conf,0x77,pFVar5);\n  iVar7 = strcmp(p,"-sshlog");\n  conf_set_int(conf,0x78,4 - (uint)(iVar7 == 0));\n  filename_free(pFVar5);\n  iVar7 = strcmp(p,"-proxycmd");\n  if (iVar7 != 0) {\n    return 2;\n  }\n  if (((byte)cmdline_tooltype & 2) == 0) {\nLAB_00017304:\n    conf_set_int(conf,0xd,5);\n    conf_set_str(conf,0x12,value);\n    return 2;\n  }\nLAB_000161c3:\n  cmdline_error("option \"%s\" not available in this tool");\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  char *pcVar2;\n  long lVar3;\n  FILE *__stream;\n  char *pcVar4;\n  Filename *pFVar5;\n  int iVar6;\n  int iVar7;\n  int iVar8;\n  uint uVar9;\n  char *pcVar10;\n  byte *pbVar11;\n  byte *pbVar12;\n  bool bVar13;\n  bool bVar14;\n  undefined1 uVar15;\n  bool bVar16;\n  undefined1 uVar17;\n  byte bVar18;\n  undefined1 auStack_2c [8];\n  size_t local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  bVar18 = 0;\n  iVar7 = 6;\n  uStack_14 = 0x15b6e;\n  bVar13 = &stack0xfffffff0 < (undefined1 *)0x1c;\n  bVar16 = &stack0x00000000 == (undefined1 *)0x2c;\n  pbVar11 = (byte *)p;\n  pbVar12 = (byte *)"-load";\n  do {\n    if (iVar7 == 0) break;\n    iVar7 = iVar7 + -1;\n    bVar13 = *pbVar11 < *pbVar12;\n    bVar16 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + 1;\n    pbVar12 = pbVar12 + 1;\n  } while (bVar16);\n  bVar14 = false;\n  bVar13 = (!bVar13 && !bVar16) == bVar13;\n  if (bVar13) {\n    if (value == (char *)0x0) {\n      return -2;\n    }\n    if (need_save < 0) {\n      return 2;\n    }\n    do_defaults(value,conf);\n    loaded_session = 1;\n    cmdline_session_name = dupstr(value);\n    return 2;\n  }\n  iVar7 = 5;\n  pbVar11 = (byte *)p;\n  pbVar12 = &DAT_0004b0b5;\n  do {\n    if (iVar7 == 0) break;\n    iVar7 = iVar7 + -1;\n    bVar14 = *pbVar11 < *pbVar12;\n    bVar13 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + 1;\n    pbVar12 = pbVar12 + 1;\n  } while (bVar13);\n  bVar16 = false;\n  bVar13 = (!bVar14 && !bVar13) == bVar14;\n  if (bVar13) {\n    if (need_save < 0) {\n      return 1;\n    }\n    if (((byte)cmdline_tooltype & 3) == 0) {\n      if (need_save == 0) {\n        default_protocol = 3;\n        default_port = 0x16;\n        iVar7 = 3;\nLAB_00015c0d:\n        conf_set_int(conf,2,iVar7);\n        conf_set_int(conf,1,default_port);\n        return 1;\n      }\n      goto LAB_00015c78;\n    }\n    goto LAB_00015d50;\n  }\n  iVar7 = 8;\n  pbVar11 = (byte *)p;\n  pbVar12 = (byte *)"-telnet";\n  do {\n    if (iVar7 == 0) break;\n    iVar7 = iVar7 + -1;\n    bVar16 = *pbVar11 < *pbVar12;\n    bVar13 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + 1;\n    pbVar12 = pbVar12 + 1;\n  } while (bVar13);\n  bVar14 = false;\n  bVar13 = (!bVar16 && !bVar13) == bVar16;\n  if (bVar13) {\n    if (need_save < 0) {\n      return 1;\n    }\n    if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\n    if (need_save == 0) {\n      default_protocol = 1;\n      default_port = 0x17;\n      iVar7 = 1;\n      goto LAB_00015c0d;\n    }\n    goto LAB_00015c78;\n  }\n  iVar7 = 8;\n  pbVar11 = (byte *)p;\n  pbVar12 = (byte *)"-rlogin";\n  do {\n    if (iVar7 == 0) break;\n    iVar7 = iVar7 + -1;\n    bVar14 = *pbVar11 < *pbVar12;\n    bVar13 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + 1;\n    pbVar12 = pbVar12 + 1;\n  } while (bVar13);\n  bVar16 = false;\n  bVar13 = (!bVar14 && !bVar13) == bVar14;\n  if (bVar13) {\n    if (need_save < 0) {\n      return 1;\n    }\n    if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\n    if (need_save == 0) {\n      default_protocol = 2;\n      default_port = 0x201;\n      iVar7 = 2;\n      goto LAB_00015c0d;\n    }\n    goto LAB_00015c78;\n  }\n  iVar7 = 5;\n  pbVar11 = (byte *)p;\n  pbVar12 = &DAT_0004b0ca;\n  do {\n    if (iVar7 == 0) break;\n    iVar7 = iVar7 + -1;\n    bVar16 = *pbVar11 < *pbVar12;\n    bVar13 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + 1;\n    pbVar12 = pbVar12 + 1;\n  } while (bVar13);\n  bVar14 = false;\n  bVar13 = (!bVar16 && !bVar13) == bVar16;\n  if (bVar13) {\n    if (need_save < 0) {\n      return 1;\n    }\n    if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\n    if (need_save != 0) goto LAB_00015c78;\n    uVar15 = auStack_2c < (undefined1 *)0x4;\n    uVar17 = &stack0x00000000 == (undefined1 *)0x30;\n    default_protocol = 0;\n    conf_set_int(conf,2,0);\n    iVar7 = 8;\n    pbVar11 = (byte *)p;\n    pbVar12 = (byte *)"-serial";\n    do {\n      if (iVar7 == 0) break;\n      iVar7 = iVar7 + -1;\n      uVar15 = *pbVar11 < *pbVar12;\n      uVar17 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    } while ((bool)uVar17);\n    bVar13 = false;\n    bVar16 = (!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15;\n    if (bVar16) {\n      if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\n      goto LAB_00015dd0;\n    }\n    iVar7 = 3;\n    pbVar11 = (byte *)p;\n    pbVar12 = &DAT_0004b0d7;\n    do {\n      if (iVar7 == 0) break;\n      iVar7 = iVar7 + -1;\n      bVar13 = *pbVar11 < *pbVar12;\n      bVar16 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    } while (bVar16);\n    bVar13 = (!bVar13 && !bVar16) == bVar13;\n    if (bVar13) goto LAB_00015e28;\nLAB_00015e31:\n    iVar7 = 1;\n  }\n  else {\n    iVar7 = 8;\n    pbVar11 = (byte *)p;\n    pbVar12 = (byte *)"-serial";\n    do {\n      if (iVar7 == 0) break;\n      iVar7 = iVar7 + -1;\n      bVar14 = *pbVar11 < *pbVar12;\n      bVar13 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + 1;\n      pbVar12 = pbVar12 + 1;\n    } while (bVar13);\n    bVar16 = false;\n    bVar13 = (!bVar14 && !bVar13) == bVar14;\n    if (bVar13) {\n      if (need_save < 0) {\n        return 1;\n      }\n      if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\n      if (need_save != 0) goto LAB_00015c78;\nLAB_00015dd0:\n      default_protocol = 4;\n      conf_set_int(conf,2,4);\n      pcVar2 = conf_get_str(conf,0);\n      uVar15 = (undefined1 *)0xfffffff3 < &stack0xffffffc4;\n      uVar17 = &stack0x00000000 == (undefined1 *)0x30;\n      conf_set_str(conf,0x39,pcVar2);\n      iVar7 = 3;\n      pbVar11 = (byte *)p;\n      pbVar12 = &DAT_0004b0d7;\n      do {\n        if (iVar7 == 0) break;\n        iVar7 = iVar7 + -1;\n        uVar15 = *pbVar11 < *pbVar12;\n        uVar17 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n        pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n      } while ((bool)uVar17);\n      bVar13 = (!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15;\n      if (bVar13) goto LAB_00015e28;\n      goto LAB_00015e31;\n    }\n    iVar7 = 3;\n    pbVar11 = (byte *)p;\n    pbVar12 = &DAT_0004b0d7;\n    do {\n      if (iVar7 == 0) break;\n      iVar7 = iVar7 + -1;\n      bVar16 = *pbVar11 < *pbVar12;\n      bVar13 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + 1;\n      pbVar12 = pbVar12 + 1;\n    } while (bVar13);\n    if ((!bVar16 && !bVar13) == bVar16) {\n      if (need_save < 0) {\n        return 1;\n      }\nLAB_00015e28:\n      flags = flags | 1;\n      bVar13 = flags == 0;\n      goto LAB_00015e31;\n    }\n    iVar7 = 0;\n    bVar13 = true;\n  }\n  bVar16 = false;\n  iVar8 = 3;\n  pbVar11 = (byte *)p;\n  pbVar12 = (byte *)0x53a29;\n  do {\n    if (iVar8 == 0) break;\n    iVar8 = iVar8 + -1;\n    bVar16 = *pbVar11 < *pbVar12;\n    bVar13 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n    pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n  } while (bVar13);\n  bVar14 = false;\n  bVar13 = (!bVar16 && !bVar13) == bVar16;\n  if (bVar13) {\n    if (value == (char *)0x0) {\n      return -2;\n    }\n    if (need_save < 0) {\n      return 2;\n    }\n    if (((byte)cmdline_tooltype & 2) != 0) goto LAB_000161c3;\n    if (need_save != 0) goto LAB_00016123;\n    uVar15 = auStack_2c < (undefined1 *)0x4;\n    uVar17 = &stack0x00000000 == (undefined1 *)0x30;\n    conf_set_str(conf,0x34,value);\n    iVar7 = 9;\n    pbVar11 = (byte *)p;\n    pbVar12 = (byte *)"-loghost";\n    do {\n      if (iVar7 == 0) break;\n      iVar7 = iVar7 + -1;\n      uVar15 = *pbVar11 < *pbVar12;\n      uVar17 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    } while ((bool)uVar17);\n    bVar13 = false;\n    bVar16 = (!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15;\n    if (bVar16) {\n      if (((byte)cmdline_tooltype & 2) != 0) goto LAB_000161c3;\n      goto LAB_00015ec5;\n    }\n    iVar7 = 9;\n    pbVar11 = (byte *)p;\n    pbVar12 = (byte *)"-hostkey";\n    do {\n      if (iVar7 == 0) break;\n      iVar7 = iVar7 + -1;\n      bVar13 = *pbVar11 < *pbVar12;\n      bVar16 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    } while (bVar16);\n    bVar13 = (!bVar13 && !bVar16) == bVar13;\n    if (bVar13) goto LAB_00016218;\nLAB_00016248:\n    iVar7 = 2;\nLAB_0001624d:\n    bVar16 = false;\n    iVar8 = 3;\n    pbVar11 = (byte *)p;\n    pbVar12 = &DAT_0004b0ec;\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar16 = *pbVar11 < *pbVar12;\n      bVar13 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    } while (bVar13);\n    bVar13 = (!bVar16 && !bVar13) == bVar16;\n    if (bVar13) {\nLAB_00016647:\n      if (value == (char *)0x0) {\n        return -2;\n      }\n      if (need_save < 0) {\n        return 2;\n      }\n      if (((byte)cmdline_tooltype & 3) != 0) goto LAB_000161c3;\n      bVar13 = need_save == 0;\n      if (!bVar13) goto LAB_00016123;\n      goto LAB_00015f8f;\n    }\nLAB_0001626b:\n    bVar16 = false;\n    iVar8 = 3;\n    pbVar11 = (byte *)p;\n    pbVar12 = &DAT_0004b0ef;\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar16 = *pbVar11 < *pbVar12;\n      bVar13 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    } while (bVar13);\n    bVar14 = false;\n    bVar13 = (!bVar16 && !bVar13) == bVar16;\n    if (bVar13) goto LAB_00016647;\n    iVar8 = 3;\n    pbVar11 = (byte *)p;\n    pbVar12 = (byte *)0x53a3b;\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar14 = *pbVar11 < *pbVar12;\n      bVar13 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    } while (bVar13);\n    bVar16 = false;\n    bVar13 = (!bVar14 && !bVar13) == bVar14;\n    if (bVar13) goto LAB_00016647;\n    iVar8 = 4;\n    pbVar11 = (byte *)p;\n    pbVar12 = &DAT_0004b0fd;\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar16 = *pbVar11 < *pbVar12;\n      bVar13 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    } while (bVar13);\n    bVar13 = (!bVar16 && !bVar13) == bVar16;\n    if (!bVar13) goto LAB_00016698;\n    if (value == (char *)0x0) {\n      return -2;\n    }\n    if (need_save < 0) {\n      return 2;\n    }\n    if (((byte)cmdline_tooltype & 3) != 0) goto LAB_000161c3;\n    if (need_save != 0) goto LAB_00016123;\nLAB_000162ed:\n    pcVar2 = host_strchr(value,0x3a);\n    if (pcVar2 == (char *)0x0) {\n      cmdline_error("-nc expects argument of form \'host:port\'");\n      return 2;\n    }\n    iVar7 = 2;\n    pcVar4 = dupprintf("%.*s");\n    conf_set_str(conf,0x2e,pcVar4);\n    lVar3 = strtol(pcVar2 + 1,(char **)0x0,10);\n    uVar15 = (undefined1 *)0xfffffff3 < &stack0xffffffc4;\n    uVar17 = &stack0x00000000 == (undefined1 *)0x30;\n    conf_set_int(conf,0x2f,lVar3);\n    safefree(pcVar4);\n    iVar8 = 3;\n    pbVar11 = (byte *)p;\n    pbVar12 = &DAT_0004b101;\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      uVar15 = *pbVar11 < *pbVar12;\n      uVar17 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    } while ((bool)uVar17);\n    bVar13 = (!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15;\n    if (!bVar13) goto LAB_000166e0;\n    if (((byte)cmdline_tooltype & 3) != 0) goto LAB_000161c3;\nLAB_0001639b:\n    iVar7 = 0;\n    pcVar2 = (char *)0x0;\n    __stream = fopen64(value,"r");\n    local_24 = 0;\n    if (__stream == (FILE *)0x0) {\n      cmdline_error("unable to open command file \"%s\"");\n      return 2;\n    }\n    while (iVar8 = fgetc(__stream), iVar8 != -1) {\n      if (iVar7 < (int)local_24) {\n        pcVar2[iVar7] = (char)iVar8;\n      }\n      else {\n        local_24 = iVar7 + 0x200;\n        local_20 = iVar8;\n        pcVar2 = (char *)saferealloc(pcVar2,local_24,1);\n        pcVar2[iVar7] = (char)local_20;\n      }\n      iVar7 = iVar7 + 1;\n    }\n    if (iVar7 < (int)local_24) {\n      pcVar2[iVar7] = '\0';\n    }\n    else {\n      pcVar2 = (char *)saferealloc(pcVar2,iVar7 + 0x200,1);\n      pcVar2[iVar7] = '\0';\n    }\n    iVar7 = 2;\n    fclose(__stream);\n    conf_set_str(conf,0x14,pcVar2);\n    conf_set_str(conf,0x15,"");\n    uVar15 = (undefined1 *)0xfffffff3 < &stack0xffffffc4;\n    uVar17 = &stack0x00000000 == (undefined1 *)0x30;\n    conf_set_int(conf,0x16,1);\n    safefree(pcVar2);\n    iVar8 = 3;\n    pbVar11 = (byte *)p;\n    pbVar12 = &DAT_0004b104;\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      uVar15 = *pbVar11 < *pbVar12;\n      uVar17 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    } while ((bool)uVar17);\n    bVar13 = (!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15;\n    if (!bVar13) goto LAB_00016777;\n    if (((byte)cmdline_tooltype & 2) != 0) goto LAB_000161c3;\nLAB_000164a7:\n    lVar3 = strtol(value,(char **)0x0,10);\n    conf_set_int(conf,1,lVar3);\n    iVar7 = strcmp(p,"-pw");\n    if (iVar7 == 0) {\n      if (((byte)cmdline_tooltype & 2) != 0) goto LAB_000161c3;\nLAB_000164f6:\n      iVar7 = conf_get_int(conf,2);\n      if (iVar7 == 3) {\n        cmdline_password = dupstr(value);\n        uVar9 = 0xffffffff;\n        pcVar2 = value;\n        do {\n          if (uVar9 == 0) break;\n          uVar9 = uVar9 - 1;\n          cVar1 = *pcVar2;\n          pcVar2 = pcVar2 + (uint)bVar18 * -2 + 1;\n        } while (cVar1 != '\0');\n        smemclr(value,~uVar9 - 1);\n      }\n      else {\n        cmdline_error("the -pw option can only be used with the SSH protocol");\n      }\n      iVar7 = strcmp(p,"-agent");\n      if ((iVar7 == 0) || (iVar7 = strcmp(p,"-pagent"), iVar7 == 0)) goto LAB_00015d3a;\n      iVar7 = 2;\n      iVar8 = strcmp(p,"-pageant");\n      if (iVar8 == 0) goto LAB_0001688c;\n    }\n    else {\n      iVar7 = strcmp(p,"-agent");\n      if (iVar7 == 0) {\nLAB_00015d3a:\n        if (((byte)cmdline_tooltype & 2) != 0) goto LAB_00015d50;\n        goto LAB_000168a1;\n      }\n      iVar7 = 2;\n      iVar8 = strcmp(p,"-pagent");\n      if (iVar8 == 0) goto LAB_0001688c;\nLAB_0001685f:\n      iVar8 = strcmp(p,"-pageant");\n      if (iVar8 == 0) goto LAB_00016884;\n    }\n    iVar8 = strcmp(p,"-noagent");\n    if ((iVar8 == 0) || (iVar8 = strcmp(p,"-nopagent"), iVar8 == 0)) {\nLAB_00016e5e:\n      if (need_save < 0) {\n        return 1;\n      }\nLAB_00016e44:\n      if (((byte)cmdline_tooltype & 2) != 0) goto LAB_00015d50;\n      if (need_save != 0) goto LAB_00015c78;\n      goto LAB_000168e1;\n    }\nLAB_000165eb:\n    iVar8 = strcmp(p,"-nopageant");\n    if (iVar8 == 0) goto LAB_00016e5e;\n    iVar8 = strcmp(p,"-A");\n    if (iVar8 != 0) {\n      iVar8 = strcmp(p,"-a");\n      if (iVar8 != 0) goto LAB_00016f0f;\n      if (need_save < 0) {\n        return 1;\n      }\n      goto LAB_0001700b;\n    }\n    if (need_save < 0) {\n      return 1;\n    }\n    if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\n    if (need_save != 0) goto LAB_00015c78;\nLAB_00016921:\n    conf_set_int(conf,0x1d,1);\n    iVar7 = strcmp(p,"-a");\n    if (iVar7 != 0) {\n      iVar7 = 1;\n      iVar8 = strcmp(p,"-X");\n      if (iVar8 == 0) goto LAB_00016f38;\nLAB_00016f97:\n      iVar8 = strcmp(p,"-x");\n      if (iVar8 != 0) goto LAB_0001704f;\n      if (need_save < 0) {\n        return 1;\n      }\nLAB_00016fc4:\n      if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\n      if (need_save != 0) goto LAB_00015c78;\n      goto LAB_000169e4;\n    }\n    if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\nLAB_00016961:\n    conf_set_int(conf,0x1d,0);\n    iVar7 = strcmp(p,"-X");\n    if (iVar7 == 0) {\n      if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\n      goto LAB_000169a1;\n    }\n    iVar7 = 1;\n    iVar8 = strcmp(p,"-x");\n    if (iVar8 == 0) goto LAB_00016fc4;\nLAB_0001704f:\n    iVar8 = strcmp(p,"-t");\n    if (iVar8 == 0) {\n      if (need_save < 0) {\n        return 1;\n      }\n      goto LAB_0001707c;\n    }\nLAB_000177b1:\n    iVar8 = strcmp(p,"-T");\n    if (iVar8 != 0) goto LAB_00017759;\n    if (need_save < 0) {\n      return 1;\n    }\nLAB_0001770d:\n    if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\n    if (need_save != 0) goto LAB_00017091;\nLAB_00016a67:\n    conf_set_int(conf,0x16,1);\n    iVar7 = strcmp(p,"-N");\n    if (iVar7 == 0) {\n      if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\nLAB_00016aa7:\n      conf_set_int(conf,0x2d,1);\n      iVar7 = strcmp(p,"-C");\n      if (iVar7 == 0) {\n        if (((byte)cmdline_tooltype & 2) != 0) goto LAB_00015d50;\n        goto LAB_00016ae7;\n      }\n      iVar7 = 1;\n      iVar8 = strcmp(p,"-1");\n      if (iVar8 != 0) goto LAB_00017647;\nLAB_000175ed:\n      if (((byte)cmdline_tooltype & 2) != 0) goto LAB_00015d50;\n      if (need_save != 0) goto LAB_00015c78;\n      goto LAB_00016b27;\n    }\n    iVar7 = 1;\n    iVar8 = strcmp(p,"-C");\n    if (iVar8 == 0) goto LAB_0001762d;\nLAB_00017679:\n    iVar8 = strcmp(p,"-1");\n    if (iVar8 == 0) {\n      if (need_save < 0) {\n        return 1;\n      }\n      goto LAB_000175ed;\n    }\nLAB_00017647:\n    iVar8 = strcmp(p,"-2");\n    if (iVar8 == 0) {\n      if (need_save < 0) {\n        return 1;\n      }\nLAB_000175ad:\n      if (((byte)cmdline_tooltype & 2) != 0) goto LAB_00015d50;\n      if (need_save != 0) {\nLAB_00015c78:\n        cmdline_save_param(p,value,0);\n        return 1;\n      }\nLAB_00016b67:\n      iVar7 = 1;\n      conf_set_int(conf,0x21,3);\n    }\n  }\n  else {\n    iVar8 = 9;\n    pbVar11 = (byte *)p;\n    pbVar12 = (byte *)"-loghost";\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar14 = *pbVar11 < *pbVar12;\n      bVar13 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    } while (bVar13);\n    bVar16 = false;\n    bVar13 = (!bVar14 && !bVar13) == bVar14;\n    if (!bVar13) {\n      iVar8 = 9;\n      pbVar11 = (byte *)p;\n      pbVar12 = (byte *)"-hostkey";\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar16 = *pbVar11 < *pbVar12;\n        bVar13 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n        pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n      } while (bVar13);\n      bVar13 = (!bVar16 && !bVar13) == bVar16;\n      if (bVar13) {\n        if (value == (char *)0x0) {\n          return -2;\n        }\n        if (need_save < 0) {\n          return 2;\n        }\nLAB_00016218:\n        if (((byte)cmdline_tooltype & 2) != 0) goto LAB_000161c3;\n        if (need_save != 0) goto LAB_00016123;\n        goto LAB_00015f0d;\n      }\n      goto LAB_0001624d;\n    }\n    if (value == (char *)0x0) {\n      return -2;\n    }\n    if (need_save < 0) {\n      return 2;\n    }\n    if (((byte)cmdline_tooltype & 2) != 0) goto LAB_000161c3;\n    if (need_save != 0) goto LAB_00016123;\nLAB_00015ec5:\n    uVar15 = auStack_2c < (undefined1 *)0x4;\n    uVar17 = &stack0x00000000 == (undefined1 *)0x30;\n    conf_set_str(conf,9,value);\n    iVar7 = 9;\n    pbVar11 = (byte *)p;\n    pbVar12 = (byte *)"-hostkey";\n    do {\n      if (iVar7 == 0) break;\n      iVar7 = iVar7 + -1;\n      uVar15 = *pbVar11 < *pbVar12;\n      uVar17 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    } while ((bool)uVar17);\n    bVar13 = (!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15;\n    if (!bVar13) goto LAB_00016248;\n    if (((byte)cmdline_tooltype & 2) != 0) goto LAB_000161c3;\nLAB_00015f0d:\n    pcVar2 = dupstr(value);\n    iVar7 = validate_manual_hostkey(pcVar2);\n    uVar15 = 0;\n    uVar17 = iVar7 == 0;\n    if ((bool)uVar17) {\n      cmdline_error("\'%s\' is not a valid format for a manual host key specification");\n      safefree(pcVar2);\n      return 2;\n    }\n    iVar7 = 2;\n    conf_set_str_str(conf,0xad,pcVar2,"");\n    safefree(pcVar2);\n    iVar8 = 3;\n    pbVar11 = (byte *)p;\n    pbVar12 = &DAT_0004b0ec;\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      uVar15 = *pbVar11 < *pbVar12;\n      uVar17 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    } while ((bool)uVar17);\n    bVar13 = (!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15;\n    if (!bVar13) goto LAB_0001626b;\n    bVar13 = ((byte)cmdline_tooltype & 3) == 0;\n    if (!bVar13) goto LAB_000161c3;\nLAB_00015f8f:\n    bVar16 = false;\n    iVar7 = 3;\n    pbVar11 = (byte *)p;\n    pbVar12 = (byte *)0x53a3b;\n    do {\n      if (iVar7 == 0) break;\n      iVar7 = iVar7 + -1;\n      bVar16 = *pbVar11 < *pbVar12;\n      bVar13 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    } while (bVar13);\n    if ((!bVar16 && !bVar13) == bVar16) {\n      pcVar2 = dupprintf("L%s");\n      pcVar4 = dupstr("D");\n    }\n    else {\n      pcVar2 = host_strchr(value,0x3a);\n      pcVar4 = pcVar2;\n      if (pcVar2 == (char *)0x0) {\n        cmdline_error("-%c expects at least two colons in its argument");\n        return 2;\n      }\n      do {\n        pcVar10 = pcVar4;\n        pcVar4 = pcVar2;\n        pcVar2 = host_strchr(pcVar4 + 1,0x3a);\n      } while (pcVar2 != (char *)0x0);\n      pcVar2 = dupprintf("%c%.*s");\n      pcVar4 = dupstr(pcVar10 + 1);\n    }\n    uVar15 = (undefined1 *)0xffffffef < &stack0xffffffc4;\n    uVar17 = &stack0x00000000 == (undefined1 *)0x2c;\n    iVar7 = 2;\n    conf_set_str_str(conf,0x9b,pcVar2,pcVar4);\n    safefree(pcVar2);\n    safefree(pcVar4);\n    iVar8 = 4;\n    pbVar11 = (byte *)p;\n    pbVar12 = &DAT_0004b0fd;\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      uVar15 = *pbVar11 < *pbVar12;\n      uVar17 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    } while ((bool)uVar17);\n    bVar13 = (!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15;\n    if (bVar13) {\n      if (((byte)cmdline_tooltype & 3) != 0) goto LAB_000161c3;\n      goto LAB_000162ed;\n    }\nLAB_00016698:\n    bVar16 = false;\n    iVar8 = 3;\n    pbVar11 = (byte *)p;\n    pbVar12 = &DAT_0004b101;\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar16 = *pbVar11 < *pbVar12;\n      bVar13 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    } while (bVar13);\n    bVar13 = (!bVar16 && !bVar13) == bVar16;\n    if (bVar13) {\n      if (value == (char *)0x0) {\n        return -2;\n      }\n      if (need_save < 0) {\n        return 2;\n      }\n      if (((byte)cmdline_tooltype & 3) != 0) goto LAB_000161c3;\n      if (need_save != 0) goto LAB_00016123;\n      goto LAB_0001639b;\n    }\nLAB_000166e0:\n    bVar16 = false;\n    iVar8 = 3;\n    pbVar11 = (byte *)p;\n    pbVar12 = &DAT_0004b104;\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar16 = *pbVar11 < *pbVar12;\n      bVar13 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    } while (bVar13);\n    bVar13 = (!bVar16 && !bVar13) == bVar16;\n    if (bVar13) {\n      if (value == (char *)0x0) {\n        return -2;\n      }\n      if (need_save < 0) {\n        return 2;\n      }\n      if (((byte)cmdline_tooltype & 2) != 0) goto LAB_000161c3;\n      if (need_save != 0) goto LAB_00016723;\n      goto LAB_000164a7;\n    }\nLAB_00016777:\n    bVar16 = false;\n    iVar8 = 4;\n    pbVar11 = (byte *)p;\n    pbVar12 = &DAT_0004b107;\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar16 = *pbVar11 < *pbVar12;\n      bVar13 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    } while (bVar13);\n    if ((!bVar16 && !bVar13) == bVar16) {\n      if (value == (char *)0x0) {\n        return -2;\n      }\n      if (need_save < 0) {\n        return 2;\n      }\n      if (((byte)cmdline_tooltype & 2) != 0) goto LAB_000161c3;\n      if (need_save != 0) goto LAB_00016723;\n      goto LAB_000164f6;\n    }\n    iVar8 = strcmp(p,"-agent");\n    if ((iVar8 != 0) && (iVar8 = strcmp(p,"-pagent"), iVar8 != 0)) goto LAB_0001685f;\nLAB_00016884:\n    if (need_save < 0) {\n      return 1;\n    }\nLAB_0001688c:\n    if (((byte)cmdline_tooltype & 2) != 0) goto LAB_00015d50;\n    if (need_save != 0) goto LAB_00015c78;\nLAB_000168a1:\n    conf_set_int(conf,0x1c,1);\n    iVar7 = strcmp(p,"-noagent");\n    if (iVar7 != 0) {\n      iVar7 = 1;\n      iVar8 = strcmp(p,"-nopagent");\n      if (iVar8 != 0) goto LAB_000165eb;\n      goto LAB_00016e44;\n    }\n    if (((byte)cmdline_tooltype & 2) != 0) goto LAB_00015d50;\nLAB_000168e1:\n    conf_set_int(conf,0x1c,0);\n    iVar7 = strcmp(p,"-A");\n    if (iVar7 == 0) {\n      if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\n      goto LAB_00016921;\n    }\n    iVar7 = 1;\n    iVar8 = strcmp(p,"-a");\n    if (iVar8 == 0) {\nLAB_0001700b:\n      if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\n      if (need_save != 0) goto LAB_00015c78;\n      goto LAB_00016961;\n    }\nLAB_00016f0f:\n    iVar8 = strcmp(p,"-X");\n    if (iVar8 != 0) goto LAB_00016f97;\n    if (need_save < 0) {\n      return 1;\n    }\nLAB_00016f38:\n    if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\n    if (need_save != 0) goto LAB_00015c78;\nLAB_000169a1:\n    conf_set_int(conf,0x95,1);\n    iVar7 = strcmp(p,"-x");\n    if (iVar7 == 0) {\n      if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\nLAB_000169e4:\n      conf_set_int(conf,0x95,0);\n      iVar7 = strcmp(p,"-t");\n      if (iVar7 == 0) {\n        if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\n        goto LAB_00016a27;\n      }\n      iVar7 = 1;\n      iVar8 = strcmp(p,"-T");\n      if (iVar8 == 0) goto LAB_0001770d;\nLAB_00017759:\n      iVar8 = strcmp(p,"-N");\n      if (iVar8 != 0) goto LAB_00017727;\n      if (need_save < 0) {\n        return 1;\n      }\nLAB_000176cd:\n      if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\n      if (need_save != 0) goto LAB_00015c78;\n      goto LAB_00016aa7;\n    }\n    iVar7 = 1;\n    iVar8 = strcmp(p,"-t");\n    if (iVar8 != 0) goto LAB_000177b1;\nLAB_0001707c:\n    if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\n    if (need_save != 0) goto LAB_00017091;\nLAB_00016a27:\n    conf_set_int(conf,0x16,0);\n    iVar7 = strcmp(p,"-T");\n    if (iVar7 == 0) {\n      if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\n      goto LAB_00016a67;\n    }\n    iVar7 = 1;\n    iVar8 = strcmp(p,"-N");\n    if (iVar8 == 0) goto LAB_000176cd;\nLAB_00017727:\n    iVar8 = strcmp(p,"-C");\n    if (iVar8 != 0) goto LAB_00017679;\n    if (need_save < 0) {\n      return 1;\n    }\nLAB_0001762d:\n    if (((byte)cmdline_tooltype & 2) != 0) goto LAB_00015d50;\n    if (need_save != 0) goto LAB_00015c78;\nLAB_00016ae7:\n    conf_set_int(conf,0x17,1);\n    iVar7 = strcmp(p,"-1");\n    if (iVar7 == 0) {\n      if (((byte)cmdline_tooltype & 2) != 0) goto LAB_00015d50;\nLAB_00016b27:\n      conf_set_int(conf,0x21,0);\n      iVar7 = strcmp(p,"-2");\n      if (iVar7 == 0) {\n        if (((byte)cmdline_tooltype & 2) != 0) {\nLAB_00015d50:\n          cmdline_error("option \"%s\" not available in this tool");\n          return 1;\n        }\n        goto LAB_00016b67;\n      }\n    }\n    else {\n      iVar7 = strcmp(p,"-2");\n      if (iVar7 == 0) goto LAB_000175ad;\n    }\n    iVar7 = 1;\n  }\n  iVar8 = strcmp(p,"-i");\n  if (iVar8 == 0) {\n    if (value == (char *)0x0) {\n      return -2;\n    }\n    if (need_save < 0) {\n      return 2;\n    }\n    if (((byte)cmdline_tooltype & 2) != 0) goto LAB_000161c3;\n    if (need_save != 0) goto LAB_00016123;\n    pFVar5 = filename_from_str(value);\n    conf_set_filename(conf,0x20,pFVar5);\n    filename_free(pFVar5);\n    iVar7 = strcmp(p,"-4");\n    if ((iVar7 == 0) || (iVar7 = strcmp(p,"-ipv4"), iVar7 == 0)) goto LAB_00017485;\n    iVar7 = strcmp(p,"-6");\n    if (iVar7 == 0) goto LAB_00016c88;\n    iVar7 = 2;\n    iVar8 = strcmp(p,"-ipv6");\njoined_r0x000174dc:\n    if (iVar8 == 0) goto LAB_00016c88;\n  }\n  else {\n    iVar8 = strcmp(p,"-4");\n    if ((iVar8 == 0) || (iVar8 = strcmp(p,"-ipv4"), iVar8 == 0)) {\n      if (need_save < 0) {\n        return 1;\n      }\n      if (need_save != 0) {\nLAB_00017091:\n        cmdline_save_param(p,value,1);\n        return 1;\n      }\nLAB_00017485:\n      conf_set_int(conf,3,1);\n      iVar7 = strcmp(p,"-6");\n      if (iVar7 != 0) {\n        iVar7 = 1;\n        iVar8 = strcmp(p,"-ipv6");\n        goto joined_r0x000174dc;\n      }\n    }\n    else {\n      iVar8 = strcmp(p,"-6");\n      if ((iVar8 != 0) && (iVar8 = strcmp(p,"-ipv6"), iVar8 != 0)) goto LAB_00016ca6;\n      if (need_save < 0) {\n        return 1;\n      }\n      if (need_save != 0) goto LAB_00017091;\n    }\nLAB_00016c88:\n    iVar7 = 1;\n    conf_set_int(conf,3,2);\n  }\nLAB_00016ca6:\n  iVar8 = strcmp(p,"-sercfg");\n  if (iVar8 == 0) {\n    if (value == (char *)0x0) {\n      return -2;\n    }\n    if (need_save < 0) {\n      return 2;\n    }\n    if (((byte)cmdline_tooltype & 3) != 0) goto LAB_000161c3;\n    if (need_save != 0) {\nLAB_00016723:\n      cmdline_save_param(p,value,1);\n      return 2;\n    }\n    iVar7 = conf_get_int(conf,2);\n    pcVar2 = value;\n    if (iVar7 != 4) {\n      cmdline_error("the -sercfg option can only be used with the serial protocol");\n    }\n    for (; *pcVar2 != '\0'; pcVar2 = pcVar2 + iVar8 + iVar7) {\n      pcVar4 = strchr(pcVar2,0x2c);\n      if (pcVar4 == (char *)0x0) {\n        uVar9 = 0xffffffff;\n        iVar7 = 0;\n        pcVar4 = pcVar2;\n        do {\n          if (uVar9 == 0) break;\n          uVar9 = uVar9 - 1;\n          cVar1 = *pcVar4;\n          pcVar4 = pcVar4 + (uint)bVar18 * -2 + 1;\n        } while (cVar1 != '\0');\n        iVar8 = ~uVar9 - 1;\n      }\n      else {\n        *pcVar4 = '\0';\n        iVar7 = 1;\n        iVar8 = (int)pcVar4 - (int)pcVar2;\n      }\n      if (iVar8 == 1) {\n        iVar6 = (int)*pcVar2;\n        switch(iVar6 - 0x31U & 0xff) {\n        case 0:\n        case 1:\n          conf_set_int(conf,0x3c,(iVar6 + -0x30) * 2);\n          break;\n        default:\n          cmdline_error("Unrecognised suboption \"-sercfg %c\"");\n          break;\n        case 4:\n        case 5:\n        case 6:\n        case 7:\n        case 8:\n          conf_set_int(conf,0x3b,iVar6 + -0x30);\n          break;\n        case 0x13:\n          conf_set_int(conf,0x3e,3);\n          break;\n        case 0x1d:\n          conf_set_int(conf,0x3e,0);\n          break;\n        case 0x21:\n          conf_set_int(conf,0x3e,2);\n          break;\n        case 0x27:\n          conf_set_int(conf,0x3e,1);\n          break;\n        case 0x34:\n          conf_set_int(conf,0x3d,2);\n          break;\n        case 0x3c:\n          conf_set_int(conf,0x3d,3);\n          break;\n        case 0x3d:\n          conf_set_int(conf,0x3d,0);\n          break;\n        case 0x3e:\n          conf_set_int(conf,0x3d,1);\n          break;\n        case 0x42:\n          conf_set_int(conf,0x3d,4);\n        }\n      }\n      else if ((iVar8 == 3) && (iVar6 = strncmp(pcVar2,"1.5",3), iVar6 == 0)) {\n        conf_set_int(conf,0x3c,3);\n      }\n      else {\n        lVar3 = strtol(pcVar2,(char **)0x0,10);\n        if (lVar3 == 0) {\n          cmdline_error("Unrecognised suboption \"-sercfg %s\"");\n        }\n        else {\n          conf_set_int(conf,0x3a,lVar3);\n        }\n      }\n    }\n    iVar7 = strcmp(p,"-sessionlog");\n    if (iVar7 == 0) {\n      if (((byte)cmdline_tooltype & 1) != 0) goto LAB_000161c3;\n      goto LAB_0001722b;\n    }\n    iVar7 = strcmp(p,"-sshlog");\n    if (iVar7 != 0) goto LAB_000173ff;\nLAB_000173c4:\n    if (((byte)cmdline_tooltype & 2) != 0) goto LAB_000161c3;\n    if (need_save != 0) {\nLAB_00016123:\n      cmdline_save_param(p,value,0);\n      return 2;\n    }\n  }\n  else {\n    iVar8 = strcmp(p,"-sessionlog");\n    if (iVar8 != 0) {\n      iVar8 = strcmp(p,"-sshlog");\n      if (iVar8 != 0) goto LAB_00017404;\nLAB_000173b1:\n      if (value == (char *)0x0) {\n        return -2;\n      }\n      if (need_save < 0) {\n        return 2;\n      }\n      goto LAB_000173c4;\n    }\n    if (value == (char *)0x0) {\n      return -2;\n    }\n    if (need_save < 0) {\n      return 2;\n    }\n    if (((byte)cmdline_tooltype & 1) != 0) goto LAB_000161c3;\n    if (need_save != 0) goto LAB_00016123;\nLAB_0001722b:\n    pFVar5 = filename_from_str(value);\n    conf_set_filename(conf,0x77,pFVar5);\n    conf_set_int(conf,0x78,2);\n    filename_free(pFVar5);\n    iVar7 = strcmp(p,"-sshlog");\n    if (iVar7 != 0) {\nLAB_000173ff:\n      iVar7 = 2;\nLAB_00017404:\n      iVar8 = strcmp(p,"-sshrawlog");\n      if (iVar8 != 0) {\n        iVar8 = strcmp(p,"-proxycmd");\n        if (iVar8 != 0) {\n          return iVar7;\n        }\n        if (value == (char *)0x0) {\n          return -2;\n        }\n        if (need_save < 0) {\n          return 2;\n        }\n        if (((byte)cmdline_tooltype & 2) != 0) goto LAB_000161c3;\n        if (need_save != 0) goto LAB_00016123;\n        goto LAB_00017304;\n      }\n      goto LAB_000173b1;\n    }\n    if (((byte)cmdline_tooltype & 2) != 0) goto LAB_000161c3;\n  }\n  pFVar5 = filename_from_str(value);\n  conf_set_filename(conf,0x77,pFVar5);\n  iVar7 = strcmp(p,"-sshlog");\n  conf_set_int(conf,0x78,4 - (uint)(iVar7 == 0));\n  filename_free(pFVar5);\n  iVar7 = strcmp(p,"-proxycmd");\n  if (iVar7 != 0) {\n    return 2;\n  }\n  if (((byte)cmdline_tooltype & 2) == 0) {\nLAB_00017304:\n    conf_set_int(conf,0xd,5);\n    conf_set_str(conf,0x12,value);\n    return 2;\n  }\nLAB_000161c3:\n  cmdline_error("option \"%s\" not available in this tool");\n  return 2;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "char *pcVar2;" primitive_type (pointer_declarator "*pcVar2" * identifier) ;) (declaration "long lVar3;" (sized_type_specifier "long" long) identifier ;) (declaration "FILE *__stream;" type_identifier (pointer_declarator "*__stream" * identifier) ;) (declaration "char *pcVar4;" primitive_type (pointer_declarator "*pcVar4" * identifier) ;) (declaration "Filename *pFVar5;" type_identifier (pointer_declarator "*pFVar5" * identifier) ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "char *pcVar10;" primitive_type (pointer_declarator "*pcVar10" * identifier) ;) (declaration "byte *pbVar11;" type_identifier (pointer_declarator "*pbVar11" * identifier) ;) (declaration "byte *pbVar12;" type_identifier (pointer_declarator "*pbVar12" * identifier) ;) (declaration "bool bVar13;" primitive_type identifier ;) (declaration "bool bVar14;" primitive_type identifier ;) (declaration "undefined1 uVar15;" type_identifier identifier ;) (declaration "bool bVar16;" primitive_type identifier ;) (declaration "undefined1 uVar17;" type_identifier identifier ;) (declaration "byte bVar18;" type_identifier identifier ;) (declaration "undefined1 auStack_2c [8];" type_identifier (array_declarator "auStack_2c [8]" identifier [ number_literal ]) ;) (declaration "size_t local_24;" primitive_type identifier ;) (declaration "int local_20;" primitive_type identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "bVar18 = 0;" (assignment_expression "bVar18 = 0" identifier = number_literal) ;) (expression_statement "iVar7 = 6;" (assignment_expression "iVar7 = 6" identifier = number_literal) ;) (expression_statement "uStack_14 = 0x15b6e;" (assignment_expression "uStack_14 = 0x15b6e" identifier = number_literal) ;) (expression_statement "bVar13 = &stack0xfffffff0 < (undefined1 *)0x1c;" (assignment_expression "bVar13 = &stack0xfffffff0 < (undefined1 *)0x1c" identifier = (binary_expression "&stack0xfffffff0 < (undefined1 *)0x1c" (pointer_expression "&stack0xfffffff0" & identifier) < (cast_expression "(undefined1 *)0x1c" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "bVar16 = &stack0x00000000 == (undefined1 *)0x2c;" (assignment_expression "bVar16 = &stack0x00000000 == (undefined1 *)0x2c" identifier = (binary_expression "&stack0x00000000 == (undefined1 *)0x2c" (pointer_expression "&stack0x00000000" & identifier) == (cast_expression "(undefined1 *)0x2c" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "pbVar11 = (byte *)p;" (assignment_expression "pbVar11 = (byte *)p" identifier = (cast_expression "(byte *)p" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) 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 (iVar7 == 0) break;\n    iVar7 = iVar7 + -1;\n    bVar13 = *pbVar11 < *pbVar12;\n    bVar16 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + 1;\n    pbVar12 = pbVar12 + 1;\n  } while (bVar16);" do (compound_statement "{\n    if (iVar7 == 0) break;\n    iVar7 = iVar7 + -1;\n    bVar13 = *pbVar11 < *pbVar12;\n    bVar16 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + 1;\n    pbVar12 = pbVar12 + 1;\n  }" { (if_statement "if (iVar7 == 0) break;" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar7 = iVar7 + -1;" (assignment_expression "iVar7 = iVar7 + -1" identifier = (binary_expression "iVar7 + -1" identifier + number_literal)) ;) (expression_statement "bVar13 = *pbVar11 < *pbVar12;" (assignment_expression "bVar13 = *pbVar11 < *pbVar12" identifier = (binary_expression "*pbVar11 < *pbVar12" (pointer_expression "*pbVar11" * identifier) < (pointer_expression "*pbVar12" * identifier))) ;) (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 "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 "(bVar16)" ( identifier )) ;) (expression_statement "bVar14 = false;" (assignment_expression "bVar14 = false" identifier = false) ;) (expression_statement "bVar13 = (!bVar13 && !bVar16) == bVar13;" (assignment_expression "bVar13 = (!bVar13 && !bVar16) == bVar13" identifier = (binary_expression "(!bVar13 && !bVar16) == bVar13" (parenthesized_expression "(!bVar13 && !bVar16)" ( (binary_expression "!bVar13 && !bVar16" (unary_expression "!bVar13" ! identifier) && (unary_expression "!bVar16" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar13) {\n    if (value == (char *)0x0) {\n      return -2;\n    }\n    if (need_save < 0) {\n      return 2;\n    }\n    do_defaults(value,conf);\n    loaded_session = 1;\n    cmdline_session_name = dupstr(value);\n    return 2;\n  }" if (parenthesized_expression "(bVar13)" ( identifier )) (compound_statement "{\n    if (value == (char *)0x0) {\n      return -2;\n    }\n    if (need_save < 0) {\n      return 2;\n    }\n    do_defaults(value,conf);\n    loaded_session = 1;\n    cmdline_session_name = dupstr(value);\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 (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 "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 ;) })) (expression_statement "iVar7 = 5;" (assignment_expression "iVar7 = 5" identifier = number_literal) ;) (expression_statement "pbVar11 = (byte *)p;" (assignment_expression "pbVar11 = (byte *)p" identifier = (cast_expression "(byte *)p" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pbVar12 = &DAT_0004b0b5;" (assignment_expression "pbVar12 = &DAT_0004b0b5" identifier = (pointer_expression "&DAT_0004b0b5" & identifier)) ;) (do_statement "do {\n    if (iVar7 == 0) break;\n    iVar7 = iVar7 + -1;\n    bVar14 = *pbVar11 < *pbVar12;\n    bVar13 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + 1;\n    pbVar12 = pbVar12 + 1;\n  } while (bVar13);" do (compound_statement "{\n    if (iVar7 == 0) break;\n    iVar7 = iVar7 + -1;\n    bVar14 = *pbVar11 < *pbVar12;\n    bVar13 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + 1;\n    pbVar12 = pbVar12 + 1;\n  }" { (if_statement "if (iVar7 == 0) break;" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar7 = iVar7 + -1;" (assignment_expression "iVar7 = iVar7 + -1" identifier = (binary_expression "iVar7 + -1" identifier + number_literal)) ;) (expression_statement "bVar14 = *pbVar11 < *pbVar12;" (assignment_expression "bVar14 = *pbVar11 < *pbVar12" identifier = (binary_expression "*pbVar11 < *pbVar12" (pointer_expression "*pbVar11" * identifier) < (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "bVar13 = *pbVar11 == *pbVar12;" (assignment_expression "bVar13 = *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 "(bVar13)" ( identifier )) ;) (expression_statement "bVar16 = false;" (assignment_expression "bVar16 = false" identifier = false) ;) (expression_statement "bVar13 = (!bVar14 && !bVar13) == bVar14;" (assignment_expression "bVar13 = (!bVar14 && !bVar13) == bVar14" identifier = (binary_expression "(!bVar14 && !bVar13) == bVar14" (parenthesized_expression "(!bVar14 && !bVar13)" ( (binary_expression "!bVar14 && !bVar13" (unary_expression "!bVar14" ! identifier) && (unary_expression "!bVar13" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar13) {\n    if (need_save < 0) {\n      return 1;\n    }\n    if (((byte)cmdline_tooltype & 3) == 0) {\n      if (need_save == 0) {\n        default_protocol = 3;\n        default_port = 0x16;\n        iVar7 = 3;\nLAB_00015c0d:\n        conf_set_int(conf,2,iVar7);\n        conf_set_int(conf,1,default_port);\n        return 1;\n      }\n      goto LAB_00015c78;\n    }\n    goto LAB_00015d50;\n  }" if (parenthesized_expression "(bVar13)" ( identifier )) (compound_statement "{\n    if (need_save < 0) {\n      return 1;\n    }\n    if (((byte)cmdline_tooltype & 3) == 0) {\n      if (need_save == 0) {\n        default_protocol = 3;\n        default_port = 0x16;\n        iVar7 = 3;\nLAB_00015c0d:\n        conf_set_int(conf,2,iVar7);\n        conf_set_int(conf,1,default_port);\n        return 1;\n      }\n      goto LAB_00015c78;\n    }\n    goto LAB_00015d50;\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 (((byte)cmdline_tooltype & 3) == 0) {\n      if (need_save == 0) {\n        default_protocol = 3;\n        default_port = 0x16;\n        iVar7 = 3;\nLAB_00015c0d:\n        conf_set_int(conf,2,iVar7);\n        conf_set_int(conf,1,default_port);\n        return 1;\n      }\n      goto LAB_00015c78;\n    }" if (parenthesized_expression "(((byte)cmdline_tooltype & 3) == 0)" ( (binary_expression "((byte)cmdline_tooltype & 3) == 0" (parenthesized_expression "((byte)cmdline_tooltype & 3)" ( (binary_expression "(byte)cmdline_tooltype & 3" (cast_expression "(byte)cmdline_tooltype" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n      if (need_save == 0) {\n        default_protocol = 3;\n        default_port = 0x16;\n        iVar7 = 3;\nLAB_00015c0d:\n        conf_set_int(conf,2,iVar7);\n        conf_set_int(conf,1,default_port);\n        return 1;\n      }\n      goto LAB_00015c78;\n    }" { (if_statement "if (need_save == 0) {\n        default_protocol = 3;\n        default_port = 0x16;\n        iVar7 = 3;\nLAB_00015c0d:\n        conf_set_int(conf,2,iVar7);\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        iVar7 = 3;\nLAB_00015c0d:\n        conf_set_int(conf,2,iVar7);\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 "iVar7 = 3;" (assignment_expression "iVar7 = 3" identifier = number_literal) ;) (labeled_statement "LAB_00015c0d:\n        conf_set_int(conf,2,iVar7);" statement_identifier : (expression_statement "conf_set_int(conf,2,iVar7);" (call_expression "conf_set_int(conf,2,iVar7)" identifier (argument_list "(conf,2,iVar7)" ( identifier , number_literal , identifier ))) ;)) (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 ;) })) (goto_statement "goto LAB_00015c78;" goto statement_identifier ;) })) (goto_statement "goto LAB_00015d50;" goto statement_identifier ;) })) (expression_statement "iVar7 = 8;" (assignment_expression "iVar7 = 8" identifier = number_literal) ;) (expression_statement "pbVar11 = (byte *)p;" (assignment_expression "pbVar11 = (byte *)p" identifier = (cast_expression "(byte *)p" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) 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 (iVar7 == 0) break;\n    iVar7 = iVar7 + -1;\n    bVar16 = *pbVar11 < *pbVar12;\n    bVar13 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + 1;\n    pbVar12 = pbVar12 + 1;\n  } while (bVar13);" do (compound_statement "{\n    if (iVar7 == 0) break;\n    iVar7 = iVar7 + -1;\n    bVar16 = *pbVar11 < *pbVar12;\n    bVar13 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + 1;\n    pbVar12 = pbVar12 + 1;\n  }" { (if_statement "if (iVar7 == 0) break;" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar7 = iVar7 + -1;" (assignment_expression "iVar7 = iVar7 + -1" identifier = (binary_expression "iVar7 + -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 "bVar13 = *pbVar11 == *pbVar12;" (assignment_expression "bVar13 = *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 "(bVar13)" ( identifier )) ;) (expression_statement "bVar14 = false;" (assignment_expression "bVar14 = false" identifier = false) ;) (expression_statement "bVar13 = (!bVar16 && !bVar13) == bVar16;" (assignment_expression "bVar13 = (!bVar16 && !bVar13) == bVar16" identifier = (binary_expression "(!bVar16 && !bVar13) == bVar16" (parenthesized_expression "(!bVar16 && !bVar13)" ( (binary_expression "!bVar16 && !bVar13" (unary_expression "!bVar16" ! identifier) && (unary_expression "!bVar13" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar13) {\n    if (need_save < 0) {\n      return 1;\n    }\n    if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\n    if (need_save == 0) {\n      default_protocol = 1;\n      default_port = 0x17;\n      iVar7 = 1;\n      goto LAB_00015c0d;\n    }\n    goto LAB_00015c78;\n  }" if (parenthesized_expression "(bVar13)" ( identifier )) (compound_statement "{\n    if (need_save < 0) {\n      return 1;\n    }\n    if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\n    if (need_save == 0) {\n      default_protocol = 1;\n      default_port = 0x17;\n      iVar7 = 1;\n      goto LAB_00015c0d;\n    }\n    goto LAB_00015c78;\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 (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;" if (parenthesized_expression "(((byte)cmdline_tooltype & 3) != 0)" ( (binary_expression "((byte)cmdline_tooltype & 3) != 0" (parenthesized_expression "((byte)cmdline_tooltype & 3)" ( (binary_expression "(byte)cmdline_tooltype & 3" (cast_expression "(byte)cmdline_tooltype" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00015d50;" goto statement_identifier ;)) (if_statement "if (need_save == 0) {\n      default_protocol = 1;\n      default_port = 0x17;\n      iVar7 = 1;\n      goto LAB_00015c0d;\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      iVar7 = 1;\n      goto LAB_00015c0d;\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 "iVar7 = 1;" (assignment_expression "iVar7 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_00015c0d;" goto statement_identifier ;) })) (goto_statement "goto LAB_00015c78;" goto statement_identifier ;) })) (expression_statement "iVar7 = 8;" (assignment_expression "iVar7 = 8" identifier = number_literal) ;) (expression_statement "pbVar11 = (byte *)p;" (assignment_expression "pbVar11 = (byte *)p" identifier = (cast_expression "(byte *)p" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) 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 (iVar7 == 0) break;\n    iVar7 = iVar7 + -1;\n    bVar14 = *pbVar11 < *pbVar12;\n    bVar13 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + 1;\n    pbVar12 = pbVar12 + 1;\n  } while (bVar13);" do (compound_statement "{\n    if (iVar7 == 0) break;\n    iVar7 = iVar7 + -1;\n    bVar14 = *pbVar11 < *pbVar12;\n    bVar13 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + 1;\n    pbVar12 = pbVar12 + 1;\n  }" { (if_statement "if (iVar7 == 0) break;" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar7 = iVar7 + -1;" (assignment_expression "iVar7 = iVar7 + -1" identifier = (binary_expression "iVar7 + -1" identifier + number_literal)) ;) (expression_statement "bVar14 = *pbVar11 < *pbVar12;" (assignment_expression "bVar14 = *pbVar11 < *pbVar12" identifier = (binary_expression "*pbVar11 < *pbVar12" (pointer_expression "*pbVar11" * identifier) < (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "bVar13 = *pbVar11 == *pbVar12;" (assignment_expression "bVar13 = *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 "(bVar13)" ( identifier )) ;) (expression_statement "bVar16 = false;" (assignment_expression "bVar16 = false" identifier = false) ;) (expression_statement "bVar13 = (!bVar14 && !bVar13) == bVar14;" (assignment_expression "bVar13 = (!bVar14 && !bVar13) == bVar14" identifier = (binary_expression "(!bVar14 && !bVar13) == bVar14" (parenthesized_expression "(!bVar14 && !bVar13)" ( (binary_expression "!bVar14 && !bVar13" (unary_expression "!bVar14" ! identifier) && (unary_expression "!bVar13" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar13) {\n    if (need_save < 0) {\n      return 1;\n    }\n    if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\n    if (need_save == 0) {\n      default_protocol = 2;\n      default_port = 0x201;\n      iVar7 = 2;\n      goto LAB_00015c0d;\n    }\n    goto LAB_00015c78;\n  }" if (parenthesized_expression "(bVar13)" ( identifier )) (compound_statement "{\n    if (need_save < 0) {\n      return 1;\n    }\n    if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\n    if (need_save == 0) {\n      default_protocol = 2;\n      default_port = 0x201;\n      iVar7 = 2;\n      goto LAB_00015c0d;\n    }\n    goto LAB_00015c78;\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 (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;" if (parenthesized_expression "(((byte)cmdline_tooltype & 3) != 0)" ( (binary_expression "((byte)cmdline_tooltype & 3) != 0" (parenthesized_expression "((byte)cmdline_tooltype & 3)" ( (binary_expression "(byte)cmdline_tooltype & 3" (cast_expression "(byte)cmdline_tooltype" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00015d50;" goto statement_identifier ;)) (if_statement "if (need_save == 0) {\n      default_protocol = 2;\n      default_port = 0x201;\n      iVar7 = 2;\n      goto LAB_00015c0d;\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      iVar7 = 2;\n      goto LAB_00015c0d;\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 "iVar7 = 2;" (assignment_expression "iVar7 = 2" identifier = number_literal) ;) (goto_statement "goto LAB_00015c0d;" goto statement_identifier ;) })) (goto_statement "goto LAB_00015c78;" goto statement_identifier ;) })) (expression_statement "iVar7 = 5;" (assignment_expression "iVar7 = 5" identifier = number_literal) ;) (expression_statement "pbVar11 = (byte *)p;" (assignment_expression "pbVar11 = (byte *)p" identifier = (cast_expression "(byte *)p" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pbVar12 = &DAT_0004b0ca;" (assignment_expression "pbVar12 = &DAT_0004b0ca" identifier = (pointer_expression "&DAT_0004b0ca" & identifier)) ;) (do_statement "do {\n    if (iVar7 == 0) break;\n    iVar7 = iVar7 + -1;\n    bVar16 = *pbVar11 < *pbVar12;\n    bVar13 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + 1;\n    pbVar12 = pbVar12 + 1;\n  } while (bVar13);" do (compound_statement "{\n    if (iVar7 == 0) break;\n    iVar7 = iVar7 + -1;\n    bVar16 = *pbVar11 < *pbVar12;\n    bVar13 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + 1;\n    pbVar12 = pbVar12 + 1;\n  }" { (if_statement "if (iVar7 == 0) break;" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar7 = iVar7 + -1;" (assignment_expression "iVar7 = iVar7 + -1" identifier = (binary_expression "iVar7 + -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 "bVar13 = *pbVar11 == *pbVar12;" (assignment_expression "bVar13 = *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 "(bVar13)" ( identifier )) ;) (expression_statement "bVar14 = false;" (assignment_expression "bVar14 = false" identifier = false) ;) (expression_statement "bVar13 = (!bVar16 && !bVar13) == bVar16;" (assignment_expression "bVar13 = (!bVar16 && !bVar13) == bVar16" identifier = (binary_expression "(!bVar16 && !bVar13) == bVar16" (parenthesized_expression "(!bVar16 && !bVar13)" ( (binary_expression "!bVar16 && !bVar13" (unary_expression "!bVar16" ! identifier) && (unary_expression "!bVar13" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar13) {\n    if (need_save < 0) {\n      return 1;\n    }\n    if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\n    if (need_save != 0) goto LAB_00015c78;\n    uVar15 = auStack_2c < (undefined1 *)0x4;\n    uVar17 = &stack0x00000000 == (undefined1 *)0x30;\n    default_protocol = 0;\n    conf_set_int(conf,2,0);\n    iVar7 = 8;\n    pbVar11 = (byte *)p;\n    pbVar12 = (byte *)"-serial";\n    do {\n      if (iVar7 == 0) break;\n      iVar7 = iVar7 + -1;\n      uVar15 = *pbVar11 < *pbVar12;\n      uVar17 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    } while ((bool)uVar17);\n    bVar13 = false;\n    bVar16 = (!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15;\n    if (bVar16) {\n      if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\n      goto LAB_00015dd0;\n    }\n    iVar7 = 3;\n    pbVar11 = (byte *)p;\n    pbVar12 = &DAT_0004b0d7;\n    do {\n      if (iVar7 == 0) break;\n      iVar7 = iVar7 + -1;\n      bVar13 = *pbVar11 < *pbVar12;\n      bVar16 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    } while (bVar16);\n    bVar13 = (!bVar13 && !bVar16) == bVar13;\n    if (bVar13) goto LAB_00015e28;\nLAB_00015e31:\n    iVar7 = 1;\n  }\n  else {\n    iVar7 = 8;\n    pbVar11 = (byte *)p;\n    pbVar12 = (byte *)"-serial";\n    do {\n      if (iVar7 == 0) break;\n      iVar7 = iVar7 + -1;\n      bVar14 = *pbVar11 < *pbVar12;\n      bVar13 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + 1;\n      pbVar12 = pbVar12 + 1;\n    } while (bVar13);\n    bVar16 = false;\n    bVar13 = (!bVar14 && !bVar13) == bVar14;\n    if (bVar13) {\n      if (need_save < 0) {\n        return 1;\n      }\n      if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\n      if (need_save != 0) goto LAB_00015c78;\nLAB_00015dd0:\n      default_protocol = 4;\n      conf_set_int(conf,2,4);\n      pcVar2 = conf_get_str(conf,0);\n      uVar15 = (undefined1 *)0xfffffff3 < &stack0xffffffc4;\n      uVar17 = &stack0x00000000 == (undefined1 *)0x30;\n      conf_set_str(conf,0x39,pcVar2);\n      iVar7 = 3;\n      pbVar11 = (byte *)p;\n      pbVar12 = &DAT_0004b0d7;\n      do {\n        if (iVar7 == 0) break;\n        iVar7 = iVar7 + -1;\n        uVar15 = *pbVar11 < *pbVar12;\n        uVar17 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n        pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n      } while ((bool)uVar17);\n      bVar13 = (!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15;\n      if (bVar13) goto LAB_00015e28;\n      goto LAB_00015e31;\n    }\n    iVar7 = 3;\n    pbVar11 = (byte *)p;\n    pbVar12 = &DAT_0004b0d7;\n    do {\n      if (iVar7 == 0) break;\n      iVar7 = iVar7 + -1;\n      bVar16 = *pbVar11 < *pbVar12;\n      bVar13 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + 1;\n      pbVar12 = pbVar12 + 1;\n    } while (bVar13);\n    if ((!bVar16 && !bVar13) == bVar16) {\n      if (need_save < 0) {\n        return 1;\n      }\nLAB_00015e28:\n      flags = flags | 1;\n      bVar13 = flags == 0;\n      goto LAB_00015e31;\n    }\n    iVar7 = 0;\n    bVar13 = true;\n  }" if (parenthesized_expression "(bVar13)" ( identifier )) (compound_statement "{\n    if (need_save < 0) {\n      return 1;\n    }\n    if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\n    if (need_save != 0) goto LAB_00015c78;\n    uVar15 = auStack_2c < (undefined1 *)0x4;\n    uVar17 = &stack0x00000000 == (undefined1 *)0x30;\n    default_protocol = 0;\n    conf_set_int(conf,2,0);\n    iVar7 = 8;\n    pbVar11 = (byte *)p;\n    pbVar12 = (byte *)"-serial";\n    do {\n      if (iVar7 == 0) break;\n      iVar7 = iVar7 + -1;\n      uVar15 = *pbVar11 < *pbVar12;\n      uVar17 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    } while ((bool)uVar17);\n    bVar13 = false;\n    bVar16 = (!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15;\n    if (bVar16) {\n      if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\n      goto LAB_00015dd0;\n    }\n    iVar7 = 3;\n    pbVar11 = (byte *)p;\n    pbVar12 = &DAT_0004b0d7;\n    do {\n      if (iVar7 == 0) break;\n      iVar7 = iVar7 + -1;\n      bVar13 = *pbVar11 < *pbVar12;\n      bVar16 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    } while (bVar16);\n    bVar13 = (!bVar13 && !bVar16) == bVar13;\n    if (bVar13) goto LAB_00015e28;\nLAB_00015e31:\n    iVar7 = 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 ;) })) (if_statement "if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;" if (parenthesized_expression "(((byte)cmdline_tooltype & 3) != 0)" ( (binary_expression "((byte)cmdline_tooltype & 3) != 0" (parenthesized_expression "((byte)cmdline_tooltype & 3)" ( (binary_expression "(byte)cmdline_tooltype & 3" (cast_expression "(byte)cmdline_tooltype" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00015d50;" goto statement_identifier ;)) (if_statement "if (need_save != 0) goto LAB_00015c78;" if (parenthesized_expression "(need_save != 0)" ( (binary_expression "need_save != 0" identifier != number_literal) )) (goto_statement "goto LAB_00015c78;" goto statement_identifier ;)) (expression_statement "uVar15 = auStack_2c < (undefined1 *)0x4;" (assignment_expression "uVar15 = auStack_2c < (undefined1 *)0x4" identifier = (binary_expression "auStack_2c < (undefined1 *)0x4" identifier < (cast_expression "(undefined1 *)0x4" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "uVar17 = &stack0x00000000 == (undefined1 *)0x30;" (assignment_expression "uVar17 = &stack0x00000000 == (undefined1 *)0x30" identifier = (binary_expression "&stack0x00000000 == (undefined1 *)0x30" (pointer_expression "&stack0x00000000" & identifier) == (cast_expression "(undefined1 *)0x30" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) 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 "iVar7 = 8;" (assignment_expression "iVar7 = 8" identifier = number_literal) ;) (expression_statement "pbVar11 = (byte *)p;" (assignment_expression "pbVar11 = (byte *)p" identifier = (cast_expression "(byte *)p" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) 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 (iVar7 == 0) break;\n      iVar7 = iVar7 + -1;\n      uVar15 = *pbVar11 < *pbVar12;\n      uVar17 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    } while ((bool)uVar17);" do (compound_statement "{\n      if (iVar7 == 0) break;\n      iVar7 = iVar7 + -1;\n      uVar15 = *pbVar11 < *pbVar12;\n      uVar17 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    }" { (if_statement "if (iVar7 == 0) break;" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar7 = iVar7 + -1;" (assignment_expression "iVar7 = iVar7 + -1" identifier = (binary_expression "iVar7 + -1" identifier + number_literal)) ;) (expression_statement "uVar15 = *pbVar11 < *pbVar12;" (assignment_expression "uVar15 = *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 + (uint)bVar18 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1" identifier = (binary_expression "pbVar11 + (uint)bVar18 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar18 * -2" identifier + (binary_expression "(uint)bVar18 * -2" (cast_expression "(uint)bVar18" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1" identifier = (binary_expression "pbVar12 + (uint)bVar18 * -2 + 1" (binary_expression "pbVar12 + (uint)bVar18 * -2" identifier + (binary_expression "(uint)bVar18 * -2" (cast_expression "(uint)bVar18" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "((bool)uVar17)" ( (cast_expression "(bool)uVar17" ( (type_descriptor "bool" primitive_type) ) identifier) )) ;) (expression_statement "bVar13 = false;" (assignment_expression "bVar13 = false" identifier = false) ;) (expression_statement "bVar16 = (!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15;" (assignment_expression "bVar16 = (!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15" identifier = (binary_expression "(!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15" (parenthesized_expression "(!(bool)uVar15 && !(bool)uVar17)" ( (binary_expression "!(bool)uVar15 && !(bool)uVar17" (unary_expression "!(bool)uVar15" ! (cast_expression "(bool)uVar15" ( (type_descriptor "bool" primitive_type) ) identifier)) && (unary_expression "!(bool)uVar17" ! (cast_expression "(bool)uVar17" ( (type_descriptor "bool" primitive_type) ) identifier))) )) == (cast_expression "(bool)uVar15" ( (type_descriptor "bool" primitive_type) ) identifier))) ;) (if_statement "if (bVar16) {\n      if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\n      goto LAB_00015dd0;\n    }" if (parenthesized_expression "(bVar16)" ( identifier )) (compound_statement "{\n      if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\n      goto LAB_00015dd0;\n    }" { (if_statement "if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;" if (parenthesized_expression "(((byte)cmdline_tooltype & 3) != 0)" ( (binary_expression "((byte)cmdline_tooltype & 3) != 0" (parenthesized_expression "((byte)cmdline_tooltype & 3)" ( (binary_expression "(byte)cmdline_tooltype & 3" (cast_expression "(byte)cmdline_tooltype" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00015d50;" goto statement_identifier ;)) (goto_statement "goto LAB_00015dd0;" goto statement_identifier ;) })) (expression_statement "iVar7 = 3;" (assignment_expression "iVar7 = 3" identifier = number_literal) ;) (expression_statement "pbVar11 = (byte *)p;" (assignment_expression "pbVar11 = (byte *)p" identifier = (cast_expression "(byte *)p" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pbVar12 = &DAT_0004b0d7;" (assignment_expression "pbVar12 = &DAT_0004b0d7" identifier = (pointer_expression "&DAT_0004b0d7" & identifier)) ;) (do_statement "do {\n      if (iVar7 == 0) break;\n      iVar7 = iVar7 + -1;\n      bVar13 = *pbVar11 < *pbVar12;\n      bVar16 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    } while (bVar16);" do (compound_statement "{\n      if (iVar7 == 0) break;\n      iVar7 = iVar7 + -1;\n      bVar13 = *pbVar11 < *pbVar12;\n      bVar16 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    }" { (if_statement "if (iVar7 == 0) break;" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar7 = iVar7 + -1;" (assignment_expression "iVar7 = iVar7 + -1" identifier = (binary_expression "iVar7 + -1" identifier + number_literal)) ;) (expression_statement "bVar13 = *pbVar11 < *pbVar12;" (assignment_expression "bVar13 = *pbVar11 < *pbVar12" identifier = (binary_expression "*pbVar11 < *pbVar12" (pointer_expression "*pbVar11" * identifier) < (pointer_expression "*pbVar12" * identifier))) ;) (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 "pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1" identifier = (binary_expression "pbVar11 + (uint)bVar18 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar18 * -2" identifier + (binary_expression "(uint)bVar18 * -2" (cast_expression "(uint)bVar18" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1" identifier = (binary_expression "pbVar12 + (uint)bVar18 * -2 + 1" (binary_expression "pbVar12 + (uint)bVar18 * -2" identifier + (binary_expression "(uint)bVar18 * -2" (cast_expression "(uint)bVar18" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar16)" ( identifier )) ;) (expression_statement "bVar13 = (!bVar13 && !bVar16) == bVar13;" (assignment_expression "bVar13 = (!bVar13 && !bVar16) == bVar13" identifier = (binary_expression "(!bVar13 && !bVar16) == bVar13" (parenthesized_expression "(!bVar13 && !bVar16)" ( (binary_expression "!bVar13 && !bVar16" (unary_expression "!bVar13" ! identifier) && (unary_expression "!bVar16" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar13) goto LAB_00015e28;" if (parenthesized_expression "(bVar13)" ( identifier )) (goto_statement "goto LAB_00015e28;" goto statement_identifier ;)) (labeled_statement "LAB_00015e31:\n    iVar7 = 1;" statement_identifier : (expression_statement "iVar7 = 1;" (assignment_expression "iVar7 = 1" identifier = number_literal) ;)) }) (else_clause "else {\n    iVar7 = 8;\n    pbVar11 = (byte *)p;\n    pbVar12 = (byte *)"-serial";\n    do {\n      if (iVar7 == 0) break;\n      iVar7 = iVar7 + -1;\n      bVar14 = *pbVar11 < *pbVar12;\n      bVar13 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + 1;\n      pbVar12 = pbVar12 + 1;\n    } while (bVar13);\n    bVar16 = false;\n    bVar13 = (!bVar14 && !bVar13) == bVar14;\n    if (bVar13) {\n      if (need_save < 0) {\n        return 1;\n      }\n      if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\n      if (need_save != 0) goto LAB_00015c78;\nLAB_00015dd0:\n      default_protocol = 4;\n      conf_set_int(conf,2,4);\n      pcVar2 = conf_get_str(conf,0);\n      uVar15 = (undefined1 *)0xfffffff3 < &stack0xffffffc4;\n      uVar17 = &stack0x00000000 == (undefined1 *)0x30;\n      conf_set_str(conf,0x39,pcVar2);\n      iVar7 = 3;\n      pbVar11 = (byte *)p;\n      pbVar12 = &DAT_0004b0d7;\n      do {\n        if (iVar7 == 0) break;\n        iVar7 = iVar7 + -1;\n        uVar15 = *pbVar11 < *pbVar12;\n        uVar17 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n        pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n      } while ((bool)uVar17);\n      bVar13 = (!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15;\n      if (bVar13) goto LAB_00015e28;\n      goto LAB_00015e31;\n    }\n    iVar7 = 3;\n    pbVar11 = (byte *)p;\n    pbVar12 = &DAT_0004b0d7;\n    do {\n      if (iVar7 == 0) break;\n      iVar7 = iVar7 + -1;\n      bVar16 = *pbVar11 < *pbVar12;\n      bVar13 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + 1;\n      pbVar12 = pbVar12 + 1;\n    } while (bVar13);\n    if ((!bVar16 && !bVar13) == bVar16) {\n      if (need_save < 0) {\n        return 1;\n      }\nLAB_00015e28:\n      flags = flags | 1;\n      bVar13 = flags == 0;\n      goto LAB_00015e31;\n    }\n    iVar7 = 0;\n    bVar13 = true;\n  }" else (compound_statement "{\n    iVar7 = 8;\n    pbVar11 = (byte *)p;\n    pbVar12 = (byte *)"-serial";\n    do {\n      if (iVar7 == 0) break;\n      iVar7 = iVar7 + -1;\n      bVar14 = *pbVar11 < *pbVar12;\n      bVar13 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + 1;\n      pbVar12 = pbVar12 + 1;\n    } while (bVar13);\n    bVar16 = false;\n    bVar13 = (!bVar14 && !bVar13) == bVar14;\n    if (bVar13) {\n      if (need_save < 0) {\n        return 1;\n      }\n      if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\n      if (need_save != 0) goto LAB_00015c78;\nLAB_00015dd0:\n      default_protocol = 4;\n      conf_set_int(conf,2,4);\n      pcVar2 = conf_get_str(conf,0);\n      uVar15 = (undefined1 *)0xfffffff3 < &stack0xffffffc4;\n      uVar17 = &stack0x00000000 == (undefined1 *)0x30;\n      conf_set_str(conf,0x39,pcVar2);\n      iVar7 = 3;\n      pbVar11 = (byte *)p;\n      pbVar12 = &DAT_0004b0d7;\n      do {\n        if (iVar7 == 0) break;\n        iVar7 = iVar7 + -1;\n        uVar15 = *pbVar11 < *pbVar12;\n        uVar17 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n        pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n      } while ((bool)uVar17);\n      bVar13 = (!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15;\n      if (bVar13) goto LAB_00015e28;\n      goto LAB_00015e31;\n    }\n    iVar7 = 3;\n    pbVar11 = (byte *)p;\n    pbVar12 = &DAT_0004b0d7;\n    do {\n      if (iVar7 == 0) break;\n      iVar7 = iVar7 + -1;\n      bVar16 = *pbVar11 < *pbVar12;\n      bVar13 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + 1;\n      pbVar12 = pbVar12 + 1;\n    } while (bVar13);\n    if ((!bVar16 && !bVar13) == bVar16) {\n      if (need_save < 0) {\n        return 1;\n      }\nLAB_00015e28:\n      flags = flags | 1;\n      bVar13 = flags == 0;\n      goto LAB_00015e31;\n    }\n    iVar7 = 0;\n    bVar13 = true;\n  }" { (expression_statement "iVar7 = 8;" (assignment_expression "iVar7 = 8" identifier = number_literal) ;) (expression_statement "pbVar11 = (byte *)p;" (assignment_expression "pbVar11 = (byte *)p" identifier = (cast_expression "(byte *)p" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) 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 (iVar7 == 0) break;\n      iVar7 = iVar7 + -1;\n      bVar14 = *pbVar11 < *pbVar12;\n      bVar13 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + 1;\n      pbVar12 = pbVar12 + 1;\n    } while (bVar13);" do (compound_statement "{\n      if (iVar7 == 0) break;\n      iVar7 = iVar7 + -1;\n      bVar14 = *pbVar11 < *pbVar12;\n      bVar13 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + 1;\n      pbVar12 = pbVar12 + 1;\n    }" { (if_statement "if (iVar7 == 0) break;" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar7 = iVar7 + -1;" (assignment_expression "iVar7 = iVar7 + -1" identifier = (binary_expression "iVar7 + -1" identifier + number_literal)) ;) (expression_statement "bVar14 = *pbVar11 < *pbVar12;" (assignment_expression "bVar14 = *pbVar11 < *pbVar12" identifier = (binary_expression "*pbVar11 < *pbVar12" (pointer_expression "*pbVar11" * identifier) < (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "bVar13 = *pbVar11 == *pbVar12;" (assignment_expression "bVar13 = *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 "(bVar13)" ( identifier )) ;) (expression_statement "bVar16 = false;" (assignment_expression "bVar16 = false" identifier = false) ;) (expression_statement "bVar13 = (!bVar14 && !bVar13) == bVar14;" (assignment_expression "bVar13 = (!bVar14 && !bVar13) == bVar14" identifier = (binary_expression "(!bVar14 && !bVar13) == bVar14" (parenthesized_expression "(!bVar14 && !bVar13)" ( (binary_expression "!bVar14 && !bVar13" (unary_expression "!bVar14" ! identifier) && (unary_expression "!bVar13" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar13) {\n      if (need_save < 0) {\n        return 1;\n      }\n      if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\n      if (need_save != 0) goto LAB_00015c78;\nLAB_00015dd0:\n      default_protocol = 4;\n      conf_set_int(conf,2,4);\n      pcVar2 = conf_get_str(conf,0);\n      uVar15 = (undefined1 *)0xfffffff3 < &stack0xffffffc4;\n      uVar17 = &stack0x00000000 == (undefined1 *)0x30;\n      conf_set_str(conf,0x39,pcVar2);\n      iVar7 = 3;\n      pbVar11 = (byte *)p;\n      pbVar12 = &DAT_0004b0d7;\n      do {\n        if (iVar7 == 0) break;\n        iVar7 = iVar7 + -1;\n        uVar15 = *pbVar11 < *pbVar12;\n        uVar17 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n        pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n      } while ((bool)uVar17);\n      bVar13 = (!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15;\n      if (bVar13) goto LAB_00015e28;\n      goto LAB_00015e31;\n    }" if (parenthesized_expression "(bVar13)" ( identifier )) (compound_statement "{\n      if (need_save < 0) {\n        return 1;\n      }\n      if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\n      if (need_save != 0) goto LAB_00015c78;\nLAB_00015dd0:\n      default_protocol = 4;\n      conf_set_int(conf,2,4);\n      pcVar2 = conf_get_str(conf,0);\n      uVar15 = (undefined1 *)0xfffffff3 < &stack0xffffffc4;\n      uVar17 = &stack0x00000000 == (undefined1 *)0x30;\n      conf_set_str(conf,0x39,pcVar2);\n      iVar7 = 3;\n      pbVar11 = (byte *)p;\n      pbVar12 = &DAT_0004b0d7;\n      do {\n        if (iVar7 == 0) break;\n        iVar7 = iVar7 + -1;\n        uVar15 = *pbVar11 < *pbVar12;\n        uVar17 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n        pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n      } while ((bool)uVar17);\n      bVar13 = (!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15;\n      if (bVar13) goto LAB_00015e28;\n      goto LAB_00015e31;\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 (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;" if (parenthesized_expression "(((byte)cmdline_tooltype & 3) != 0)" ( (binary_expression "((byte)cmdline_tooltype & 3) != 0" (parenthesized_expression "((byte)cmdline_tooltype & 3)" ( (binary_expression "(byte)cmdline_tooltype & 3" (cast_expression "(byte)cmdline_tooltype" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00015d50;" goto statement_identifier ;)) (if_statement "if (need_save != 0) goto LAB_00015c78;" if (parenthesized_expression "(need_save != 0)" ( (binary_expression "need_save != 0" identifier != number_literal) )) (goto_statement "goto LAB_00015c78;" goto statement_identifier ;)) (labeled_statement "LAB_00015dd0:\n      default_protocol = 4;" statement_identifier : (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 "pcVar2 = conf_get_str(conf,0);" (assignment_expression "pcVar2 = conf_get_str(conf,0)" identifier = (call_expression "conf_get_str(conf,0)" identifier (argument_list "(conf,0)" ( identifier , number_literal )))) ;) (expression_statement "uVar15 = (undefined1 *)0xfffffff3 < &stack0xffffffc4;" (assignment_expression "uVar15 = (undefined1 *)0xfffffff3 < &stack0xffffffc4" identifier = (binary_expression "(undefined1 *)0xfffffff3 < &stack0xffffffc4" (cast_expression "(undefined1 *)0xfffffff3" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < (pointer_expression "&stack0xffffffc4" & identifier))) ;) (expression_statement "uVar17 = &stack0x00000000 == (undefined1 *)0x30;" (assignment_expression "uVar17 = &stack0x00000000 == (undefined1 *)0x30" identifier = (binary_expression "&stack0x00000000 == (undefined1 *)0x30" (pointer_expression "&stack0x00000000" & identifier) == (cast_expression "(undefined1 *)0x30" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "conf_set_str(conf,0x39,pcVar2);" (call_expression "conf_set_str(conf,0x39,pcVar2)" identifier (argument_list "(conf,0x39,pcVar2)" ( identifier , number_literal , identifier ))) ;) (expression_statement "iVar7 = 3;" (assignment_expression "iVar7 = 3" identifier = number_literal) ;) (expression_statement "pbVar11 = (byte *)p;" (assignment_expression "pbVar11 = (byte *)p" identifier = (cast_expression "(byte *)p" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pbVar12 = &DAT_0004b0d7;" (assignment_expression "pbVar12 = &DAT_0004b0d7" identifier = (pointer_expression "&DAT_0004b0d7" & identifier)) ;) (do_statement "do {\n        if (iVar7 == 0) break;\n        iVar7 = iVar7 + -1;\n        uVar15 = *pbVar11 < *pbVar12;\n        uVar17 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n        pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n      } while ((bool)uVar17);" do (compound_statement "{\n        if (iVar7 == 0) break;\n        iVar7 = iVar7 + -1;\n        uVar15 = *pbVar11 < *pbVar12;\n        uVar17 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n        pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n      }" { (if_statement "if (iVar7 == 0) break;" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar7 = iVar7 + -1;" (assignment_expression "iVar7 = iVar7 + -1" identifier = (binary_expression "iVar7 + -1" identifier + number_literal)) ;) (expression_statement "uVar15 = *pbVar11 < *pbVar12;" (assignment_expression "uVar15 = *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 + (uint)bVar18 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1" identifier = (binary_expression "pbVar11 + (uint)bVar18 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar18 * -2" identifier + (binary_expression "(uint)bVar18 * -2" (cast_expression "(uint)bVar18" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1" identifier = (binary_expression "pbVar12 + (uint)bVar18 * -2 + 1" (binary_expression "pbVar12 + (uint)bVar18 * -2" identifier + (binary_expression "(uint)bVar18 * -2" (cast_expression "(uint)bVar18" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "((bool)uVar17)" ( (cast_expression "(bool)uVar17" ( (type_descriptor "bool" primitive_type) ) identifier) )) ;) (expression_statement "bVar13 = (!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15;" (assignment_expression "bVar13 = (!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15" identifier = (binary_expression "(!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15" (parenthesized_expression "(!(bool)uVar15 && !(bool)uVar17)" ( (binary_expression "!(bool)uVar15 && !(bool)uVar17" (unary_expression "!(bool)uVar15" ! (cast_expression "(bool)uVar15" ( (type_descriptor "bool" primitive_type) ) identifier)) && (unary_expression "!(bool)uVar17" ! (cast_expression "(bool)uVar17" ( (type_descriptor "bool" primitive_type) ) identifier))) )) == (cast_expression "(bool)uVar15" ( (type_descriptor "bool" primitive_type) ) identifier))) ;) (if_statement "if (bVar13) goto LAB_00015e28;" if (parenthesized_expression "(bVar13)" ( identifier )) (goto_statement "goto LAB_00015e28;" goto statement_identifier ;)) (goto_statement "goto LAB_00015e31;" goto statement_identifier ;) })) (expression_statement "iVar7 = 3;" (assignment_expression "iVar7 = 3" identifier = number_literal) ;) (expression_statement "pbVar11 = (byte *)p;" (assignment_expression "pbVar11 = (byte *)p" identifier = (cast_expression "(byte *)p" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pbVar12 = &DAT_0004b0d7;" (assignment_expression "pbVar12 = &DAT_0004b0d7" identifier = (pointer_expression "&DAT_0004b0d7" & identifier)) ;) (do_statement "do {\n      if (iVar7 == 0) break;\n      iVar7 = iVar7 + -1;\n      bVar16 = *pbVar11 < *pbVar12;\n      bVar13 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + 1;\n      pbVar12 = pbVar12 + 1;\n    } while (bVar13);" do (compound_statement "{\n      if (iVar7 == 0) break;\n      iVar7 = iVar7 + -1;\n      bVar16 = *pbVar11 < *pbVar12;\n      bVar13 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + 1;\n      pbVar12 = pbVar12 + 1;\n    }" { (if_statement "if (iVar7 == 0) break;" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar7 = iVar7 + -1;" (assignment_expression "iVar7 = iVar7 + -1" identifier = (binary_expression "iVar7 + -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 "bVar13 = *pbVar11 == *pbVar12;" (assignment_expression "bVar13 = *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 "(bVar13)" ( identifier )) ;) (if_statement "if ((!bVar16 && !bVar13) == bVar16) {\n      if (need_save < 0) {\n        return 1;\n      }\nLAB_00015e28:\n      flags = flags | 1;\n      bVar13 = flags == 0;\n      goto LAB_00015e31;\n    }" if (parenthesized_expression "((!bVar16 && !bVar13) == bVar16)" ( (binary_expression "(!bVar16 && !bVar13) == bVar16" (parenthesized_expression "(!bVar16 && !bVar13)" ( (binary_expression "!bVar16 && !bVar13" (unary_expression "!bVar16" ! identifier) && (unary_expression "!bVar13" ! identifier)) )) == identifier) )) (compound_statement "{\n      if (need_save < 0) {\n        return 1;\n      }\nLAB_00015e28:\n      flags = flags | 1;\n      bVar13 = flags == 0;\n      goto LAB_00015e31;\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_00015e28:\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 "bVar13 = flags == 0;" (assignment_expression "bVar13 = flags == 0" identifier = (binary_expression "flags == 0" identifier == number_literal)) ;) (goto_statement "goto LAB_00015e31;" goto statement_identifier ;) })) (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;) (expression_statement "bVar13 = true;" (assignment_expression "bVar13 = true" identifier = true) ;) }))) (expression_statement "bVar16 = false;" (assignment_expression "bVar16 = false" identifier = false) ;) (expression_statement "iVar8 = 3;" (assignment_expression "iVar8 = 3" identifier = number_literal) ;) (expression_statement "pbVar11 = (byte *)p;" (assignment_expression "pbVar11 = (byte *)p" identifier = (cast_expression "(byte *)p" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pbVar12 = (byte *)0x53a29;" (assignment_expression "pbVar12 = (byte *)0x53a29" identifier = (cast_expression "(byte *)0x53a29" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n    if (iVar8 == 0) break;\n    iVar8 = iVar8 + -1;\n    bVar16 = *pbVar11 < *pbVar12;\n    bVar13 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n    pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n  } while (bVar13);" do (compound_statement "{\n    if (iVar8 == 0) break;\n    iVar8 = iVar8 + -1;\n    bVar16 = *pbVar11 < *pbVar12;\n    bVar13 = *pbVar11 == *pbVar12;\n    pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n    pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n  }" { (if_statement "if (iVar8 == 0) break;" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar8 = iVar8 + -1;" (assignment_expression "iVar8 = iVar8 + -1" identifier = (binary_expression "iVar8 + -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 "bVar13 = *pbVar11 == *pbVar12;" (assignment_expression "bVar13 = *pbVar11 == *pbVar12" identifier = (binary_expression "*pbVar11 == *pbVar12" (pointer_expression "*pbVar11" * identifier) == (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1" identifier = (binary_expression "pbVar11 + (uint)bVar18 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar18 * -2" identifier + (binary_expression "(uint)bVar18 * -2" (cast_expression "(uint)bVar18" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1" identifier = (binary_expression "pbVar12 + (uint)bVar18 * -2 + 1" (binary_expression "pbVar12 + (uint)bVar18 * -2" identifier + (binary_expression "(uint)bVar18 * -2" (cast_expression "(uint)bVar18" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar13)" ( identifier )) ;) (expression_statement "bVar14 = false;" (assignment_expression "bVar14 = false" identifier = false) ;) (expression_statement "bVar13 = (!bVar16 && !bVar13) == bVar16;" (assignment_expression "bVar13 = (!bVar16 && !bVar13) == bVar16" identifier = (binary_expression "(!bVar16 && !bVar13) == bVar16" (parenthesized_expression "(!bVar16 && !bVar13)" ( (binary_expression "!bVar16 && !bVar13" (unary_expression "!bVar16" ! identifier) && (unary_expression "!bVar13" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar13) {\n    if (value == (char *)0x0) {\n      return -2;\n    }\n    if (need_save < 0) {\n      return 2;\n    }\n    if (((byte)cmdline_tooltype & 2) != 0) goto LAB_000161c3;\n    if (need_save != 0) goto LAB_00016123;\n    uVar15 = auStack_2c < (undefined1 *)0x4;\n    uVar17 = &stack0x00000000 == (undefined1 *)0x30;\n    conf_set_str(conf,0x34,value);\n    iVar7 = 9;\n    pbVar11 = (byte *)p;\n    pbVar12 = (byte *)"-loghost";\n    do {\n      if (iVar7 == 0) break;\n      iVar7 = iVar7 + -1;\n      uVar15 = *pbVar11 < *pbVar12;\n      uVar17 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    } while ((bool)uVar17);\n    bVar13 = false;\n    bVar16 = (!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15;\n    if (bVar16) {\n      if (((byte)cmdline_tooltype & 2) != 0) goto LAB_000161c3;\n      goto LAB_00015ec5;\n    }\n    iVar7 = 9;\n    pbVar11 = (byte *)p;\n    pbVar12 = (byte *)"-hostkey";\n    do {\n      if (iVar7 == 0) break;\n      iVar7 = iVar7 + -1;\n      bVar13 = *pbVar11 < *pbVar12;\n      bVar16 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    } while (bVar16);\n    bVar13 = (!bVar13 && !bVar16) == bVar13;\n    if (bVar13) goto LAB_00016218;\nLAB_00016248:\n    iVar7 = 2;\nLAB_0001624d:\n    bVar16 = false;\n    iVar8 = 3;\n    pbVar11 = (byte *)p;\n    pbVar12 = &DAT_0004b0ec;\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar16 = *pbVar11 < *pbVar12;\n      bVar13 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    } while (bVar13);\n    bVar13 = (!bVar16 && !bVar13) == bVar16;\n    if (bVar13) {\nLAB_00016647:\n      if (value == (char *)0x0) {\n        return -2;\n      }\n      if (need_save < 0) {\n        return 2;\n      }\n      if (((byte)cmdline_tooltype & 3) != 0) goto LAB_000161c3;\n      bVar13 = need_save == 0;\n      if (!bVar13) goto LAB_00016123;\n      goto LAB_00015f8f;\n    }\nLAB_0001626b:\n    bVar16 = false;\n    iVar8 = 3;\n    pbVar11 = (byte *)p;\n    pbVar12 = &DAT_0004b0ef;\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar16 = *pbVar11 < *pbVar12;\n      bVar13 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    } while (bVar13);\n    bVar14 = false;\n    bVar13 = (!bVar16 && !bVar13) == bVar16;\n    if (bVar13) goto LAB_00016647;\n    iVar8 = 3;\n    pbVar11 = (byte *)p;\n    pbVar12 = (byte *)0x53a3b;\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar14 = *pbVar11 < *pbVar12;\n      bVar13 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    } while (bVar13);\n    bVar16 = false;\n    bVar13 = (!bVar14 && !bVar13) == bVar14;\n    if (bVar13) goto LAB_00016647;\n    iVar8 = 4;\n    pbVar11 = (byte *)p;\n    pbVar12 = &DAT_0004b0fd;\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar16 = *pbVar11 < *pbVar12;\n      bVar13 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    } while (bVar13);\n    bVar13 = (!bVar16 && !bVar13) == bVar16;\n    if (!bVar13) goto LAB_00016698;\n    if (value == (char *)0x0) {\n      return -2;\n    }\n    if (need_save < 0) {\n      return 2;\n    }\n    if (((byte)cmdline_tooltype & 3) != 0) goto LAB_000161c3;\n    if (need_save != 0) goto LAB_00016123;\nLAB_000162ed:\n    pcVar2 = host_strchr(value,0x3a);\n    if (pcVar2 == (char *)0x0) {\n      cmdline_error("-nc expects argument of form \'host:port\'");\n      return 2;\n    }\n    iVar7 = 2;\n    pcVar4 = dupprintf("%.*s");\n    conf_set_str(conf,0x2e,pcVar4);\n    lVar3 = strtol(pcVar2 + 1,(char **)0x0,10);\n    uVar15 = (undefined1 *)0xfffffff3 < &stack0xffffffc4;\n    uVar17 = &stack0x00000000 == (undefined1 *)0x30;\n    conf_set_int(conf,0x2f,lVar3);\n    safefree(pcVar4);\n    iVar8 = 3;\n    pbVar11 = (byte *)p;\n    pbVar12 = &DAT_0004b101;\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      uVar15 = *pbVar11 < *pbVar12;\n      uVar17 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    } while ((bool)uVar17);\n    bVar13 = (!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15;\n    if (!bVar13) goto LAB_000166e0;\n    if (((byte)cmdline_tooltype & 3) != 0) goto LAB_000161c3;\nLAB_0001639b:\n    iVar7 = 0;\n    pcVar2 = (char *)0x0;\n    __stream = fopen64(value,"r");\n    local_24 = 0;\n    if (__stream == (FILE *)0x0) {\n      cmdline_error("unable to open command file \"%s\"");\n      return 2;\n    }\n    while (iVar8 = fgetc(__stream), iVar8 != -1) {\n      if (iVar7 < (int)local_24) {\n        pcVar2[iVar7] = (char)iVar8;\n      }\n      else {\n        local_24 = iVar7 + 0x200;\n        local_20 = iVar8;\n        pcVar2 = (char *)saferealloc(pcVar2,local_24,1);\n        pcVar2[iVar7] = (char)local_20;\n      }\n      iVar7 = iVar7 + 1;\n    }\n    if (iVar7 < (int)local_24) {\n      pcVar2[iVar7] = '\0';\n    }\n    else {\n      pcVar2 = (char *)saferealloc(pcVar2,iVar7 + 0x200,1);\n      pcVar2[iVar7] = '\0';\n    }\n    iVar7 = 2;\n    fclose(__stream);\n    conf_set_str(conf,0x14,pcVar2);\n    conf_set_str(conf,0x15,"");\n    uVar15 = (undefined1 *)0xfffffff3 < &stack0xffffffc4;\n    uVar17 = &stack0x00000000 == (undefined1 *)0x30;\n    conf_set_int(conf,0x16,1);\n    safefree(pcVar2);\n    iVar8 = 3;\n    pbVar11 = (byte *)p;\n    pbVar12 = &DAT_0004b104;\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      uVar15 = *pbVar11 < *pbVar12;\n      uVar17 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    } while ((bool)uVar17);\n    bVar13 = (!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15;\n    if (!bVar13) goto LAB_00016777;\n    if (((byte)cmdline_tooltype & 2) != 0) goto LAB_000161c3;\nLAB_000164a7:\n    lVar3 = strtol(value,(char **)0x0,10);\n    conf_set_int(conf,1,lVar3);\n    iVar7 = strcmp(p,"-pw");\n    if (iVar7 == 0) {\n      if (((byte)cmdline_tooltype & 2) != 0) goto LAB_000161c3;\nLAB_000164f6:\n      iVar7 = conf_get_int(conf,2);\n      if (iVar7 == 3) {\n        cmdline_password = dupstr(value);\n        uVar9 = 0xffffffff;\n        pcVar2 = value;\n        do {\n          if (uVar9 == 0) break;\n          uVar9 = uVar9 - 1;\n          cVar1 = *pcVar2;\n          pcVar2 = pcVar2 + (uint)bVar18 * -2 + 1;\n        } while (cVar1 != '\0');\n        smemclr(value,~uVar9 - 1);\n      }\n      else {\n        cmdline_error("the -pw option can only be used with the SSH protocol");\n      }\n      iVar7 = strcmp(p,"-agent");\n      if ((iVar7 == 0) || (iVar7 = strcmp(p,"-pagent"), iVar7 == 0)) goto LAB_00015d3a;\n      iVar7 = 2;\n      iVar8 = strcmp(p,"-pageant");\n      if (iVar8 == 0) goto LAB_0001688c;\n    }\n    else {\n      iVar7 = strcmp(p,"-agent");\n      if (iVar7 == 0) {\nLAB_00015d3a:\n        if (((byte)cmdline_tooltype & 2) != 0) goto LAB_00015d50;\n        goto LAB_000168a1;\n      }\n      iVar7 = 2;\n      iVar8 = strcmp(p,"-pagent");\n      if (iVar8 == 0) goto LAB_0001688c;\nLAB_0001685f:\n      iVar8 = strcmp(p,"-pageant");\n      if (iVar8 == 0) goto LAB_00016884;\n    }\n    iVar8 = strcmp(p,"-noagent");\n    if ((iVar8 == 0) || (iVar8 = strcmp(p,"-nopagent"), iVar8 == 0)) {\nLAB_00016e5e:\n      if (need_save < 0) {\n        return 1;\n      }\nLAB_00016e44:\n      if (((byte)cmdline_tooltype & 2) != 0) goto LAB_00015d50;\n      if (need_save != 0) goto LAB_00015c78;\n      goto LAB_000168e1;\n    }\nLAB_000165eb:\n    iVar8 = strcmp(p,"-nopageant");\n    if (iVar8 == 0) goto LAB_00016e5e;\n    iVar8 = strcmp(p,"-A");\n    if (iVar8 != 0) {\n      iVar8 = strcmp(p,"-a");\n      if (iVar8 != 0) goto LAB_00016f0f;\n      if (need_save < 0) {\n        return 1;\n      }\n      goto LAB_0001700b;\n    }\n    if (need_save < 0) {\n      return 1;\n    }\n    if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\n    if (need_save != 0) goto LAB_00015c78;\nLAB_00016921:\n    conf_set_int(conf,0x1d,1);\n    iVar7 = strcmp(p,"-a");\n    if (iVar7 != 0) {\n      iVar7 = 1;\n      iVar8 = strcmp(p,"-X");\n      if (iVar8 == 0) goto LAB_00016f38;\nLAB_00016f97:\n      iVar8 = strcmp(p,"-x");\n      if (iVar8 != 0) goto LAB_0001704f;\n      if (need_save < 0) {\n        return 1;\n      }\nLAB_00016fc4:\n      if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\n      if (need_save != 0) goto LAB_00015c78;\n      goto LAB_000169e4;\n    }\n    if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\nLAB_00016961:\n    conf_set_int(conf,0x1d,0);\n    iVar7 = strcmp(p,"-X");\n    if (iVar7 == 0) {\n      if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\n      goto LAB_000169a1;\n    }\n    iVar7 = 1;\n    iVar8 = strcmp(p,"-x");\n    if (iVar8 == 0) goto LAB_00016fc4;\nLAB_0001704f:\n    iVar8 = strcmp(p,"-t");\n    if (iVar8 == 0) {\n      if (need_save < 0) {\n        return 1;\n      }\n      goto LAB_0001707c;\n    }\nLAB_000177b1:\n    iVar8 = strcmp(p,"-T");\n    if (iVar8 != 0) goto LAB_00017759;\n    if (need_save < 0) {\n      return 1;\n    }\nLAB_0001770d:\n    if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\n    if (need_save != 0) goto LAB_00017091;\nLAB_00016a67:\n    conf_set_int(conf,0x16,1);\n    iVar7 = strcmp(p,"-N");\n    if (iVar7 == 0) {\n      if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\nLAB_00016aa7:\n      conf_set_int(conf,0x2d,1);\n      iVar7 = strcmp(p,"-C");\n      if (iVar7 == 0) {\n        if (((byte)cmdline_tooltype & 2) != 0) goto LAB_00015d50;\n        goto LAB_00016ae7;\n      }\n      iVar7 = 1;\n      iVar8 = strcmp(p,"-1");\n      if (iVar8 != 0) goto LAB_00017647;\nLAB_000175ed:\n      if (((byte)cmdline_tooltype & 2) != 0) goto LAB_00015d50;\n      if (need_save != 0) goto LAB_00015c78;\n      goto LAB_00016b27;\n    }\n    iVar7 = 1;\n    iVar8 = strcmp(p,"-C");\n    if (iVar8 == 0) goto LAB_0001762d;\nLAB_00017679:\n    iVar8 = strcmp(p,"-1");\n    if (iVar8 == 0) {\n      if (need_save < 0) {\n        return 1;\n      }\n      goto LAB_000175ed;\n    }\nLAB_00017647:\n    iVar8 = strcmp(p,"-2");\n    if (iVar8 == 0) {\n      if (need_save < 0) {\n        return 1;\n      }\nLAB_000175ad:\n      if (((byte)cmdline_tooltype & 2) != 0) goto LAB_00015d50;\n      if (need_save != 0) {\nLAB_00015c78:\n        cmdline_save_param(p,value,0);\n        return 1;\n      }\nLAB_00016b67:\n      iVar7 = 1;\n      conf_set_int(conf,0x21,3);\n    }\n  }\n  else {\n    iVar8 = 9;\n    pbVar11 = (byte *)p;\n    pbVar12 = (byte *)"-loghost";\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar14 = *pbVar11 < *pbVar12;\n      bVar13 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    } while (bVar13);\n    bVar16 = false;\n    bVar13 = (!bVar14 && !bVar13) == bVar14;\n    if (!bVar13) {\n      iVar8 = 9;\n      pbVar11 = (byte *)p;\n      pbVar12 = (byte *)"-hostkey";\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar16 = *pbVar11 < *pbVar12;\n        bVar13 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n        pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n      } while (bVar13);\n      bVar13 = (!bVar16 && !bVar13) == bVar16;\n      if (bVar13) {\n        if (value == (char *)0x0) {\n          return -2;\n        }\n        if (need_save < 0) {\n          return 2;\n        }\nLAB_00016218:\n        if (((byte)cmdline_tooltype & 2) != 0) goto LAB_000161c3;\n        if (need_save != 0) goto LAB_00016123;\n        goto LAB_00015f0d;\n      }\n      goto LAB_0001624d;\n    }\n    if (value == (char *)0x0) {\n      return -2;\n    }\n    if (need_save < 0) {\n      return 2;\n    }\n    if (((byte)cmdline_tooltype & 2) != 0) goto LAB_000161c3;\n    if (need_save != 0) goto LAB_00016123;\nLAB_00015ec5:\n    uVar15 = auStack_2c < (undefined1 *)0x4;\n    uVar17 = &stack0x00000000 == (undefined1 *)0x30;\n    conf_set_str(conf,9,value);\n    iVar7 = 9;\n    pbVar11 = (byte *)p;\n    pbVar12 = (byte *)"-hostkey";\n    do {\n      if (iVar7 == 0) break;\n      iVar7 = iVar7 + -1;\n      uVar15 = *pbVar11 < *pbVar12;\n      uVar17 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    } while ((bool)uVar17);\n    bVar13 = (!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15;\n    if (!bVar13) goto LAB_00016248;\n    if (((byte)cmdline_tooltype & 2) != 0) goto LAB_000161c3;\nLAB_00015f0d:\n    pcVar2 = dupstr(value);\n    iVar7 = validate_manual_hostkey(pcVar2);\n    uVar15 = 0;\n    uVar17 = iVar7 == 0;\n    if ((bool)uVar17) {\n      cmdline_error("\'%s\' is not a valid format for a manual host key specification");\n      safefree(pcVar2);\n      return 2;\n    }\n    iVar7 = 2;\n    conf_set_str_str(conf,0xad,pcVar2,"");\n    safefree(pcVar2);\n    iVar8 = 3;\n    pbVar11 = (byte *)p;\n    pbVar12 = &DAT_0004b0ec;\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      uVar15 = *pbVar11 < *pbVar12;\n      uVar17 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    } while ((bool)uVar17);\n    bVar13 = (!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15;\n    if (!bVar13) goto LAB_0001626b;\n    bVar13 = ((byte)cmdline_tooltype & 3) == 0;\n    if (!bVar13) goto LAB_000161c3;\nLAB_00015f8f:\n    bVar16 = false;\n    iVar7 = 3;\n    pbVar11 = (byte *)p;\n    pbVar12 = (byte *)0x53a3b;\n    do {\n      if (iVar7 == 0) break;\n      iVar7 = iVar7 + -1;\n      bVar16 = *pbVar11 < *pbVar12;\n      bVar13 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    } while (bVar13);\n    if ((!bVar16 && !bVar13) == bVar16) {\n      pcVar2 = dupprintf("L%s");\n      pcVar4 = dupstr("D");\n    }\n    else {\n      pcVar2 = host_strchr(value,0x3a);\n      pcVar4 = pcVar2;\n      if (pcVar2 == (char *)0x0) {\n        cmdline_error("-%c expects at least two colons in its argument");\n        return 2;\n      }\n      do {\n        pcVar10 = pcVar4;\n        pcVar4 = pcVar2;\n        pcVar2 = host_strchr(pcVar4 + 1,0x3a);\n      } while (pcVar2 != (char *)0x0);\n      pcVar2 = dupprintf("%c%.*s");\n      pcVar4 = dupstr(pcVar10 + 1);\n    }\n    uVar15 = (undefined1 *)0xffffffef < &stack0xffffffc4;\n    uVar17 = &stack0x00000000 == (undefined1 *)0x2c;\n    iVar7 = 2;\n    conf_set_str_str(conf,0x9b,pcVar2,pcVar4);\n    safefree(pcVar2);\n    safefree(pcVar4);\n    iVar8 = 4;\n    pbVar11 = (byte *)p;\n    pbVar12 = &DAT_0004b0fd;\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      uVar15 = *pbVar11 < *pbVar12;\n      uVar17 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    } while ((bool)uVar17);\n    bVar13 = (!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15;\n    if (bVar13) {\n      if (((byte)cmdline_tooltype & 3) != 0) goto LAB_000161c3;\n      goto LAB_000162ed;\n    }\nLAB_00016698:\n    bVar16 = false;\n    iVar8 = 3;\n    pbVar11 = (byte *)p;\n    pbVar12 = &DAT_0004b101;\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar16 = *pbVar11 < *pbVar12;\n      bVar13 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    } while (bVar13);\n    bVar13 = (!bVar16 && !bVar13) == bVar16;\n    if (bVar13) {\n      if (value == (char *)0x0) {\n        return -2;\n      }\n      if (need_save < 0) {\n        return 2;\n      }\n      if (((byte)cmdline_tooltype & 3) != 0) goto LAB_000161c3;\n      if (need_save != 0) goto LAB_00016123;\n      goto LAB_0001639b;\n    }\nLAB_000166e0:\n    bVar16 = false;\n    iVar8 = 3;\n    pbVar11 = (byte *)p;\n    pbVar12 = &DAT_0004b104;\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar16 = *pbVar11 < *pbVar12;\n      bVar13 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    } while (bVar13);\n    bVar13 = (!bVar16 && !bVar13) == bVar16;\n    if (bVar13) {\n      if (value == (char *)0x0) {\n        return -2;\n      }\n      if (need_save < 0) {\n        return 2;\n      }\n      if (((byte)cmdline_tooltype & 2) != 0) goto LAB_000161c3;\n      if (need_save != 0) goto LAB_00016723;\n      goto LAB_000164a7;\n    }\nLAB_00016777:\n    bVar16 = false;\n    iVar8 = 4;\n    pbVar11 = (byte *)p;\n    pbVar12 = &DAT_0004b107;\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar16 = *pbVar11 < *pbVar12;\n      bVar13 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    } while (bVar13);\n    if ((!bVar16 && !bVar13) == bVar16) {\n      if (value == (char *)0x0) {\n        return -2;\n      }\n      if (need_save < 0) {\n        return 2;\n      }\n      if (((byte)cmdline_tooltype & 2) != 0) goto LAB_000161c3;\n      if (need_save != 0) goto LAB_00016723;\n      goto LAB_000164f6;\n    }\n    iVar8 = strcmp(p,"-agent");\n    if ((iVar8 != 0) && (iVar8 = strcmp(p,"-pagent"), iVar8 != 0)) goto LAB_0001685f;\nLAB_00016884:\n    if (need_save < 0) {\n      return 1;\n    }\nLAB_0001688c:\n    if (((byte)cmdline_tooltype & 2) != 0) goto LAB_00015d50;\n    if (need_save != 0) goto LAB_00015c78;\nLAB_000168a1:\n    conf_set_int(conf,0x1c,1);\n    iVar7 = strcmp(p,"-noagent");\n    if (iVar7 != 0) {\n      iVar7 = 1;\n      iVar8 = strcmp(p,"-nopagent");\n      if (iVar8 != 0) goto LAB_000165eb;\n      goto LAB_00016e44;\n    }\n    if (((byte)cmdline_tooltype & 2) != 0) goto LAB_00015d50;\nLAB_000168e1:\n    conf_set_int(conf,0x1c,0);\n    iVar7 = strcmp(p,"-A");\n    if (iVar7 == 0) {\n      if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\n      goto LAB_00016921;\n    }\n    iVar7 = 1;\n    iVar8 = strcmp(p,"-a");\n    if (iVar8 == 0) {\nLAB_0001700b:\n      if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\n      if (need_save != 0) goto LAB_00015c78;\n      goto LAB_00016961;\n    }\nLAB_00016f0f:\n    iVar8 = strcmp(p,"-X");\n    if (iVar8 != 0) goto LAB_00016f97;\n    if (need_save < 0) {\n      return 1;\n    }\nLAB_00016f38:\n    if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\n    if (need_save != 0) goto LAB_00015c78;\nLAB_000169a1:\n    conf_set_int(conf,0x95,1);\n    iVar7 = strcmp(p,"-x");\n    if (iVar7 == 0) {\n      if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\nLAB_000169e4:\n      conf_set_int(conf,0x95,0);\n      iVar7 = strcmp(p,"-t");\n      if (iVar7 == 0) {\n        if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\n        goto LAB_00016a27;\n      }\n      iVar7 = 1;\n      iVar8 = strcmp(p,"-T");\n      if (iVar8 == 0) goto LAB_0001770d;\nLAB_00017759:\n      iVar8 = strcmp(p,"-N");\n      if (iVar8 != 0) goto LAB_00017727;\n      if (need_save < 0) {\n        return 1;\n      }\nLAB_000176cd:\n      if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\n      if (need_save != 0) goto LAB_00015c78;\n      goto LAB_00016aa7;\n    }\n    iVar7 = 1;\n    iVar8 = strcmp(p,"-t");\n    if (iVar8 != 0) goto LAB_000177b1;\nLAB_0001707c:\n    if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\n    if (need_save != 0) goto LAB_00017091;\nLAB_00016a27:\n    conf_set_int(conf,0x16,0);\n    iVar7 = strcmp(p,"-T");\n    if (iVar7 == 0) {\n      if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\n      goto LAB_00016a67;\n    }\n    iVar7 = 1;\n    iVar8 = strcmp(p,"-N");\n    if (iVar8 == 0) goto LAB_000176cd;\nLAB_00017727:\n    iVar8 = strcmp(p,"-C");\n    if (iVar8 != 0) goto LAB_00017679;\n    if (need_save < 0) {\n      return 1;\n    }\nLAB_0001762d:\n    if (((byte)cmdline_tooltype & 2) != 0) goto LAB_00015d50;\n    if (need_save != 0) goto LAB_00015c78;\nLAB_00016ae7:\n    conf_set_int(conf,0x17,1);\n    iVar7 = strcmp(p,"-1");\n    if (iVar7 == 0) {\n      if (((byte)cmdline_tooltype & 2) != 0) goto LAB_00015d50;\nLAB_00016b27:\n      conf_set_int(conf,0x21,0);\n      iVar7 = strcmp(p,"-2");\n      if (iVar7 == 0) {\n        if (((byte)cmdline_tooltype & 2) != 0) {\nLAB_00015d50:\n          cmdline_error("option \"%s\" not available in this tool");\n          return 1;\n        }\n        goto LAB_00016b67;\n      }\n    }\n    else {\n      iVar7 = strcmp(p,"-2");\n      if (iVar7 == 0) goto LAB_000175ad;\n    }\n    iVar7 = 1;\n  }" if (parenthesized_expression "(bVar13)" ( identifier )) (compound_statement "{\n    if (value == (char *)0x0) {\n      return -2;\n    }\n    if (need_save < 0) {\n      return 2;\n    }\n    if (((byte)cmdline_tooltype & 2) != 0) goto LAB_000161c3;\n    if (need_save != 0) goto LAB_00016123;\n    uVar15 = auStack_2c < (undefined1 *)0x4;\n    uVar17 = &stack0x00000000 == (undefined1 *)0x30;\n    conf_set_str(conf,0x34,value);\n    iVar7 = 9;\n    pbVar11 = (byte *)p;\n    pbVar12 = (byte *)"-loghost";\n    do {\n      if (iVar7 == 0) break;\n      iVar7 = iVar7 + -1;\n      uVar15 = *pbVar11 < *pbVar12;\n      uVar17 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    } while ((bool)uVar17);\n    bVar13 = false;\n    bVar16 = (!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15;\n    if (bVar16) {\n      if (((byte)cmdline_tooltype & 2) != 0) goto LAB_000161c3;\n      goto LAB_00015ec5;\n    }\n    iVar7 = 9;\n    pbVar11 = (byte *)p;\n    pbVar12 = (byte *)"-hostkey";\n    do {\n      if (iVar7 == 0) break;\n      iVar7 = iVar7 + -1;\n      bVar13 = *pbVar11 < *pbVar12;\n      bVar16 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    } while (bVar16);\n    bVar13 = (!bVar13 && !bVar16) == bVar13;\n    if (bVar13) goto LAB_00016218;\nLAB_00016248:\n    iVar7 = 2;\nLAB_0001624d:\n    bVar16 = false;\n    iVar8 = 3;\n    pbVar11 = (byte *)p;\n    pbVar12 = &DAT_0004b0ec;\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar16 = *pbVar11 < *pbVar12;\n      bVar13 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    } while (bVar13);\n    bVar13 = (!bVar16 && !bVar13) == bVar16;\n    if (bVar13) {\nLAB_00016647:\n      if (value == (char *)0x0) {\n        return -2;\n      }\n      if (need_save < 0) {\n        return 2;\n      }\n      if (((byte)cmdline_tooltype & 3) != 0) goto LAB_000161c3;\n      bVar13 = need_save == 0;\n      if (!bVar13) goto LAB_00016123;\n      goto LAB_00015f8f;\n    }\nLAB_0001626b:\n    bVar16 = false;\n    iVar8 = 3;\n    pbVar11 = (byte *)p;\n    pbVar12 = &DAT_0004b0ef;\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar16 = *pbVar11 < *pbVar12;\n      bVar13 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    } while (bVar13);\n    bVar14 = false;\n    bVar13 = (!bVar16 && !bVar13) == bVar16;\n    if (bVar13) goto LAB_00016647;\n    iVar8 = 3;\n    pbVar11 = (byte *)p;\n    pbVar12 = (byte *)0x53a3b;\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar14 = *pbVar11 < *pbVar12;\n      bVar13 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    } while (bVar13);\n    bVar16 = false;\n    bVar13 = (!bVar14 && !bVar13) == bVar14;\n    if (bVar13) goto LAB_00016647;\n    iVar8 = 4;\n    pbVar11 = (byte *)p;\n    pbVar12 = &DAT_0004b0fd;\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar16 = *pbVar11 < *pbVar12;\n      bVar13 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    } while (bVar13);\n    bVar13 = (!bVar16 && !bVar13) == bVar16;\n    if (!bVar13) goto LAB_00016698;\n    if (value == (char *)0x0) {\n      return -2;\n    }\n    if (need_save < 0) {\n      return 2;\n    }\n    if (((byte)cmdline_tooltype & 3) != 0) goto LAB_000161c3;\n    if (need_save != 0) goto LAB_00016123;\nLAB_000162ed:\n    pcVar2 = host_strchr(value,0x3a);\n    if (pcVar2 == (char *)0x0) {\n      cmdline_error("-nc expects argument of form \'host:port\'");\n      return 2;\n    }\n    iVar7 = 2;\n    pcVar4 = dupprintf("%.*s");\n    conf_set_str(conf,0x2e,pcVar4);\n    lVar3 = strtol(pcVar2 + 1,(char **)0x0,10);\n    uVar15 = (undefined1 *)0xfffffff3 < &stack0xffffffc4;\n    uVar17 = &stack0x00000000 == (undefined1 *)0x30;\n    conf_set_int(conf,0x2f,lVar3);\n    safefree(pcVar4);\n    iVar8 = 3;\n    pbVar11 = (byte *)p;\n    pbVar12 = &DAT_0004b101;\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      uVar15 = *pbVar11 < *pbVar12;\n      uVar17 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    } while ((bool)uVar17);\n    bVar13 = (!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15;\n    if (!bVar13) goto LAB_000166e0;\n    if (((byte)cmdline_tooltype & 3) != 0) goto LAB_000161c3;\nLAB_0001639b:\n    iVar7 = 0;\n    pcVar2 = (char *)0x0;\n    __stream = fopen64(value,"r");\n    local_24 = 0;\n    if (__stream == (FILE *)0x0) {\n      cmdline_error("unable to open command file \"%s\"");\n      return 2;\n    }\n    while (iVar8 = fgetc(__stream), iVar8 != -1) {\n      if (iVar7 < (int)local_24) {\n        pcVar2[iVar7] = (char)iVar8;\n      }\n      else {\n        local_24 = iVar7 + 0x200;\n        local_20 = iVar8;\n        pcVar2 = (char *)saferealloc(pcVar2,local_24,1);\n        pcVar2[iVar7] = (char)local_20;\n      }\n      iVar7 = iVar7 + 1;\n    }\n    if (iVar7 < (int)local_24) {\n      pcVar2[iVar7] = '\0';\n    }\n    else {\n      pcVar2 = (char *)saferealloc(pcVar2,iVar7 + 0x200,1);\n      pcVar2[iVar7] = '\0';\n    }\n    iVar7 = 2;\n    fclose(__stream);\n    conf_set_str(conf,0x14,pcVar2);\n    conf_set_str(conf,0x15,"");\n    uVar15 = (undefined1 *)0xfffffff3 < &stack0xffffffc4;\n    uVar17 = &stack0x00000000 == (undefined1 *)0x30;\n    conf_set_int(conf,0x16,1);\n    safefree(pcVar2);\n    iVar8 = 3;\n    pbVar11 = (byte *)p;\n    pbVar12 = &DAT_0004b104;\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      uVar15 = *pbVar11 < *pbVar12;\n      uVar17 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    } while ((bool)uVar17);\n    bVar13 = (!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15;\n    if (!bVar13) goto LAB_00016777;\n    if (((byte)cmdline_tooltype & 2) != 0) goto LAB_000161c3;\nLAB_000164a7:\n    lVar3 = strtol(value,(char **)0x0,10);\n    conf_set_int(conf,1,lVar3);\n    iVar7 = strcmp(p,"-pw");\n    if (iVar7 == 0) {\n      if (((byte)cmdline_tooltype & 2) != 0) goto LAB_000161c3;\nLAB_000164f6:\n      iVar7 = conf_get_int(conf,2);\n      if (iVar7 == 3) {\n        cmdline_password = dupstr(value);\n        uVar9 = 0xffffffff;\n        pcVar2 = value;\n        do {\n          if (uVar9 == 0) break;\n          uVar9 = uVar9 - 1;\n          cVar1 = *pcVar2;\n          pcVar2 = pcVar2 + (uint)bVar18 * -2 + 1;\n        } while (cVar1 != '\0');\n        smemclr(value,~uVar9 - 1);\n      }\n      else {\n        cmdline_error("the -pw option can only be used with the SSH protocol");\n      }\n      iVar7 = strcmp(p,"-agent");\n      if ((iVar7 == 0) || (iVar7 = strcmp(p,"-pagent"), iVar7 == 0)) goto LAB_00015d3a;\n      iVar7 = 2;\n      iVar8 = strcmp(p,"-pageant");\n      if (iVar8 == 0) goto LAB_0001688c;\n    }\n    else {\n      iVar7 = strcmp(p,"-agent");\n      if (iVar7 == 0) {\nLAB_00015d3a:\n        if (((byte)cmdline_tooltype & 2) != 0) goto LAB_00015d50;\n        goto LAB_000168a1;\n      }\n      iVar7 = 2;\n      iVar8 = strcmp(p,"-pagent");\n      if (iVar8 == 0) goto LAB_0001688c;\nLAB_0001685f:\n      iVar8 = strcmp(p,"-pageant");\n      if (iVar8 == 0) goto LAB_00016884;\n    }\n    iVar8 = strcmp(p,"-noagent");\n    if ((iVar8 == 0) || (iVar8 = strcmp(p,"-nopagent"), iVar8 == 0)) {\nLAB_00016e5e:\n      if (need_save < 0) {\n        return 1;\n      }\nLAB_00016e44:\n      if (((byte)cmdline_tooltype & 2) != 0) goto LAB_00015d50;\n      if (need_save != 0) goto LAB_00015c78;\n      goto LAB_000168e1;\n    }\nLAB_000165eb:\n    iVar8 = strcmp(p,"-nopageant");\n    if (iVar8 == 0) goto LAB_00016e5e;\n    iVar8 = strcmp(p,"-A");\n    if (iVar8 != 0) {\n      iVar8 = strcmp(p,"-a");\n      if (iVar8 != 0) goto LAB_00016f0f;\n      if (need_save < 0) {\n        return 1;\n      }\n      goto LAB_0001700b;\n    }\n    if (need_save < 0) {\n      return 1;\n    }\n    if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\n    if (need_save != 0) goto LAB_00015c78;\nLAB_00016921:\n    conf_set_int(conf,0x1d,1);\n    iVar7 = strcmp(p,"-a");\n    if (iVar7 != 0) {\n      iVar7 = 1;\n      iVar8 = strcmp(p,"-X");\n      if (iVar8 == 0) goto LAB_00016f38;\nLAB_00016f97:\n      iVar8 = strcmp(p,"-x");\n      if (iVar8 != 0) goto LAB_0001704f;\n      if (need_save < 0) {\n        return 1;\n      }\nLAB_00016fc4:\n      if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\n      if (need_save != 0) goto LAB_00015c78;\n      goto LAB_000169e4;\n    }\n    if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\nLAB_00016961:\n    conf_set_int(conf,0x1d,0);\n    iVar7 = strcmp(p,"-X");\n    if (iVar7 == 0) {\n      if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\n      goto LAB_000169a1;\n    }\n    iVar7 = 1;\n    iVar8 = strcmp(p,"-x");\n    if (iVar8 == 0) goto LAB_00016fc4;\nLAB_0001704f:\n    iVar8 = strcmp(p,"-t");\n    if (iVar8 == 0) {\n      if (need_save < 0) {\n        return 1;\n      }\n      goto LAB_0001707c;\n    }\nLAB_000177b1:\n    iVar8 = strcmp(p,"-T");\n    if (iVar8 != 0) goto LAB_00017759;\n    if (need_save < 0) {\n      return 1;\n    }\nLAB_0001770d:\n    if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\n    if (need_save != 0) goto LAB_00017091;\nLAB_00016a67:\n    conf_set_int(conf,0x16,1);\n    iVar7 = strcmp(p,"-N");\n    if (iVar7 == 0) {\n      if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\nLAB_00016aa7:\n      conf_set_int(conf,0x2d,1);\n      iVar7 = strcmp(p,"-C");\n      if (iVar7 == 0) {\n        if (((byte)cmdline_tooltype & 2) != 0) goto LAB_00015d50;\n        goto LAB_00016ae7;\n      }\n      iVar7 = 1;\n      iVar8 = strcmp(p,"-1");\n      if (iVar8 != 0) goto LAB_00017647;\nLAB_000175ed:\n      if (((byte)cmdline_tooltype & 2) != 0) goto LAB_00015d50;\n      if (need_save != 0) goto LAB_00015c78;\n      goto LAB_00016b27;\n    }\n    iVar7 = 1;\n    iVar8 = strcmp(p,"-C");\n    if (iVar8 == 0) goto LAB_0001762d;\nLAB_00017679:\n    iVar8 = strcmp(p,"-1");\n    if (iVar8 == 0) {\n      if (need_save < 0) {\n        return 1;\n      }\n      goto LAB_000175ed;\n    }\nLAB_00017647:\n    iVar8 = strcmp(p,"-2");\n    if (iVar8 == 0) {\n      if (need_save < 0) {\n        return 1;\n      }\nLAB_000175ad:\n      if (((byte)cmdline_tooltype & 2) != 0) goto LAB_00015d50;\n      if (need_save != 0) {\nLAB_00015c78:\n        cmdline_save_param(p,value,0);\n        return 1;\n      }\nLAB_00016b67:\n      iVar7 = 1;\n      conf_set_int(conf,0x21,3);\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 ;) })) (if_statement "if (((byte)cmdline_tooltype & 2) != 0) goto LAB_000161c3;" if (parenthesized_expression "(((byte)cmdline_tooltype & 2) != 0)" ( (binary_expression "((byte)cmdline_tooltype & 2) != 0" (parenthesized_expression "((byte)cmdline_tooltype & 2)" ( (binary_expression "(byte)cmdline_tooltype & 2" (cast_expression "(byte)cmdline_tooltype" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_000161c3;" goto statement_identifier ;)) (if_statement "if (need_save != 0) goto LAB_00016123;" if (parenthesized_expression "(need_save != 0)" ( (binary_expression "need_save != 0" identifier != number_literal) )) (goto_statement "goto LAB_00016123;" goto statement_identifier ;)) (expression_statement "uVar15 = auStack_2c < (undefined1 *)0x4;" (assignment_expression "uVar15 = auStack_2c < (undefined1 *)0x4" identifier = (binary_expression "auStack_2c < (undefined1 *)0x4" identifier < (cast_expression "(undefined1 *)0x4" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "uVar17 = &stack0x00000000 == (undefined1 *)0x30;" (assignment_expression "uVar17 = &stack0x00000000 == (undefined1 *)0x30" identifier = (binary_expression "&stack0x00000000 == (undefined1 *)0x30" (pointer_expression "&stack0x00000000" & identifier) == (cast_expression "(undefined1 *)0x30" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) 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 "iVar7 = 9;" (assignment_expression "iVar7 = 9" identifier = number_literal) ;) (expression_statement "pbVar11 = (byte *)p;" (assignment_expression "pbVar11 = (byte *)p" identifier = (cast_expression "(byte *)p" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) 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 (iVar7 == 0) break;\n      iVar7 = iVar7 + -1;\n      uVar15 = *pbVar11 < *pbVar12;\n      uVar17 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    } while ((bool)uVar17);" do (compound_statement "{\n      if (iVar7 == 0) break;\n      iVar7 = iVar7 + -1;\n      uVar15 = *pbVar11 < *pbVar12;\n      uVar17 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    }" { (if_statement "if (iVar7 == 0) break;" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar7 = iVar7 + -1;" (assignment_expression "iVar7 = iVar7 + -1" identifier = (binary_expression "iVar7 + -1" identifier + number_literal)) ;) (expression_statement "uVar15 = *pbVar11 < *pbVar12;" (assignment_expression "uVar15 = *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 + (uint)bVar18 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1" identifier = (binary_expression "pbVar11 + (uint)bVar18 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar18 * -2" identifier + (binary_expression "(uint)bVar18 * -2" (cast_expression "(uint)bVar18" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1" identifier = (binary_expression "pbVar12 + (uint)bVar18 * -2 + 1" (binary_expression "pbVar12 + (uint)bVar18 * -2" identifier + (binary_expression "(uint)bVar18 * -2" (cast_expression "(uint)bVar18" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "((bool)uVar17)" ( (cast_expression "(bool)uVar17" ( (type_descriptor "bool" primitive_type) ) identifier) )) ;) (expression_statement "bVar13 = false;" (assignment_expression "bVar13 = false" identifier = false) ;) (expression_statement "bVar16 = (!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15;" (assignment_expression "bVar16 = (!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15" identifier = (binary_expression "(!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15" (parenthesized_expression "(!(bool)uVar15 && !(bool)uVar17)" ( (binary_expression "!(bool)uVar15 && !(bool)uVar17" (unary_expression "!(bool)uVar15" ! (cast_expression "(bool)uVar15" ( (type_descriptor "bool" primitive_type) ) identifier)) && (unary_expression "!(bool)uVar17" ! (cast_expression "(bool)uVar17" ( (type_descriptor "bool" primitive_type) ) identifier))) )) == (cast_expression "(bool)uVar15" ( (type_descriptor "bool" primitive_type) ) identifier))) ;) (if_statement "if (bVar16) {\n      if (((byte)cmdline_tooltype & 2) != 0) goto LAB_000161c3;\n      goto LAB_00015ec5;\n    }" if (parenthesized_expression "(bVar16)" ( identifier )) (compound_statement "{\n      if (((byte)cmdline_tooltype & 2) != 0) goto LAB_000161c3;\n      goto LAB_00015ec5;\n    }" { (if_statement "if (((byte)cmdline_tooltype & 2) != 0) goto LAB_000161c3;" if (parenthesized_expression "(((byte)cmdline_tooltype & 2) != 0)" ( (binary_expression "((byte)cmdline_tooltype & 2) != 0" (parenthesized_expression "((byte)cmdline_tooltype & 2)" ( (binary_expression "(byte)cmdline_tooltype & 2" (cast_expression "(byte)cmdline_tooltype" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_000161c3;" goto statement_identifier ;)) (goto_statement "goto LAB_00015ec5;" goto statement_identifier ;) })) (expression_statement "iVar7 = 9;" (assignment_expression "iVar7 = 9" identifier = number_literal) ;) (expression_statement "pbVar11 = (byte *)p;" (assignment_expression "pbVar11 = (byte *)p" identifier = (cast_expression "(byte *)p" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) 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 (iVar7 == 0) break;\n      iVar7 = iVar7 + -1;\n      bVar13 = *pbVar11 < *pbVar12;\n      bVar16 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    } while (bVar16);" do (compound_statement "{\n      if (iVar7 == 0) break;\n      iVar7 = iVar7 + -1;\n      bVar13 = *pbVar11 < *pbVar12;\n      bVar16 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    }" { (if_statement "if (iVar7 == 0) break;" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar7 = iVar7 + -1;" (assignment_expression "iVar7 = iVar7 + -1" identifier = (binary_expression "iVar7 + -1" identifier + number_literal)) ;) (expression_statement "bVar13 = *pbVar11 < *pbVar12;" (assignment_expression "bVar13 = *pbVar11 < *pbVar12" identifier = (binary_expression "*pbVar11 < *pbVar12" (pointer_expression "*pbVar11" * identifier) < (pointer_expression "*pbVar12" * identifier))) ;) (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 "pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1" identifier = (binary_expression "pbVar11 + (uint)bVar18 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar18 * -2" identifier + (binary_expression "(uint)bVar18 * -2" (cast_expression "(uint)bVar18" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1" identifier = (binary_expression "pbVar12 + (uint)bVar18 * -2 + 1" (binary_expression "pbVar12 + (uint)bVar18 * -2" identifier + (binary_expression "(uint)bVar18 * -2" (cast_expression "(uint)bVar18" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar16)" ( identifier )) ;) (expression_statement "bVar13 = (!bVar13 && !bVar16) == bVar13;" (assignment_expression "bVar13 = (!bVar13 && !bVar16) == bVar13" identifier = (binary_expression "(!bVar13 && !bVar16) == bVar13" (parenthesized_expression "(!bVar13 && !bVar16)" ( (binary_expression "!bVar13 && !bVar16" (unary_expression "!bVar13" ! identifier) && (unary_expression "!bVar16" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar13) goto LAB_00016218;" if (parenthesized_expression "(bVar13)" ( identifier )) (goto_statement "goto LAB_00016218;" goto statement_identifier ;)) (labeled_statement "LAB_00016248:\n    iVar7 = 2;" statement_identifier : (expression_statement "iVar7 = 2;" (assignment_expression "iVar7 = 2" identifier = number_literal) ;)) (labeled_statement "LAB_0001624d:\n    bVar16 = false;" statement_identifier : (expression_statement "bVar16 = false;" (assignment_expression "bVar16 = false" identifier = false) ;)) (expression_statement "iVar8 = 3;" (assignment_expression "iVar8 = 3" identifier = number_literal) ;) (expression_statement "pbVar11 = (byte *)p;" (assignment_expression "pbVar11 = (byte *)p" identifier = (cast_expression "(byte *)p" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pbVar12 = &DAT_0004b0ec;" (assignment_expression "pbVar12 = &DAT_0004b0ec" identifier = (pointer_expression "&DAT_0004b0ec" & identifier)) ;) (do_statement "do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar16 = *pbVar11 < *pbVar12;\n      bVar13 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    } while (bVar13);" do (compound_statement "{\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar16 = *pbVar11 < *pbVar12;\n      bVar13 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    }" { (if_statement "if (iVar8 == 0) break;" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar8 = iVar8 + -1;" (assignment_expression "iVar8 = iVar8 + -1" identifier = (binary_expression "iVar8 + -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 "bVar13 = *pbVar11 == *pbVar12;" (assignment_expression "bVar13 = *pbVar11 == *pbVar12" identifier = (binary_expression "*pbVar11 == *pbVar12" (pointer_expression "*pbVar11" * identifier) == (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1" identifier = (binary_expression "pbVar11 + (uint)bVar18 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar18 * -2" identifier + (binary_expression "(uint)bVar18 * -2" (cast_expression "(uint)bVar18" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1" identifier = (binary_expression "pbVar12 + (uint)bVar18 * -2 + 1" (binary_expression "pbVar12 + (uint)bVar18 * -2" identifier + (binary_expression "(uint)bVar18 * -2" (cast_expression "(uint)bVar18" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar13)" ( identifier )) ;) (expression_statement "bVar13 = (!bVar16 && !bVar13) == bVar16;" (assignment_expression "bVar13 = (!bVar16 && !bVar13) == bVar16" identifier = (binary_expression "(!bVar16 && !bVar13) == bVar16" (parenthesized_expression "(!bVar16 && !bVar13)" ( (binary_expression "!bVar16 && !bVar13" (unary_expression "!bVar16" ! identifier) && (unary_expression "!bVar13" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar13) {\nLAB_00016647:\n      if (value == (char *)0x0) {\n        return -2;\n      }\n      if (need_save < 0) {\n        return 2;\n      }\n      if (((byte)cmdline_tooltype & 3) != 0) goto LAB_000161c3;\n      bVar13 = need_save == 0;\n      if (!bVar13) goto LAB_00016123;\n      goto LAB_00015f8f;\n    }" if (parenthesized_expression "(bVar13)" ( identifier )) (compound_statement "{\nLAB_00016647:\n      if (value == (char *)0x0) {\n        return -2;\n      }\n      if (need_save < 0) {\n        return 2;\n      }\n      if (((byte)cmdline_tooltype & 3) != 0) goto LAB_000161c3;\n      bVar13 = need_save == 0;\n      if (!bVar13) goto LAB_00016123;\n      goto LAB_00015f8f;\n    }" { (labeled_statement "LAB_00016647:\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 ;) })) (if_statement "if (((byte)cmdline_tooltype & 3) != 0) goto LAB_000161c3;" if (parenthesized_expression "(((byte)cmdline_tooltype & 3) != 0)" ( (binary_expression "((byte)cmdline_tooltype & 3) != 0" (parenthesized_expression "((byte)cmdline_tooltype & 3)" ( (binary_expression "(byte)cmdline_tooltype & 3" (cast_expression "(byte)cmdline_tooltype" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_000161c3;" goto statement_identifier ;)) (expression_statement "bVar13 = need_save == 0;" (assignment_expression "bVar13 = need_save == 0" identifier = (binary_expression "need_save == 0" identifier == number_literal)) ;) (if_statement "if (!bVar13) goto LAB_00016123;" if (parenthesized_expression "(!bVar13)" ( (unary_expression "!bVar13" ! identifier) )) (goto_statement "goto LAB_00016123;" goto statement_identifier ;)) (goto_statement "goto LAB_00015f8f;" goto statement_identifier ;) })) (labeled_statement "LAB_0001626b:\n    bVar16 = false;" statement_identifier : (expression_statement "bVar16 = false;" (assignment_expression "bVar16 = false" identifier = false) ;)) (expression_statement "iVar8 = 3;" (assignment_expression "iVar8 = 3" identifier = number_literal) ;) (expression_statement "pbVar11 = (byte *)p;" (assignment_expression "pbVar11 = (byte *)p" identifier = (cast_expression "(byte *)p" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pbVar12 = &DAT_0004b0ef;" (assignment_expression "pbVar12 = &DAT_0004b0ef" identifier = (pointer_expression "&DAT_0004b0ef" & identifier)) ;) (do_statement "do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar16 = *pbVar11 < *pbVar12;\n      bVar13 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    } while (bVar13);" do (compound_statement "{\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar16 = *pbVar11 < *pbVar12;\n      bVar13 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    }" { (if_statement "if (iVar8 == 0) break;" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar8 = iVar8 + -1;" (assignment_expression "iVar8 = iVar8 + -1" identifier = (binary_expression "iVar8 + -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 "bVar13 = *pbVar11 == *pbVar12;" (assignment_expression "bVar13 = *pbVar11 == *pbVar12" identifier = (binary_expression "*pbVar11 == *pbVar12" (pointer_expression "*pbVar11" * identifier) == (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1" identifier = (binary_expression "pbVar11 + (uint)bVar18 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar18 * -2" identifier + (binary_expression "(uint)bVar18 * -2" (cast_expression "(uint)bVar18" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1" identifier = (binary_expression "pbVar12 + (uint)bVar18 * -2 + 1" (binary_expression "pbVar12 + (uint)bVar18 * -2" identifier + (binary_expression "(uint)bVar18 * -2" (cast_expression "(uint)bVar18" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar13)" ( identifier )) ;) (expression_statement "bVar14 = false;" (assignment_expression "bVar14 = false" identifier = false) ;) (expression_statement "bVar13 = (!bVar16 && !bVar13) == bVar16;" (assignment_expression "bVar13 = (!bVar16 && !bVar13) == bVar16" identifier = (binary_expression "(!bVar16 && !bVar13) == bVar16" (parenthesized_expression "(!bVar16 && !bVar13)" ( (binary_expression "!bVar16 && !bVar13" (unary_expression "!bVar16" ! identifier) && (unary_expression "!bVar13" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar13) goto LAB_00016647;" if (parenthesized_expression "(bVar13)" ( identifier )) (goto_statement "goto LAB_00016647;" goto statement_identifier ;)) (expression_statement "iVar8 = 3;" (assignment_expression "iVar8 = 3" identifier = number_literal) ;) (expression_statement "pbVar11 = (byte *)p;" (assignment_expression "pbVar11 = (byte *)p" identifier = (cast_expression "(byte *)p" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pbVar12 = (byte *)0x53a3b;" (assignment_expression "pbVar12 = (byte *)0x53a3b" identifier = (cast_expression "(byte *)0x53a3b" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar14 = *pbVar11 < *pbVar12;\n      bVar13 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    } while (bVar13);" do (compound_statement "{\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar14 = *pbVar11 < *pbVar12;\n      bVar13 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    }" { (if_statement "if (iVar8 == 0) break;" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar8 = iVar8 + -1;" (assignment_expression "iVar8 = iVar8 + -1" identifier = (binary_expression "iVar8 + -1" identifier + number_literal)) ;) (expression_statement "bVar14 = *pbVar11 < *pbVar12;" (assignment_expression "bVar14 = *pbVar11 < *pbVar12" identifier = (binary_expression "*pbVar11 < *pbVar12" (pointer_expression "*pbVar11" * identifier) < (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "bVar13 = *pbVar11 == *pbVar12;" (assignment_expression "bVar13 = *pbVar11 == *pbVar12" identifier = (binary_expression "*pbVar11 == *pbVar12" (pointer_expression "*pbVar11" * identifier) == (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1" identifier = (binary_expression "pbVar11 + (uint)bVar18 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar18 * -2" identifier + (binary_expression "(uint)bVar18 * -2" (cast_expression "(uint)bVar18" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1" identifier = (binary_expression "pbVar12 + (uint)bVar18 * -2 + 1" (binary_expression "pbVar12 + (uint)bVar18 * -2" identifier + (binary_expression "(uint)bVar18 * -2" (cast_expression "(uint)bVar18" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar13)" ( identifier )) ;) (expression_statement "bVar16 = false;" (assignment_expression "bVar16 = false" identifier = false) ;) (expression_statement "bVar13 = (!bVar14 && !bVar13) == bVar14;" (assignment_expression "bVar13 = (!bVar14 && !bVar13) == bVar14" identifier = (binary_expression "(!bVar14 && !bVar13) == bVar14" (parenthesized_expression "(!bVar14 && !bVar13)" ( (binary_expression "!bVar14 && !bVar13" (unary_expression "!bVar14" ! identifier) && (unary_expression "!bVar13" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar13) goto LAB_00016647;" if (parenthesized_expression "(bVar13)" ( identifier )) (goto_statement "goto LAB_00016647;" goto statement_identifier ;)) (expression_statement "iVar8 = 4;" (assignment_expression "iVar8 = 4" identifier = number_literal) ;) (expression_statement "pbVar11 = (byte *)p;" (assignment_expression "pbVar11 = (byte *)p" identifier = (cast_expression "(byte *)p" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pbVar12 = &DAT_0004b0fd;" (assignment_expression "pbVar12 = &DAT_0004b0fd" identifier = (pointer_expression "&DAT_0004b0fd" & identifier)) ;) (do_statement "do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar16 = *pbVar11 < *pbVar12;\n      bVar13 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    } while (bVar13);" do (compound_statement "{\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar16 = *pbVar11 < *pbVar12;\n      bVar13 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    }" { (if_statement "if (iVar8 == 0) break;" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar8 = iVar8 + -1;" (assignment_expression "iVar8 = iVar8 + -1" identifier = (binary_expression "iVar8 + -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 "bVar13 = *pbVar11 == *pbVar12;" (assignment_expression "bVar13 = *pbVar11 == *pbVar12" identifier = (binary_expression "*pbVar11 == *pbVar12" (pointer_expression "*pbVar11" * identifier) == (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1" identifier = (binary_expression "pbVar11 + (uint)bVar18 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar18 * -2" identifier + (binary_expression "(uint)bVar18 * -2" (cast_expression "(uint)bVar18" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1" identifier = (binary_expression "pbVar12 + (uint)bVar18 * -2 + 1" (binary_expression "pbVar12 + (uint)bVar18 * -2" identifier + (binary_expression "(uint)bVar18 * -2" (cast_expression "(uint)bVar18" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar13)" ( identifier )) ;) (expression_statement "bVar13 = (!bVar16 && !bVar13) == bVar16;" (assignment_expression "bVar13 = (!bVar16 && !bVar13) == bVar16" identifier = (binary_expression "(!bVar16 && !bVar13) == bVar16" (parenthesized_expression "(!bVar16 && !bVar13)" ( (binary_expression "!bVar16 && !bVar13" (unary_expression "!bVar16" ! identifier) && (unary_expression "!bVar13" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar13) goto LAB_00016698;" if (parenthesized_expression "(!bVar13)" ( (unary_expression "!bVar13" ! identifier) )) (goto_statement "goto LAB_00016698;" 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 ;) })) (if_statement "if (((byte)cmdline_tooltype & 3) != 0) goto LAB_000161c3;" if (parenthesized_expression "(((byte)cmdline_tooltype & 3) != 0)" ( (binary_expression "((byte)cmdline_tooltype & 3) != 0" (parenthesized_expression "((byte)cmdline_tooltype & 3)" ( (binary_expression "(byte)cmdline_tooltype & 3" (cast_expression "(byte)cmdline_tooltype" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_000161c3;" goto statement_identifier ;)) (if_statement "if (need_save != 0) goto LAB_00016123;" if (parenthesized_expression "(need_save != 0)" ( (binary_expression "need_save != 0" identifier != number_literal) )) (goto_statement "goto LAB_00016123;" goto statement_identifier ;)) (labeled_statement "LAB_000162ed:\n    pcVar2 = host_strchr(value,0x3a);" statement_identifier : (expression_statement "pcVar2 = host_strchr(value,0x3a);" (assignment_expression "pcVar2 = host_strchr(value,0x3a)" identifier = (call_expression "host_strchr(value,0x3a)" identifier (argument_list "(value,0x3a)" ( identifier , number_literal )))) ;)) (if_statement "if (pcVar2 == (char *)0x0) {\n      cmdline_error("-nc expects argument of form \'host:port\'");\n      return 2;\n    }" if (parenthesized_expression "(pcVar2 == (char *)0x0)" ( (binary_expression "pcVar2 == (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 "iVar7 = 2;" (assignment_expression "iVar7 = 2" identifier = number_literal) ;) (expression_statement "pcVar4 = dupprintf("%.*s");" (assignment_expression "pcVar4 = dupprintf("%.*s")" identifier = (call_expression "dupprintf("%.*s")" identifier (argument_list "("%.*s")" ( (string_literal ""%.*s"" " string_content ") )))) ;) (expression_statement "conf_set_str(conf,0x2e,pcVar4);" (call_expression "conf_set_str(conf,0x2e,pcVar4)" identifier (argument_list "(conf,0x2e,pcVar4)" ( identifier , number_literal , identifier ))) ;) (expression_statement "lVar3 = strtol(pcVar2 + 1,(char **)0x0,10);" (assignment_expression "lVar3 = strtol(pcVar2 + 1,(char **)0x0,10)" identifier = (call_expression "strtol(pcVar2 + 1,(char **)0x0,10)" identifier (argument_list "(pcVar2 + 1,(char **)0x0,10)" ( (binary_expression "pcVar2 + 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 "uVar15 = (undefined1 *)0xfffffff3 < &stack0xffffffc4;" (assignment_expression "uVar15 = (undefined1 *)0xfffffff3 < &stack0xffffffc4" identifier = (binary_expression "(undefined1 *)0xfffffff3 < &stack0xffffffc4" (cast_expression "(undefined1 *)0xfffffff3" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < (pointer_expression "&stack0xffffffc4" & identifier))) ;) (expression_statement "uVar17 = &stack0x00000000 == (undefined1 *)0x30;" (assignment_expression "uVar17 = &stack0x00000000 == (undefined1 *)0x30" identifier = (binary_expression "&stack0x00000000 == (undefined1 *)0x30" (pointer_expression "&stack0x00000000" & identifier) == (cast_expression "(undefined1 *)0x30" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "conf_set_int(conf,0x2f,lVar3);" (call_expression "conf_set_int(conf,0x2f,lVar3)" identifier (argument_list "(conf,0x2f,lVar3)" ( identifier , number_literal , identifier ))) ;) (expression_statement "safefree(pcVar4);" (call_expression "safefree(pcVar4)" identifier (argument_list "(pcVar4)" ( identifier ))) ;) (expression_statement "iVar8 = 3;" (assignment_expression "iVar8 = 3" identifier = number_literal) ;) (expression_statement "pbVar11 = (byte *)p;" (assignment_expression "pbVar11 = (byte *)p" identifier = (cast_expression "(byte *)p" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pbVar12 = &DAT_0004b101;" (assignment_expression "pbVar12 = &DAT_0004b101" identifier = (pointer_expression "&DAT_0004b101" & identifier)) ;) (do_statement "do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      uVar15 = *pbVar11 < *pbVar12;\n      uVar17 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    } while ((bool)uVar17);" do (compound_statement "{\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      uVar15 = *pbVar11 < *pbVar12;\n      uVar17 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    }" { (if_statement "if (iVar8 == 0) break;" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar8 = iVar8 + -1;" (assignment_expression "iVar8 = iVar8 + -1" identifier = (binary_expression "iVar8 + -1" identifier + number_literal)) ;) (expression_statement "uVar15 = *pbVar11 < *pbVar12;" (assignment_expression "uVar15 = *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 + (uint)bVar18 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1" identifier = (binary_expression "pbVar11 + (uint)bVar18 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar18 * -2" identifier + (binary_expression "(uint)bVar18 * -2" (cast_expression "(uint)bVar18" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1" identifier = (binary_expression "pbVar12 + (uint)bVar18 * -2 + 1" (binary_expression "pbVar12 + (uint)bVar18 * -2" identifier + (binary_expression "(uint)bVar18 * -2" (cast_expression "(uint)bVar18" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "((bool)uVar17)" ( (cast_expression "(bool)uVar17" ( (type_descriptor "bool" primitive_type) ) identifier) )) ;) (expression_statement "bVar13 = (!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15;" (assignment_expression "bVar13 = (!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15" identifier = (binary_expression "(!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15" (parenthesized_expression "(!(bool)uVar15 && !(bool)uVar17)" ( (binary_expression "!(bool)uVar15 && !(bool)uVar17" (unary_expression "!(bool)uVar15" ! (cast_expression "(bool)uVar15" ( (type_descriptor "bool" primitive_type) ) identifier)) && (unary_expression "!(bool)uVar17" ! (cast_expression "(bool)uVar17" ( (type_descriptor "bool" primitive_type) ) identifier))) )) == (cast_expression "(bool)uVar15" ( (type_descriptor "bool" primitive_type) ) identifier))) ;) (if_statement "if (!bVar13) goto LAB_000166e0;" if (parenthesized_expression "(!bVar13)" ( (unary_expression "!bVar13" ! identifier) )) (goto_statement "goto LAB_000166e0;" goto statement_identifier ;)) (if_statement "if (((byte)cmdline_tooltype & 3) != 0) goto LAB_000161c3;" if (parenthesized_expression "(((byte)cmdline_tooltype & 3) != 0)" ( (binary_expression "((byte)cmdline_tooltype & 3) != 0" (parenthesized_expression "((byte)cmdline_tooltype & 3)" ( (binary_expression "(byte)cmdline_tooltype & 3" (cast_expression "(byte)cmdline_tooltype" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_000161c3;" goto statement_identifier ;)) (labeled_statement "LAB_0001639b:\n    iVar7 = 0;" statement_identifier : (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;)) (expression_statement "pcVar2 = (char *)0x0;" (assignment_expression "pcVar2 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (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 ") )))) ;) (expression_statement "local_24 = 0;" (assignment_expression "local_24 = 0" identifier = number_literal) ;) (if_statement "if (__stream == (FILE *)0x0) {\n      cmdline_error("unable to open command file \"%s\"");\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\"");\n      return 2;\n    }" { (expression_statement "cmdline_error("unable to open command file \"%s\"");" (call_expression "cmdline_error("unable to open command file \"%s\"")" identifier (argument_list "("unable to open command file \"%s\"")" ( (string_literal ""unable to open command file \"%s\""" " string_content escape_sequence string_content escape_sequence ") ))) ;) (return_statement "return 2;" return number_literal ;) })) (while_statement "while (iVar8 = fgetc(__stream), iVar8 != -1) {\n      if (iVar7 < (int)local_24) {\n        pcVar2[iVar7] = (char)iVar8;\n      }\n      else {\n        local_24 = iVar7 + 0x200;\n        local_20 = iVar8;\n        pcVar2 = (char *)saferealloc(pcVar2,local_24,1);\n        pcVar2[iVar7] = (char)local_20;\n      }\n      iVar7 = iVar7 + 1;\n    }" while (parenthesized_expression "(iVar8 = fgetc(__stream), iVar8 != -1)" ( (comma_expression "iVar8 = fgetc(__stream), iVar8 != -1" (assignment_expression "iVar8 = fgetc(__stream)" identifier = (call_expression "fgetc(__stream)" identifier (argument_list "(__stream)" ( identifier )))) , (binary_expression "iVar8 != -1" identifier != number_literal)) )) (compound_statement "{\n      if (iVar7 < (int)local_24) {\n        pcVar2[iVar7] = (char)iVar8;\n      }\n      else {\n        local_24 = iVar7 + 0x200;\n        local_20 = iVar8;\n        pcVar2 = (char *)saferealloc(pcVar2,local_24,1);\n        pcVar2[iVar7] = (char)local_20;\n      }\n      iVar7 = iVar7 + 1;\n    }" { (if_statement "if (iVar7 < (int)local_24) {\n        pcVar2[iVar7] = (char)iVar8;\n      }\n      else {\n        local_24 = iVar7 + 0x200;\n        local_20 = iVar8;\n        pcVar2 = (char *)saferealloc(pcVar2,local_24,1);\n        pcVar2[iVar7] = (char)local_20;\n      }" if (parenthesized_expression "(iVar7 < (int)local_24)" ( (binary_expression "iVar7 < (int)local_24" identifier < (cast_expression "(int)local_24" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        pcVar2[iVar7] = (char)iVar8;\n      }" { (expression_statement "pcVar2[iVar7] = (char)iVar8;" (assignment_expression "pcVar2[iVar7] = (char)iVar8" (subscript_expression "pcVar2[iVar7]" identifier [ identifier ]) = (cast_expression "(char)iVar8" ( (type_descriptor "char" primitive_type) ) identifier)) ;) }) (else_clause "else {\n        local_24 = iVar7 + 0x200;\n        local_20 = iVar8;\n        pcVar2 = (char *)saferealloc(pcVar2,local_24,1);\n        pcVar2[iVar7] = (char)local_20;\n      }" else (compound_statement "{\n        local_24 = iVar7 + 0x200;\n        local_20 = iVar8;\n        pcVar2 = (char *)saferealloc(pcVar2,local_24,1);\n        pcVar2[iVar7] = (char)local_20;\n      }" { (expression_statement "local_24 = iVar7 + 0x200;" (assignment_expression "local_24 = iVar7 + 0x200" identifier = (binary_expression "iVar7 + 0x200" identifier + number_literal)) ;) (expression_statement "local_20 = iVar8;" (assignment_expression "local_20 = iVar8" identifier = identifier) ;) (expression_statement "pcVar2 = (char *)saferealloc(pcVar2,local_24,1);" (assignment_expression "pcVar2 = (char *)saferealloc(pcVar2,local_24,1)" identifier = (cast_expression "(char *)saferealloc(pcVar2,local_24,1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "saferealloc(pcVar2,local_24,1)" identifier (argument_list "(pcVar2,local_24,1)" ( identifier , identifier , number_literal ))))) ;) (expression_statement "pcVar2[iVar7] = (char)local_20;" (assignment_expression "pcVar2[iVar7] = (char)local_20" (subscript_expression "pcVar2[iVar7]" identifier [ identifier ]) = (cast_expression "(char)local_20" ( (type_descriptor "char" primitive_type) ) identifier)) ;) }))) (expression_statement "iVar7 = iVar7 + 1;" (assignment_expression "iVar7 = iVar7 + 1" identifier = (binary_expression "iVar7 + 1" identifier + number_literal)) ;) })) (if_statement "if (iVar7 < (int)local_24) {\n      pcVar2[iVar7] = '\0';\n    }\n    else {\n      pcVar2 = (char *)saferealloc(pcVar2,iVar7 + 0x200,1);\n      pcVar2[iVar7] = '\0';\n    }" if (parenthesized_expression "(iVar7 < (int)local_24)" ( (binary_expression "iVar7 < (int)local_24" identifier < (cast_expression "(int)local_24" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n      pcVar2[iVar7] = '\0';\n    }" { (expression_statement "pcVar2[iVar7] = '\0';" (assignment_expression "pcVar2[iVar7] = '\0'" (subscript_expression "pcVar2[iVar7]" identifier [ identifier ]) = (char_literal "'\0'" ' escape_sequence ')) ;) }) (else_clause "else {\n      pcVar2 = (char *)saferealloc(pcVar2,iVar7 + 0x200,1);\n      pcVar2[iVar7] = '\0';\n    }" else (compound_statement "{\n      pcVar2 = (char *)saferealloc(pcVar2,iVar7 + 0x200,1);\n      pcVar2[iVar7] = '\0';\n    }" { (expression_statement "pcVar2 = (char *)saferealloc(pcVar2,iVar7 + 0x200,1);" (assignment_expression "pcVar2 = (char *)saferealloc(pcVar2,iVar7 + 0x200,1)" identifier = (cast_expression "(char *)saferealloc(pcVar2,iVar7 + 0x200,1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "saferealloc(pcVar2,iVar7 + 0x200,1)" identifier (argument_list "(pcVar2,iVar7 + 0x200,1)" ( identifier , (binary_expression "iVar7 + 0x200" identifier + number_literal) , number_literal ))))) ;) (expression_statement "pcVar2[iVar7] = '\0';" (assignment_expression "pcVar2[iVar7] = '\0'" (subscript_expression "pcVar2[iVar7]" identifier [ identifier ]) = (char_literal "'\0'" ' escape_sequence ')) ;) }))) (expression_statement "iVar7 = 2;" (assignment_expression "iVar7 = 2" identifier = number_literal) ;) (expression_statement "fclose(__stream);" (call_expression "fclose(__stream)" identifier (argument_list "(__stream)" ( identifier ))) ;) (expression_statement "conf_set_str(conf,0x14,pcVar2);" (call_expression "conf_set_str(conf,0x14,pcVar2)" identifier (argument_list "(conf,0x14,pcVar2)" ( 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 "uVar15 = (undefined1 *)0xfffffff3 < &stack0xffffffc4;" (assignment_expression "uVar15 = (undefined1 *)0xfffffff3 < &stack0xffffffc4" identifier = (binary_expression "(undefined1 *)0xfffffff3 < &stack0xffffffc4" (cast_expression "(undefined1 *)0xfffffff3" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < (pointer_expression "&stack0xffffffc4" & identifier))) ;) (expression_statement "uVar17 = &stack0x00000000 == (undefined1 *)0x30;" (assignment_expression "uVar17 = &stack0x00000000 == (undefined1 *)0x30" identifier = (binary_expression "&stack0x00000000 == (undefined1 *)0x30" (pointer_expression "&stack0x00000000" & identifier) == (cast_expression "(undefined1 *)0x30" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_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(pcVar2);" (call_expression "safefree(pcVar2)" identifier (argument_list "(pcVar2)" ( identifier ))) ;) (expression_statement "iVar8 = 3;" (assignment_expression "iVar8 = 3" identifier = number_literal) ;) (expression_statement "pbVar11 = (byte *)p;" (assignment_expression "pbVar11 = (byte *)p" identifier = (cast_expression "(byte *)p" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pbVar12 = &DAT_0004b104;" (assignment_expression "pbVar12 = &DAT_0004b104" identifier = (pointer_expression "&DAT_0004b104" & identifier)) ;) (do_statement "do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      uVar15 = *pbVar11 < *pbVar12;\n      uVar17 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    } while ((bool)uVar17);" do (compound_statement "{\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      uVar15 = *pbVar11 < *pbVar12;\n      uVar17 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    }" { (if_statement "if (iVar8 == 0) break;" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar8 = iVar8 + -1;" (assignment_expression "iVar8 = iVar8 + -1" identifier = (binary_expression "iVar8 + -1" identifier + number_literal)) ;) (expression_statement "uVar15 = *pbVar11 < *pbVar12;" (assignment_expression "uVar15 = *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 + (uint)bVar18 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1" identifier = (binary_expression "pbVar11 + (uint)bVar18 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar18 * -2" identifier + (binary_expression "(uint)bVar18 * -2" (cast_expression "(uint)bVar18" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1" identifier = (binary_expression "pbVar12 + (uint)bVar18 * -2 + 1" (binary_expression "pbVar12 + (uint)bVar18 * -2" identifier + (binary_expression "(uint)bVar18 * -2" (cast_expression "(uint)bVar18" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "((bool)uVar17)" ( (cast_expression "(bool)uVar17" ( (type_descriptor "bool" primitive_type) ) identifier) )) ;) (expression_statement "bVar13 = (!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15;" (assignment_expression "bVar13 = (!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15" identifier = (binary_expression "(!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15" (parenthesized_expression "(!(bool)uVar15 && !(bool)uVar17)" ( (binary_expression "!(bool)uVar15 && !(bool)uVar17" (unary_expression "!(bool)uVar15" ! (cast_expression "(bool)uVar15" ( (type_descriptor "bool" primitive_type) ) identifier)) && (unary_expression "!(bool)uVar17" ! (cast_expression "(bool)uVar17" ( (type_descriptor "bool" primitive_type) ) identifier))) )) == (cast_expression "(bool)uVar15" ( (type_descriptor "bool" primitive_type) ) identifier))) ;) (if_statement "if (!bVar13) goto LAB_00016777;" if (parenthesized_expression "(!bVar13)" ( (unary_expression "!bVar13" ! identifier) )) (goto_statement "goto LAB_00016777;" goto statement_identifier ;)) (if_statement "if (((byte)cmdline_tooltype & 2) != 0) goto LAB_000161c3;" if (parenthesized_expression "(((byte)cmdline_tooltype & 2) != 0)" ( (binary_expression "((byte)cmdline_tooltype & 2) != 0" (parenthesized_expression "((byte)cmdline_tooltype & 2)" ( (binary_expression "(byte)cmdline_tooltype & 2" (cast_expression "(byte)cmdline_tooltype" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_000161c3;" goto statement_identifier ;)) (labeled_statement "LAB_000164a7:\n    lVar3 = strtol(value,(char **)0x0,10);" statement_identifier : (expression_statement "lVar3 = strtol(value,(char **)0x0,10);" (assignment_expression "lVar3 = 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,lVar3);" (call_expression "conf_set_int(conf,1,lVar3)" identifier (argument_list "(conf,1,lVar3)" ( identifier , number_literal , identifier ))) ;) (expression_statement "iVar7 = strcmp(p,"-pw");" (assignment_expression "iVar7 = strcmp(p,"-pw")" identifier = (call_expression "strcmp(p,"-pw")" identifier (argument_list "(p,"-pw")" ( identifier , (string_literal ""-pw"" " string_content ") )))) ;) (if_statement "if (iVar7 == 0) {\n      if (((byte)cmdline_tooltype & 2) != 0) goto LAB_000161c3;\nLAB_000164f6:\n      iVar7 = conf_get_int(conf,2);\n      if (iVar7 == 3) {\n        cmdline_password = dupstr(value);\n        uVar9 = 0xffffffff;\n        pcVar2 = value;\n        do {\n          if (uVar9 == 0) break;\n          uVar9 = uVar9 - 1;\n          cVar1 = *pcVar2;\n          pcVar2 = pcVar2 + (uint)bVar18 * -2 + 1;\n        } while (cVar1 != '\0');\n        smemclr(value,~uVar9 - 1);\n      }\n      else {\n        cmdline_error("the -pw option can only be used with the SSH protocol");\n      }\n      iVar7 = strcmp(p,"-agent");\n      if ((iVar7 == 0) || (iVar7 = strcmp(p,"-pagent"), iVar7 == 0)) goto LAB_00015d3a;\n      iVar7 = 2;\n      iVar8 = strcmp(p,"-pageant");\n      if (iVar8 == 0) goto LAB_0001688c;\n    }\n    else {\n      iVar7 = strcmp(p,"-agent");\n      if (iVar7 == 0) {\nLAB_00015d3a:\n        if (((byte)cmdline_tooltype & 2) != 0) goto LAB_00015d50;\n        goto LAB_000168a1;\n      }\n      iVar7 = 2;\n      iVar8 = strcmp(p,"-pagent");\n      if (iVar8 == 0) goto LAB_0001688c;\nLAB_0001685f:\n      iVar8 = strcmp(p,"-pageant");\n      if (iVar8 == 0) goto LAB_00016884;\n    }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n      if (((byte)cmdline_tooltype & 2) != 0) goto LAB_000161c3;\nLAB_000164f6:\n      iVar7 = conf_get_int(conf,2);\n      if (iVar7 == 3) {\n        cmdline_password = dupstr(value);\n        uVar9 = 0xffffffff;\n        pcVar2 = value;\n        do {\n          if (uVar9 == 0) break;\n          uVar9 = uVar9 - 1;\n          cVar1 = *pcVar2;\n          pcVar2 = pcVar2 + (uint)bVar18 * -2 + 1;\n        } while (cVar1 != '\0');\n        smemclr(value,~uVar9 - 1);\n      }\n      else {\n        cmdline_error("the -pw option can only be used with the SSH protocol");\n      }\n      iVar7 = strcmp(p,"-agent");\n      if ((iVar7 == 0) || (iVar7 = strcmp(p,"-pagent"), iVar7 == 0)) goto LAB_00015d3a;\n      iVar7 = 2;\n      iVar8 = strcmp(p,"-pageant");\n      if (iVar8 == 0) goto LAB_0001688c;\n    }" { (if_statement "if (((byte)cmdline_tooltype & 2) != 0) goto LAB_000161c3;" if (parenthesized_expression "(((byte)cmdline_tooltype & 2) != 0)" ( (binary_expression "((byte)cmdline_tooltype & 2) != 0" (parenthesized_expression "((byte)cmdline_tooltype & 2)" ( (binary_expression "(byte)cmdline_tooltype & 2" (cast_expression "(byte)cmdline_tooltype" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_000161c3;" goto statement_identifier ;)) (labeled_statement "LAB_000164f6:\n      iVar7 = conf_get_int(conf,2);" statement_identifier : (expression_statement "iVar7 = conf_get_int(conf,2);" (assignment_expression "iVar7 = conf_get_int(conf,2)" identifier = (call_expression "conf_get_int(conf,2)" identifier (argument_list "(conf,2)" ( identifier , number_literal )))) ;)) (if_statement "if (iVar7 == 3) {\n        cmdline_password = dupstr(value);\n        uVar9 = 0xffffffff;\n        pcVar2 = value;\n        do {\n          if (uVar9 == 0) break;\n          uVar9 = uVar9 - 1;\n          cVar1 = *pcVar2;\n          pcVar2 = pcVar2 + (uint)bVar18 * -2 + 1;\n        } while (cVar1 != '\0');\n        smemclr(value,~uVar9 - 1);\n      }\n      else {\n        cmdline_error("the -pw option can only be used with the SSH protocol");\n      }" if (parenthesized_expression "(iVar7 == 3)" ( (binary_expression "iVar7 == 3" identifier == number_literal) )) (compound_statement "{\n        cmdline_password = dupstr(value);\n        uVar9 = 0xffffffff;\n        pcVar2 = value;\n        do {\n          if (uVar9 == 0) break;\n          uVar9 = uVar9 - 1;\n          cVar1 = *pcVar2;\n          pcVar2 = pcVar2 + (uint)bVar18 * -2 + 1;\n        } while (cVar1 != '\0');\n        smemclr(value,~uVar9 - 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 "uVar9 = 0xffffffff;" (assignment_expression "uVar9 = 0xffffffff" identifier = number_literal) ;) (expression_statement "pcVar2 = value;" (assignment_expression "pcVar2 = value" identifier = identifier) ;) (do_statement "do {\n          if (uVar9 == 0) break;\n          uVar9 = uVar9 - 1;\n          cVar1 = *pcVar2;\n          pcVar2 = pcVar2 + (uint)bVar18 * -2 + 1;\n        } while (cVar1 != '\0');" do (compound_statement "{\n          if (uVar9 == 0) break;\n          uVar9 = uVar9 - 1;\n          cVar1 = *pcVar2;\n          pcVar2 = pcVar2 + (uint)bVar18 * -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 "cVar1 = *pcVar2;" (assignment_expression "cVar1 = *pcVar2" identifier = (pointer_expression "*pcVar2" * identifier)) ;) (expression_statement "pcVar2 = pcVar2 + (uint)bVar18 * -2 + 1;" (assignment_expression "pcVar2 = pcVar2 + (uint)bVar18 * -2 + 1" identifier = (binary_expression "pcVar2 + (uint)bVar18 * -2 + 1" (binary_expression "pcVar2 + (uint)bVar18 * -2" identifier + (binary_expression "(uint)bVar18 * -2" (cast_expression "(uint)bVar18" ( (type_descriptor "uint" 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,~uVar9 - 1);" (call_expression "smemclr(value,~uVar9 - 1)" identifier (argument_list "(value,~uVar9 - 1)" ( identifier , (binary_expression "~uVar9 - 1" (unary_expression "~uVar9" ~ 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 "iVar7 = strcmp(p,"-agent");" (assignment_expression "iVar7 = strcmp(p,"-agent")" identifier = (call_expression "strcmp(p,"-agent")" identifier (argument_list "(p,"-agent")" ( identifier , (string_literal ""-agent"" " string_content ") )))) ;) (if_statement "if ((iVar7 == 0) || (iVar7 = strcmp(p,"-pagent"), iVar7 == 0)) goto LAB_00015d3a;" if (parenthesized_expression "((iVar7 == 0) || (iVar7 = strcmp(p,"-pagent"), iVar7 == 0))" ( (binary_expression "(iVar7 == 0) || (iVar7 = strcmp(p,"-pagent"), iVar7 == 0)" (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar7 = strcmp(p,"-pagent"), iVar7 == 0)" ( (comma_expression "iVar7 = strcmp(p,"-pagent"), iVar7 == 0" (assignment_expression "iVar7 = strcmp(p,"-pagent")" identifier = (call_expression "strcmp(p,"-pagent")" identifier (argument_list "(p,"-pagent")" ( identifier , (string_literal ""-pagent"" " string_content ") )))) , (binary_expression "iVar7 == 0" identifier == number_literal)) ))) )) (goto_statement "goto LAB_00015d3a;" goto statement_identifier ;)) (expression_statement "iVar7 = 2;" (assignment_expression "iVar7 = 2" identifier = number_literal) ;) (expression_statement "iVar8 = strcmp(p,"-pageant");" (assignment_expression "iVar8 = strcmp(p,"-pageant")" identifier = (call_expression "strcmp(p,"-pageant")" identifier (argument_list "(p,"-pageant")" ( identifier , (string_literal ""-pageant"" " string_content ") )))) ;) (if_statement "if (iVar8 == 0) goto LAB_0001688c;" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001688c;" goto statement_identifier ;)) }) (else_clause "else {\n      iVar7 = strcmp(p,"-agent");\n      if (iVar7 == 0) {\nLAB_00015d3a:\n        if (((byte)cmdline_tooltype & 2) != 0) goto LAB_00015d50;\n        goto LAB_000168a1;\n      }\n      iVar7 = 2;\n      iVar8 = strcmp(p,"-pagent");\n      if (iVar8 == 0) goto LAB_0001688c;\nLAB_0001685f:\n      iVar8 = strcmp(p,"-pageant");\n      if (iVar8 == 0) goto LAB_00016884;\n    }" else (compound_statement "{\n      iVar7 = strcmp(p,"-agent");\n      if (iVar7 == 0) {\nLAB_00015d3a:\n        if (((byte)cmdline_tooltype & 2) != 0) goto LAB_00015d50;\n        goto LAB_000168a1;\n      }\n      iVar7 = 2;\n      iVar8 = strcmp(p,"-pagent");\n      if (iVar8 == 0) goto LAB_0001688c;\nLAB_0001685f:\n      iVar8 = strcmp(p,"-pageant");\n      if (iVar8 == 0) goto LAB_00016884;\n    }" { (expression_statement "iVar7 = strcmp(p,"-agent");" (assignment_expression "iVar7 = strcmp(p,"-agent")" identifier = (call_expression "strcmp(p,"-agent")" identifier (argument_list "(p,"-agent")" ( identifier , (string_literal ""-agent"" " string_content ") )))) ;) (if_statement "if (iVar7 == 0) {\nLAB_00015d3a:\n        if (((byte)cmdline_tooltype & 2) != 0) goto LAB_00015d50;\n        goto LAB_000168a1;\n      }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_00015d3a:\n        if (((byte)cmdline_tooltype & 2) != 0) goto LAB_00015d50;\n        goto LAB_000168a1;\n      }" { (labeled_statement "LAB_00015d3a:\n        if (((byte)cmdline_tooltype & 2) != 0) goto LAB_00015d50;" statement_identifier : (if_statement "if (((byte)cmdline_tooltype & 2) != 0) goto LAB_00015d50;" if (parenthesized_expression "(((byte)cmdline_tooltype & 2) != 0)" ( (binary_expression "((byte)cmdline_tooltype & 2) != 0" (parenthesized_expression "((byte)cmdline_tooltype & 2)" ( (binary_expression "(byte)cmdline_tooltype & 2" (cast_expression "(byte)cmdline_tooltype" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00015d50;" goto statement_identifier ;))) (goto_statement "goto LAB_000168a1;" goto statement_identifier ;) })) (expression_statement "iVar7 = 2;" (assignment_expression "iVar7 = 2" identifier = number_literal) ;) (expression_statement "iVar8 = strcmp(p,"-pagent");" (assignment_expression "iVar8 = strcmp(p,"-pagent")" identifier = (call_expression "strcmp(p,"-pagent")" identifier (argument_list "(p,"-pagent")" ( identifier , (string_literal ""-pagent"" " string_content ") )))) ;) (if_statement "if (iVar8 == 0) goto LAB_0001688c;" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001688c;" goto statement_identifier ;)) (labeled_statement "LAB_0001685f:\n      iVar8 = strcmp(p,"-pageant");" statement_identifier : (expression_statement "iVar8 = strcmp(p,"-pageant");" (assignment_expression "iVar8 = strcmp(p,"-pageant")" identifier = (call_expression "strcmp(p,"-pageant")" identifier (argument_list "(p,"-pageant")" ( identifier , (string_literal ""-pageant"" " string_content ") )))) ;)) (if_statement "if (iVar8 == 0) goto LAB_00016884;" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00016884;" goto statement_identifier ;)) }))) (expression_statement "iVar8 = strcmp(p,"-noagent");" (assignment_expression "iVar8 = strcmp(p,"-noagent")" identifier = (call_expression "strcmp(p,"-noagent")" identifier (argument_list "(p,"-noagent")" ( identifier , (string_literal ""-noagent"" " string_content ") )))) ;) (if_statement "if ((iVar8 == 0) || (iVar8 = strcmp(p,"-nopagent"), iVar8 == 0)) {\nLAB_00016e5e:\n      if (need_save < 0) {\n        return 1;\n      }\nLAB_00016e44:\n      if (((byte)cmdline_tooltype & 2) != 0) goto LAB_00015d50;\n      if (need_save != 0) goto LAB_00015c78;\n      goto LAB_000168e1;\n    }" if (parenthesized_expression "((iVar8 == 0) || (iVar8 = strcmp(p,"-nopagent"), iVar8 == 0))" ( (binary_expression "(iVar8 == 0) || (iVar8 = strcmp(p,"-nopagent"), iVar8 == 0)" (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar8 = strcmp(p,"-nopagent"), iVar8 == 0)" ( (comma_expression "iVar8 = strcmp(p,"-nopagent"), iVar8 == 0" (assignment_expression "iVar8 = strcmp(p,"-nopagent")" identifier = (call_expression "strcmp(p,"-nopagent")" identifier (argument_list "(p,"-nopagent")" ( identifier , (string_literal ""-nopagent"" " string_content ") )))) , (binary_expression "iVar8 == 0" identifier == number_literal)) ))) )) (compound_statement "{\nLAB_00016e5e:\n      if (need_save < 0) {\n        return 1;\n      }\nLAB_00016e44:\n      if (((byte)cmdline_tooltype & 2) != 0) goto LAB_00015d50;\n      if (need_save != 0) goto LAB_00015c78;\n      goto LAB_000168e1;\n    }" { (labeled_statement "LAB_00016e5e:\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_00016e44:\n      if (((byte)cmdline_tooltype & 2) != 0) goto LAB_00015d50;" statement_identifier : (if_statement "if (((byte)cmdline_tooltype & 2) != 0) goto LAB_00015d50;" if (parenthesized_expression "(((byte)cmdline_tooltype & 2) != 0)" ( (binary_expression "((byte)cmdline_tooltype & 2) != 0" (parenthesized_expression "((byte)cmdline_tooltype & 2)" ( (binary_expression "(byte)cmdline_tooltype & 2" (cast_expression "(byte)cmdline_tooltype" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00015d50;" goto statement_identifier ;))) (if_statement "if (need_save != 0) goto LAB_00015c78;" if (parenthesized_expression "(need_save != 0)" ( (binary_expression "need_save != 0" identifier != number_literal) )) (goto_statement "goto LAB_00015c78;" goto statement_identifier ;)) (goto_statement "goto LAB_000168e1;" goto statement_identifier ;) })) (labeled_statement "LAB_000165eb:\n    iVar8 = strcmp(p,"-nopageant");" statement_identifier : (expression_statement "iVar8 = strcmp(p,"-nopageant");" (assignment_expression "iVar8 = strcmp(p,"-nopageant")" identifier = (call_expression "strcmp(p,"-nopageant")" identifier (argument_list "(p,"-nopageant")" ( identifier , (string_literal ""-nopageant"" " string_content ") )))) ;)) (if_statement "if (iVar8 == 0) goto LAB_00016e5e;" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00016e5e;" goto statement_identifier ;)) (expression_statement "iVar8 = strcmp(p,"-A");" (assignment_expression "iVar8 = strcmp(p,"-A")" identifier = (call_expression "strcmp(p,"-A")" identifier (argument_list "(p,"-A")" ( identifier , (string_literal ""-A"" " string_content ") )))) ;) (if_statement "if (iVar8 != 0) {\n      iVar8 = strcmp(p,"-a");\n      if (iVar8 != 0) goto LAB_00016f0f;\n      if (need_save < 0) {\n        return 1;\n      }\n      goto LAB_0001700b;\n    }" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar8 = strcmp(p,"-a");\n      if (iVar8 != 0) goto LAB_00016f0f;\n      if (need_save < 0) {\n        return 1;\n      }\n      goto LAB_0001700b;\n    }" { (expression_statement "iVar8 = strcmp(p,"-a");" (assignment_expression "iVar8 = strcmp(p,"-a")" identifier = (call_expression "strcmp(p,"-a")" identifier (argument_list "(p,"-a")" ( identifier , (string_literal ""-a"" " string_content ") )))) ;) (if_statement "if (iVar8 != 0) goto LAB_00016f0f;" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00016f0f;" 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_0001700b;" 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 ;) })) (if_statement "if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;" if (parenthesized_expression "(((byte)cmdline_tooltype & 3) != 0)" ( (binary_expression "((byte)cmdline_tooltype & 3) != 0" (parenthesized_expression "((byte)cmdline_tooltype & 3)" ( (binary_expression "(byte)cmdline_tooltype & 3" (cast_expression "(byte)cmdline_tooltype" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00015d50;" goto statement_identifier ;)) (if_statement "if (need_save != 0) goto LAB_00015c78;" if (parenthesized_expression "(need_save != 0)" ( (binary_expression "need_save != 0" identifier != number_literal) )) (goto_statement "goto LAB_00015c78;" goto statement_identifier ;)) (labeled_statement "LAB_00016921:\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 "iVar7 = strcmp(p,"-a");" (assignment_expression "iVar7 = strcmp(p,"-a")" identifier = (call_expression "strcmp(p,"-a")" identifier (argument_list "(p,"-a")" ( identifier , (string_literal ""-a"" " string_content ") )))) ;) (if_statement "if (iVar7 != 0) {\n      iVar7 = 1;\n      iVar8 = strcmp(p,"-X");\n      if (iVar8 == 0) goto LAB_00016f38;\nLAB_00016f97:\n      iVar8 = strcmp(p,"-x");\n      if (iVar8 != 0) goto LAB_0001704f;\n      if (need_save < 0) {\n        return 1;\n      }\nLAB_00016fc4:\n      if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\n      if (need_save != 0) goto LAB_00015c78;\n      goto LAB_000169e4;\n    }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar7 = 1;\n      iVar8 = strcmp(p,"-X");\n      if (iVar8 == 0) goto LAB_00016f38;\nLAB_00016f97:\n      iVar8 = strcmp(p,"-x");\n      if (iVar8 != 0) goto LAB_0001704f;\n      if (need_save < 0) {\n        return 1;\n      }\nLAB_00016fc4:\n      if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\n      if (need_save != 0) goto LAB_00015c78;\n      goto LAB_000169e4;\n    }" { (expression_statement "iVar7 = 1;" (assignment_expression "iVar7 = 1" identifier = number_literal) ;) (expression_statement "iVar8 = strcmp(p,"-X");" (assignment_expression "iVar8 = strcmp(p,"-X")" identifier = (call_expression "strcmp(p,"-X")" identifier (argument_list "(p,"-X")" ( identifier , (string_literal ""-X"" " string_content ") )))) ;) (if_statement "if (iVar8 == 0) goto LAB_00016f38;" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00016f38;" goto statement_identifier ;)) (labeled_statement "LAB_00016f97:\n      iVar8 = strcmp(p,"-x");" statement_identifier : (expression_statement "iVar8 = strcmp(p,"-x");" (assignment_expression "iVar8 = strcmp(p,"-x")" identifier = (call_expression "strcmp(p,"-x")" identifier (argument_list "(p,"-x")" ( identifier , (string_literal ""-x"" " string_content ") )))) ;)) (if_statement "if (iVar8 != 0) goto LAB_0001704f;" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0001704f;" 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_00016fc4:\n      if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;" statement_identifier : (if_statement "if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;" if (parenthesized_expression "(((byte)cmdline_tooltype & 3) != 0)" ( (binary_expression "((byte)cmdline_tooltype & 3) != 0" (parenthesized_expression "((byte)cmdline_tooltype & 3)" ( (binary_expression "(byte)cmdline_tooltype & 3" (cast_expression "(byte)cmdline_tooltype" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00015d50;" goto statement_identifier ;))) (if_statement "if (need_save != 0) goto LAB_00015c78;" if (parenthesized_expression "(need_save != 0)" ( (binary_expression "need_save != 0" identifier != number_literal) )) (goto_statement "goto LAB_00015c78;" goto statement_identifier ;)) (goto_statement "goto LAB_000169e4;" goto statement_identifier ;) })) (if_statement "if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;" if (parenthesized_expression "(((byte)cmdline_tooltype & 3) != 0)" ( (binary_expression "((byte)cmdline_tooltype & 3) != 0" (parenthesized_expression "((byte)cmdline_tooltype & 3)" ( (binary_expression "(byte)cmdline_tooltype & 3" (cast_expression "(byte)cmdline_tooltype" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00015d50;" goto statement_identifier ;)) (labeled_statement "LAB_00016961:\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 "iVar7 = strcmp(p,"-X");" (assignment_expression "iVar7 = strcmp(p,"-X")" identifier = (call_expression "strcmp(p,"-X")" identifier (argument_list "(p,"-X")" ( identifier , (string_literal ""-X"" " string_content ") )))) ;) (if_statement "if (iVar7 == 0) {\n      if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\n      goto LAB_000169a1;\n    }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n      if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\n      goto LAB_000169a1;\n    }" { (if_statement "if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;" if (parenthesized_expression "(((byte)cmdline_tooltype & 3) != 0)" ( (binary_expression "((byte)cmdline_tooltype & 3) != 0" (parenthesized_expression "((byte)cmdline_tooltype & 3)" ( (binary_expression "(byte)cmdline_tooltype & 3" (cast_expression "(byte)cmdline_tooltype" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00015d50;" goto statement_identifier ;)) (goto_statement "goto LAB_000169a1;" goto statement_identifier ;) })) (expression_statement "iVar7 = 1;" (assignment_expression "iVar7 = 1" identifier = number_literal) ;) (expression_statement "iVar8 = strcmp(p,"-x");" (assignment_expression "iVar8 = strcmp(p,"-x")" identifier = (call_expression "strcmp(p,"-x")" identifier (argument_list "(p,"-x")" ( identifier , (string_literal ""-x"" " string_content ") )))) ;) (if_statement "if (iVar8 == 0) goto LAB_00016fc4;" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00016fc4;" goto statement_identifier ;)) (labeled_statement "LAB_0001704f:\n    iVar8 = strcmp(p,"-t");" statement_identifier : (expression_statement "iVar8 = strcmp(p,"-t");" (assignment_expression "iVar8 = strcmp(p,"-t")" identifier = (call_expression "strcmp(p,"-t")" identifier (argument_list "(p,"-t")" ( identifier , (string_literal ""-t"" " string_content ") )))) ;)) (if_statement "if (iVar8 == 0) {\n      if (need_save < 0) {\n        return 1;\n      }\n      goto LAB_0001707c;\n    }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n      if (need_save < 0) {\n        return 1;\n      }\n      goto LAB_0001707c;\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_0001707c;" goto statement_identifier ;) })) (labeled_statement "LAB_000177b1:\n    iVar8 = strcmp(p,"-T");" statement_identifier : (expression_statement "iVar8 = strcmp(p,"-T");" (assignment_expression "iVar8 = strcmp(p,"-T")" identifier = (call_expression "strcmp(p,"-T")" identifier (argument_list "(p,"-T")" ( identifier , (string_literal ""-T"" " string_content ") )))) ;)) (if_statement "if (iVar8 != 0) goto LAB_00017759;" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00017759;" 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_0001770d:\n    if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;" statement_identifier : (if_statement "if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;" if (parenthesized_expression "(((byte)cmdline_tooltype & 3) != 0)" ( (binary_expression "((byte)cmdline_tooltype & 3) != 0" (parenthesized_expression "((byte)cmdline_tooltype & 3)" ( (binary_expression "(byte)cmdline_tooltype & 3" (cast_expression "(byte)cmdline_tooltype" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00015d50;" goto statement_identifier ;))) (if_statement "if (need_save != 0) goto LAB_00017091;" if (parenthesized_expression "(need_save != 0)" ( (binary_expression "need_save != 0" identifier != number_literal) )) (goto_statement "goto LAB_00017091;" goto statement_identifier ;)) (labeled_statement "LAB_00016a67:\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 "iVar7 = strcmp(p,"-N");" (assignment_expression "iVar7 = strcmp(p,"-N")" identifier = (call_expression "strcmp(p,"-N")" identifier (argument_list "(p,"-N")" ( identifier , (string_literal ""-N"" " string_content ") )))) ;) (if_statement "if (iVar7 == 0) {\n      if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\nLAB_00016aa7:\n      conf_set_int(conf,0x2d,1);\n      iVar7 = strcmp(p,"-C");\n      if (iVar7 == 0) {\n        if (((byte)cmdline_tooltype & 2) != 0) goto LAB_00015d50;\n        goto LAB_00016ae7;\n      }\n      iVar7 = 1;\n      iVar8 = strcmp(p,"-1");\n      if (iVar8 != 0) goto LAB_00017647;\nLAB_000175ed:\n      if (((byte)cmdline_tooltype & 2) != 0) goto LAB_00015d50;\n      if (need_save != 0) goto LAB_00015c78;\n      goto LAB_00016b27;\n    }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n      if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\nLAB_00016aa7:\n      conf_set_int(conf,0x2d,1);\n      iVar7 = strcmp(p,"-C");\n      if (iVar7 == 0) {\n        if (((byte)cmdline_tooltype & 2) != 0) goto LAB_00015d50;\n        goto LAB_00016ae7;\n      }\n      iVar7 = 1;\n      iVar8 = strcmp(p,"-1");\n      if (iVar8 != 0) goto LAB_00017647;\nLAB_000175ed:\n      if (((byte)cmdline_tooltype & 2) != 0) goto LAB_00015d50;\n      if (need_save != 0) goto LAB_00015c78;\n      goto LAB_00016b27;\n    }" { (if_statement "if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;" if (parenthesized_expression "(((byte)cmdline_tooltype & 3) != 0)" ( (binary_expression "((byte)cmdline_tooltype & 3) != 0" (parenthesized_expression "((byte)cmdline_tooltype & 3)" ( (binary_expression "(byte)cmdline_tooltype & 3" (cast_expression "(byte)cmdline_tooltype" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00015d50;" goto statement_identifier ;)) (labeled_statement "LAB_00016aa7:\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 "iVar7 = strcmp(p,"-C");" (assignment_expression "iVar7 = strcmp(p,"-C")" identifier = (call_expression "strcmp(p,"-C")" identifier (argument_list "(p,"-C")" ( identifier , (string_literal ""-C"" " string_content ") )))) ;) (if_statement "if (iVar7 == 0) {\n        if (((byte)cmdline_tooltype & 2) != 0) goto LAB_00015d50;\n        goto LAB_00016ae7;\n      }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n        if (((byte)cmdline_tooltype & 2) != 0) goto LAB_00015d50;\n        goto LAB_00016ae7;\n      }" { (if_statement "if (((byte)cmdline_tooltype & 2) != 0) goto LAB_00015d50;" if (parenthesized_expression "(((byte)cmdline_tooltype & 2) != 0)" ( (binary_expression "((byte)cmdline_tooltype & 2) != 0" (parenthesized_expression "((byte)cmdline_tooltype & 2)" ( (binary_expression "(byte)cmdline_tooltype & 2" (cast_expression "(byte)cmdline_tooltype" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00015d50;" goto statement_identifier ;)) (goto_statement "goto LAB_00016ae7;" goto statement_identifier ;) })) (expression_statement "iVar7 = 1;" (assignment_expression "iVar7 = 1" identifier = number_literal) ;) (expression_statement "iVar8 = strcmp(p,"-1");" (assignment_expression "iVar8 = strcmp(p,"-1")" identifier = (call_expression "strcmp(p,"-1")" identifier (argument_list "(p,"-1")" ( identifier , (string_literal ""-1"" " string_content ") )))) ;) (if_statement "if (iVar8 != 0) goto LAB_00017647;" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00017647;" goto statement_identifier ;)) (labeled_statement "LAB_000175ed:\n      if (((byte)cmdline_tooltype & 2) != 0) goto LAB_00015d50;" statement_identifier : (if_statement "if (((byte)cmdline_tooltype & 2) != 0) goto LAB_00015d50;" if (parenthesized_expression "(((byte)cmdline_tooltype & 2) != 0)" ( (binary_expression "((byte)cmdline_tooltype & 2) != 0" (parenthesized_expression "((byte)cmdline_tooltype & 2)" ( (binary_expression "(byte)cmdline_tooltype & 2" (cast_expression "(byte)cmdline_tooltype" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00015d50;" goto statement_identifier ;))) (if_statement "if (need_save != 0) goto LAB_00015c78;" if (parenthesized_expression "(need_save != 0)" ( (binary_expression "need_save != 0" identifier != number_literal) )) (goto_statement "goto LAB_00015c78;" goto statement_identifier ;)) (goto_statement "goto LAB_00016b27;" goto statement_identifier ;) })) (expression_statement "iVar7 = 1;" (assignment_expression "iVar7 = 1" identifier = number_literal) ;) (expression_statement "iVar8 = strcmp(p,"-C");" (assignment_expression "iVar8 = strcmp(p,"-C")" identifier = (call_expression "strcmp(p,"-C")" identifier (argument_list "(p,"-C")" ( identifier , (string_literal ""-C"" " string_content ") )))) ;) (if_statement "if (iVar8 == 0) goto LAB_0001762d;" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001762d;" goto statement_identifier ;)) (labeled_statement "LAB_00017679:\n    iVar8 = strcmp(p,"-1");" statement_identifier : (expression_statement "iVar8 = strcmp(p,"-1");" (assignment_expression "iVar8 = strcmp(p,"-1")" identifier = (call_expression "strcmp(p,"-1")" identifier (argument_list "(p,"-1")" ( identifier , (string_literal ""-1"" " string_content ") )))) ;)) (if_statement "if (iVar8 == 0) {\n      if (need_save < 0) {\n        return 1;\n      }\n      goto LAB_000175ed;\n    }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n      if (need_save < 0) {\n        return 1;\n      }\n      goto LAB_000175ed;\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_000175ed;" goto statement_identifier ;) })) (labeled_statement "LAB_00017647:\n    iVar8 = strcmp(p,"-2");" statement_identifier : (expression_statement "iVar8 = strcmp(p,"-2");" (assignment_expression "iVar8 = strcmp(p,"-2")" identifier = (call_expression "strcmp(p,"-2")" identifier (argument_list "(p,"-2")" ( identifier , (string_literal ""-2"" " string_content ") )))) ;)) (if_statement "if (iVar8 == 0) {\n      if (need_save < 0) {\n        return 1;\n      }\nLAB_000175ad:\n      if (((byte)cmdline_tooltype & 2) != 0) goto LAB_00015d50;\n      if (need_save != 0) {\nLAB_00015c78:\n        cmdline_save_param(p,value,0);\n        return 1;\n      }\nLAB_00016b67:\n      iVar7 = 1;\n      conf_set_int(conf,0x21,3);\n    }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n      if (need_save < 0) {\n        return 1;\n      }\nLAB_000175ad:\n      if (((byte)cmdline_tooltype & 2) != 0) goto LAB_00015d50;\n      if (need_save != 0) {\nLAB_00015c78:\n        cmdline_save_param(p,value,0);\n        return 1;\n      }\nLAB_00016b67:\n      iVar7 = 1;\n      conf_set_int(conf,0x21,3);\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_000175ad:\n      if (((byte)cmdline_tooltype & 2) != 0) goto LAB_00015d50;" statement_identifier : (if_statement "if (((byte)cmdline_tooltype & 2) != 0) goto LAB_00015d50;" if (parenthesized_expression "(((byte)cmdline_tooltype & 2) != 0)" ( (binary_expression "((byte)cmdline_tooltype & 2) != 0" (parenthesized_expression "((byte)cmdline_tooltype & 2)" ( (binary_expression "(byte)cmdline_tooltype & 2" (cast_expression "(byte)cmdline_tooltype" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00015d50;" goto statement_identifier ;))) (if_statement "if (need_save != 0) {\nLAB_00015c78:\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 "{\nLAB_00015c78:\n        cmdline_save_param(p,value,0);\n        return 1;\n      }" { (labeled_statement "LAB_00015c78:\n        cmdline_save_param(p,value,0);" statement_identifier : (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_00016b67:\n      iVar7 = 1;" statement_identifier : (expression_statement "iVar7 = 1;" (assignment_expression "iVar7 = 1" identifier = number_literal) ;)) (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 ))) ;) })) }) (else_clause "else {\n    iVar8 = 9;\n    pbVar11 = (byte *)p;\n    pbVar12 = (byte *)"-loghost";\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar14 = *pbVar11 < *pbVar12;\n      bVar13 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    } while (bVar13);\n    bVar16 = false;\n    bVar13 = (!bVar14 && !bVar13) == bVar14;\n    if (!bVar13) {\n      iVar8 = 9;\n      pbVar11 = (byte *)p;\n      pbVar12 = (byte *)"-hostkey";\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar16 = *pbVar11 < *pbVar12;\n        bVar13 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n        pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n      } while (bVar13);\n      bVar13 = (!bVar16 && !bVar13) == bVar16;\n      if (bVar13) {\n        if (value == (char *)0x0) {\n          return -2;\n        }\n        if (need_save < 0) {\n          return 2;\n        }\nLAB_00016218:\n        if (((byte)cmdline_tooltype & 2) != 0) goto LAB_000161c3;\n        if (need_save != 0) goto LAB_00016123;\n        goto LAB_00015f0d;\n      }\n      goto LAB_0001624d;\n    }\n    if (value == (char *)0x0) {\n      return -2;\n    }\n    if (need_save < 0) {\n      return 2;\n    }\n    if (((byte)cmdline_tooltype & 2) != 0) goto LAB_000161c3;\n    if (need_save != 0) goto LAB_00016123;\nLAB_00015ec5:\n    uVar15 = auStack_2c < (undefined1 *)0x4;\n    uVar17 = &stack0x00000000 == (undefined1 *)0x30;\n    conf_set_str(conf,9,value);\n    iVar7 = 9;\n    pbVar11 = (byte *)p;\n    pbVar12 = (byte *)"-hostkey";\n    do {\n      if (iVar7 == 0) break;\n      iVar7 = iVar7 + -1;\n      uVar15 = *pbVar11 < *pbVar12;\n      uVar17 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    } while ((bool)uVar17);\n    bVar13 = (!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15;\n    if (!bVar13) goto LAB_00016248;\n    if (((byte)cmdline_tooltype & 2) != 0) goto LAB_000161c3;\nLAB_00015f0d:\n    pcVar2 = dupstr(value);\n    iVar7 = validate_manual_hostkey(pcVar2);\n    uVar15 = 0;\n    uVar17 = iVar7 == 0;\n    if ((bool)uVar17) {\n      cmdline_error("\'%s\' is not a valid format for a manual host key specification");\n      safefree(pcVar2);\n      return 2;\n    }\n    iVar7 = 2;\n    conf_set_str_str(conf,0xad,pcVar2,"");\n    safefree(pcVar2);\n    iVar8 = 3;\n    pbVar11 = (byte *)p;\n    pbVar12 = &DAT_0004b0ec;\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      uVar15 = *pbVar11 < *pbVar12;\n      uVar17 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    } while ((bool)uVar17);\n    bVar13 = (!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15;\n    if (!bVar13) goto LAB_0001626b;\n    bVar13 = ((byte)cmdline_tooltype & 3) == 0;\n    if (!bVar13) goto LAB_000161c3;\nLAB_00015f8f:\n    bVar16 = false;\n    iVar7 = 3;\n    pbVar11 = (byte *)p;\n    pbVar12 = (byte *)0x53a3b;\n    do {\n      if (iVar7 == 0) break;\n      iVar7 = iVar7 + -1;\n      bVar16 = *pbVar11 < *pbVar12;\n      bVar13 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    } while (bVar13);\n    if ((!bVar16 && !bVar13) == bVar16) {\n      pcVar2 = dupprintf("L%s");\n      pcVar4 = dupstr("D");\n    }\n    else {\n      pcVar2 = host_strchr(value,0x3a);\n      pcVar4 = pcVar2;\n      if (pcVar2 == (char *)0x0) {\n        cmdline_error("-%c expects at least two colons in its argument");\n        return 2;\n      }\n      do {\n        pcVar10 = pcVar4;\n        pcVar4 = pcVar2;\n        pcVar2 = host_strchr(pcVar4 + 1,0x3a);\n      } while (pcVar2 != (char *)0x0);\n      pcVar2 = dupprintf("%c%.*s");\n      pcVar4 = dupstr(pcVar10 + 1);\n    }\n    uVar15 = (undefined1 *)0xffffffef < &stack0xffffffc4;\n    uVar17 = &stack0x00000000 == (undefined1 *)0x2c;\n    iVar7 = 2;\n    conf_set_str_str(conf,0x9b,pcVar2,pcVar4);\n    safefree(pcVar2);\n    safefree(pcVar4);\n    iVar8 = 4;\n    pbVar11 = (byte *)p;\n    pbVar12 = &DAT_0004b0fd;\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      uVar15 = *pbVar11 < *pbVar12;\n      uVar17 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    } while ((bool)uVar17);\n    bVar13 = (!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15;\n    if (bVar13) {\n      if (((byte)cmdline_tooltype & 3) != 0) goto LAB_000161c3;\n      goto LAB_000162ed;\n    }\nLAB_00016698:\n    bVar16 = false;\n    iVar8 = 3;\n    pbVar11 = (byte *)p;\n    pbVar12 = &DAT_0004b101;\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar16 = *pbVar11 < *pbVar12;\n      bVar13 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    } while (bVar13);\n    bVar13 = (!bVar16 && !bVar13) == bVar16;\n    if (bVar13) {\n      if (value == (char *)0x0) {\n        return -2;\n      }\n      if (need_save < 0) {\n        return 2;\n      }\n      if (((byte)cmdline_tooltype & 3) != 0) goto LAB_000161c3;\n      if (need_save != 0) goto LAB_00016123;\n      goto LAB_0001639b;\n    }\nLAB_000166e0:\n    bVar16 = false;\n    iVar8 = 3;\n    pbVar11 = (byte *)p;\n    pbVar12 = &DAT_0004b104;\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar16 = *pbVar11 < *pbVar12;\n      bVar13 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    } while (bVar13);\n    bVar13 = (!bVar16 && !bVar13) == bVar16;\n    if (bVar13) {\n      if (value == (char *)0x0) {\n        return -2;\n      }\n      if (need_save < 0) {\n        return 2;\n      }\n      if (((byte)cmdline_tooltype & 2) != 0) goto LAB_000161c3;\n      if (need_save != 0) goto LAB_00016723;\n      goto LAB_000164a7;\n    }\nLAB_00016777:\n    bVar16 = false;\n    iVar8 = 4;\n    pbVar11 = (byte *)p;\n    pbVar12 = &DAT_0004b107;\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar16 = *pbVar11 < *pbVar12;\n      bVar13 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    } while (bVar13);\n    if ((!bVar16 && !bVar13) == bVar16) {\n      if (value == (char *)0x0) {\n        return -2;\n      }\n      if (need_save < 0) {\n        return 2;\n      }\n      if (((byte)cmdline_tooltype & 2) != 0) goto LAB_000161c3;\n      if (need_save != 0) goto LAB_00016723;\n      goto LAB_000164f6;\n    }\n    iVar8 = strcmp(p,"-agent");\n    if ((iVar8 != 0) && (iVar8 = strcmp(p,"-pagent"), iVar8 != 0)) goto LAB_0001685f;\nLAB_00016884:\n    if (need_save < 0) {\n      return 1;\n    }\nLAB_0001688c:\n    if (((byte)cmdline_tooltype & 2) != 0) goto LAB_00015d50;\n    if (need_save != 0) goto LAB_00015c78;\nLAB_000168a1:\n    conf_set_int(conf,0x1c,1);\n    iVar7 = strcmp(p,"-noagent");\n    if (iVar7 != 0) {\n      iVar7 = 1;\n      iVar8 = strcmp(p,"-nopagent");\n      if (iVar8 != 0) goto LAB_000165eb;\n      goto LAB_00016e44;\n    }\n    if (((byte)cmdline_tooltype & 2) != 0) goto LAB_00015d50;\nLAB_000168e1:\n    conf_set_int(conf,0x1c,0);\n    iVar7 = strcmp(p,"-A");\n    if (iVar7 == 0) {\n      if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\n      goto LAB_00016921;\n    }\n    iVar7 = 1;\n    iVar8 = strcmp(p,"-a");\n    if (iVar8 == 0) {\nLAB_0001700b:\n      if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\n      if (need_save != 0) goto LAB_00015c78;\n      goto LAB_00016961;\n    }\nLAB_00016f0f:\n    iVar8 = strcmp(p,"-X");\n    if (iVar8 != 0) goto LAB_00016f97;\n    if (need_save < 0) {\n      return 1;\n    }\nLAB_00016f38:\n    if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\n    if (need_save != 0) goto LAB_00015c78;\nLAB_000169a1:\n    conf_set_int(conf,0x95,1);\n    iVar7 = strcmp(p,"-x");\n    if (iVar7 == 0) {\n      if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\nLAB_000169e4:\n      conf_set_int(conf,0x95,0);\n      iVar7 = strcmp(p,"-t");\n      if (iVar7 == 0) {\n        if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\n        goto LAB_00016a27;\n      }\n      iVar7 = 1;\n      iVar8 = strcmp(p,"-T");\n      if (iVar8 == 0) goto LAB_0001770d;\nLAB_00017759:\n      iVar8 = strcmp(p,"-N");\n      if (iVar8 != 0) goto LAB_00017727;\n      if (need_save < 0) {\n        return 1;\n      }\nLAB_000176cd:\n      if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\n      if (need_save != 0) goto LAB_00015c78;\n      goto LAB_00016aa7;\n    }\n    iVar7 = 1;\n    iVar8 = strcmp(p,"-t");\n    if (iVar8 != 0) goto LAB_000177b1;\nLAB_0001707c:\n    if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\n    if (need_save != 0) goto LAB_00017091;\nLAB_00016a27:\n    conf_set_int(conf,0x16,0);\n    iVar7 = strcmp(p,"-T");\n    if (iVar7 == 0) {\n      if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\n      goto LAB_00016a67;\n    }\n    iVar7 = 1;\n    iVar8 = strcmp(p,"-N");\n    if (iVar8 == 0) goto LAB_000176cd;\nLAB_00017727:\n    iVar8 = strcmp(p,"-C");\n    if (iVar8 != 0) goto LAB_00017679;\n    if (need_save < 0) {\n      return 1;\n    }\nLAB_0001762d:\n    if (((byte)cmdline_tooltype & 2) != 0) goto LAB_00015d50;\n    if (need_save != 0) goto LAB_00015c78;\nLAB_00016ae7:\n    conf_set_int(conf,0x17,1);\n    iVar7 = strcmp(p,"-1");\n    if (iVar7 == 0) {\n      if (((byte)cmdline_tooltype & 2) != 0) goto LAB_00015d50;\nLAB_00016b27:\n      conf_set_int(conf,0x21,0);\n      iVar7 = strcmp(p,"-2");\n      if (iVar7 == 0) {\n        if (((byte)cmdline_tooltype & 2) != 0) {\nLAB_00015d50:\n          cmdline_error("option \"%s\" not available in this tool");\n          return 1;\n        }\n        goto LAB_00016b67;\n      }\n    }\n    else {\n      iVar7 = strcmp(p,"-2");\n      if (iVar7 == 0) goto LAB_000175ad;\n    }\n    iVar7 = 1;\n  }" else (compound_statement "{\n    iVar8 = 9;\n    pbVar11 = (byte *)p;\n    pbVar12 = (byte *)"-loghost";\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar14 = *pbVar11 < *pbVar12;\n      bVar13 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    } while (bVar13);\n    bVar16 = false;\n    bVar13 = (!bVar14 && !bVar13) == bVar14;\n    if (!bVar13) {\n      iVar8 = 9;\n      pbVar11 = (byte *)p;\n      pbVar12 = (byte *)"-hostkey";\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar16 = *pbVar11 < *pbVar12;\n        bVar13 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n        pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n      } while (bVar13);\n      bVar13 = (!bVar16 && !bVar13) == bVar16;\n      if (bVar13) {\n        if (value == (char *)0x0) {\n          return -2;\n        }\n        if (need_save < 0) {\n          return 2;\n        }\nLAB_00016218:\n        if (((byte)cmdline_tooltype & 2) != 0) goto LAB_000161c3;\n        if (need_save != 0) goto LAB_00016123;\n        goto LAB_00015f0d;\n      }\n      goto LAB_0001624d;\n    }\n    if (value == (char *)0x0) {\n      return -2;\n    }\n    if (need_save < 0) {\n      return 2;\n    }\n    if (((byte)cmdline_tooltype & 2) != 0) goto LAB_000161c3;\n    if (need_save != 0) goto LAB_00016123;\nLAB_00015ec5:\n    uVar15 = auStack_2c < (undefined1 *)0x4;\n    uVar17 = &stack0x00000000 == (undefined1 *)0x30;\n    conf_set_str(conf,9,value);\n    iVar7 = 9;\n    pbVar11 = (byte *)p;\n    pbVar12 = (byte *)"-hostkey";\n    do {\n      if (iVar7 == 0) break;\n      iVar7 = iVar7 + -1;\n      uVar15 = *pbVar11 < *pbVar12;\n      uVar17 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    } while ((bool)uVar17);\n    bVar13 = (!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15;\n    if (!bVar13) goto LAB_00016248;\n    if (((byte)cmdline_tooltype & 2) != 0) goto LAB_000161c3;\nLAB_00015f0d:\n    pcVar2 = dupstr(value);\n    iVar7 = validate_manual_hostkey(pcVar2);\n    uVar15 = 0;\n    uVar17 = iVar7 == 0;\n    if ((bool)uVar17) {\n      cmdline_error("\'%s\' is not a valid format for a manual host key specification");\n      safefree(pcVar2);\n      return 2;\n    }\n    iVar7 = 2;\n    conf_set_str_str(conf,0xad,pcVar2,"");\n    safefree(pcVar2);\n    iVar8 = 3;\n    pbVar11 = (byte *)p;\n    pbVar12 = &DAT_0004b0ec;\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      uVar15 = *pbVar11 < *pbVar12;\n      uVar17 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    } while ((bool)uVar17);\n    bVar13 = (!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15;\n    if (!bVar13) goto LAB_0001626b;\n    bVar13 = ((byte)cmdline_tooltype & 3) == 0;\n    if (!bVar13) goto LAB_000161c3;\nLAB_00015f8f:\n    bVar16 = false;\n    iVar7 = 3;\n    pbVar11 = (byte *)p;\n    pbVar12 = (byte *)0x53a3b;\n    do {\n      if (iVar7 == 0) break;\n      iVar7 = iVar7 + -1;\n      bVar16 = *pbVar11 < *pbVar12;\n      bVar13 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    } while (bVar13);\n    if ((!bVar16 && !bVar13) == bVar16) {\n      pcVar2 = dupprintf("L%s");\n      pcVar4 = dupstr("D");\n    }\n    else {\n      pcVar2 = host_strchr(value,0x3a);\n      pcVar4 = pcVar2;\n      if (pcVar2 == (char *)0x0) {\n        cmdline_error("-%c expects at least two colons in its argument");\n        return 2;\n      }\n      do {\n        pcVar10 = pcVar4;\n        pcVar4 = pcVar2;\n        pcVar2 = host_strchr(pcVar4 + 1,0x3a);\n      } while (pcVar2 != (char *)0x0);\n      pcVar2 = dupprintf("%c%.*s");\n      pcVar4 = dupstr(pcVar10 + 1);\n    }\n    uVar15 = (undefined1 *)0xffffffef < &stack0xffffffc4;\n    uVar17 = &stack0x00000000 == (undefined1 *)0x2c;\n    iVar7 = 2;\n    conf_set_str_str(conf,0x9b,pcVar2,pcVar4);\n    safefree(pcVar2);\n    safefree(pcVar4);\n    iVar8 = 4;\n    pbVar11 = (byte *)p;\n    pbVar12 = &DAT_0004b0fd;\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      uVar15 = *pbVar11 < *pbVar12;\n      uVar17 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    } while ((bool)uVar17);\n    bVar13 = (!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15;\n    if (bVar13) {\n      if (((byte)cmdline_tooltype & 3) != 0) goto LAB_000161c3;\n      goto LAB_000162ed;\n    }\nLAB_00016698:\n    bVar16 = false;\n    iVar8 = 3;\n    pbVar11 = (byte *)p;\n    pbVar12 = &DAT_0004b101;\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar16 = *pbVar11 < *pbVar12;\n      bVar13 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    } while (bVar13);\n    bVar13 = (!bVar16 && !bVar13) == bVar16;\n    if (bVar13) {\n      if (value == (char *)0x0) {\n        return -2;\n      }\n      if (need_save < 0) {\n        return 2;\n      }\n      if (((byte)cmdline_tooltype & 3) != 0) goto LAB_000161c3;\n      if (need_save != 0) goto LAB_00016123;\n      goto LAB_0001639b;\n    }\nLAB_000166e0:\n    bVar16 = false;\n    iVar8 = 3;\n    pbVar11 = (byte *)p;\n    pbVar12 = &DAT_0004b104;\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar16 = *pbVar11 < *pbVar12;\n      bVar13 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    } while (bVar13);\n    bVar13 = (!bVar16 && !bVar13) == bVar16;\n    if (bVar13) {\n      if (value == (char *)0x0) {\n        return -2;\n      }\n      if (need_save < 0) {\n        return 2;\n      }\n      if (((byte)cmdline_tooltype & 2) != 0) goto LAB_000161c3;\n      if (need_save != 0) goto LAB_00016723;\n      goto LAB_000164a7;\n    }\nLAB_00016777:\n    bVar16 = false;\n    iVar8 = 4;\n    pbVar11 = (byte *)p;\n    pbVar12 = &DAT_0004b107;\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar16 = *pbVar11 < *pbVar12;\n      bVar13 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    } while (bVar13);\n    if ((!bVar16 && !bVar13) == bVar16) {\n      if (value == (char *)0x0) {\n        return -2;\n      }\n      if (need_save < 0) {\n        return 2;\n      }\n      if (((byte)cmdline_tooltype & 2) != 0) goto LAB_000161c3;\n      if (need_save != 0) goto LAB_00016723;\n      goto LAB_000164f6;\n    }\n    iVar8 = strcmp(p,"-agent");\n    if ((iVar8 != 0) && (iVar8 = strcmp(p,"-pagent"), iVar8 != 0)) goto LAB_0001685f;\nLAB_00016884:\n    if (need_save < 0) {\n      return 1;\n    }\nLAB_0001688c:\n    if (((byte)cmdline_tooltype & 2) != 0) goto LAB_00015d50;\n    if (need_save != 0) goto LAB_00015c78;\nLAB_000168a1:\n    conf_set_int(conf,0x1c,1);\n    iVar7 = strcmp(p,"-noagent");\n    if (iVar7 != 0) {\n      iVar7 = 1;\n      iVar8 = strcmp(p,"-nopagent");\n      if (iVar8 != 0) goto LAB_000165eb;\n      goto LAB_00016e44;\n    }\n    if (((byte)cmdline_tooltype & 2) != 0) goto LAB_00015d50;\nLAB_000168e1:\n    conf_set_int(conf,0x1c,0);\n    iVar7 = strcmp(p,"-A");\n    if (iVar7 == 0) {\n      if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\n      goto LAB_00016921;\n    }\n    iVar7 = 1;\n    iVar8 = strcmp(p,"-a");\n    if (iVar8 == 0) {\nLAB_0001700b:\n      if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\n      if (need_save != 0) goto LAB_00015c78;\n      goto LAB_00016961;\n    }\nLAB_00016f0f:\n    iVar8 = strcmp(p,"-X");\n    if (iVar8 != 0) goto LAB_00016f97;\n    if (need_save < 0) {\n      return 1;\n    }\nLAB_00016f38:\n    if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\n    if (need_save != 0) goto LAB_00015c78;\nLAB_000169a1:\n    conf_set_int(conf,0x95,1);\n    iVar7 = strcmp(p,"-x");\n    if (iVar7 == 0) {\n      if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\nLAB_000169e4:\n      conf_set_int(conf,0x95,0);\n      iVar7 = strcmp(p,"-t");\n      if (iVar7 == 0) {\n        if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\n        goto LAB_00016a27;\n      }\n      iVar7 = 1;\n      iVar8 = strcmp(p,"-T");\n      if (iVar8 == 0) goto LAB_0001770d;\nLAB_00017759:\n      iVar8 = strcmp(p,"-N");\n      if (iVar8 != 0) goto LAB_00017727;\n      if (need_save < 0) {\n        return 1;\n      }\nLAB_000176cd:\n      if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\n      if (need_save != 0) goto LAB_00015c78;\n      goto LAB_00016aa7;\n    }\n    iVar7 = 1;\n    iVar8 = strcmp(p,"-t");\n    if (iVar8 != 0) goto LAB_000177b1;\nLAB_0001707c:\n    if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\n    if (need_save != 0) goto LAB_00017091;\nLAB_00016a27:\n    conf_set_int(conf,0x16,0);\n    iVar7 = strcmp(p,"-T");\n    if (iVar7 == 0) {\n      if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\n      goto LAB_00016a67;\n    }\n    iVar7 = 1;\n    iVar8 = strcmp(p,"-N");\n    if (iVar8 == 0) goto LAB_000176cd;\nLAB_00017727:\n    iVar8 = strcmp(p,"-C");\n    if (iVar8 != 0) goto LAB_00017679;\n    if (need_save < 0) {\n      return 1;\n    }\nLAB_0001762d:\n    if (((byte)cmdline_tooltype & 2) != 0) goto LAB_00015d50;\n    if (need_save != 0) goto LAB_00015c78;\nLAB_00016ae7:\n    conf_set_int(conf,0x17,1);\n    iVar7 = strcmp(p,"-1");\n    if (iVar7 == 0) {\n      if (((byte)cmdline_tooltype & 2) != 0) goto LAB_00015d50;\nLAB_00016b27:\n      conf_set_int(conf,0x21,0);\n      iVar7 = strcmp(p,"-2");\n      if (iVar7 == 0) {\n        if (((byte)cmdline_tooltype & 2) != 0) {\nLAB_00015d50:\n          cmdline_error("option \"%s\" not available in this tool");\n          return 1;\n        }\n        goto LAB_00016b67;\n      }\n    }\n    else {\n      iVar7 = strcmp(p,"-2");\n      if (iVar7 == 0) goto LAB_000175ad;\n    }\n    iVar7 = 1;\n  }" { (expression_statement "iVar8 = 9;" (assignment_expression "iVar8 = 9" identifier = number_literal) ;) (expression_statement "pbVar11 = (byte *)p;" (assignment_expression "pbVar11 = (byte *)p" identifier = (cast_expression "(byte *)p" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) 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 (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar14 = *pbVar11 < *pbVar12;\n      bVar13 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    } while (bVar13);" do (compound_statement "{\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar14 = *pbVar11 < *pbVar12;\n      bVar13 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    }" { (if_statement "if (iVar8 == 0) break;" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar8 = iVar8 + -1;" (assignment_expression "iVar8 = iVar8 + -1" identifier = (binary_expression "iVar8 + -1" identifier + number_literal)) ;) (expression_statement "bVar14 = *pbVar11 < *pbVar12;" (assignment_expression "bVar14 = *pbVar11 < *pbVar12" identifier = (binary_expression "*pbVar11 < *pbVar12" (pointer_expression "*pbVar11" * identifier) < (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "bVar13 = *pbVar11 == *pbVar12;" (assignment_expression "bVar13 = *pbVar11 == *pbVar12" identifier = (binary_expression "*pbVar11 == *pbVar12" (pointer_expression "*pbVar11" * identifier) == (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1" identifier = (binary_expression "pbVar11 + (uint)bVar18 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar18 * -2" identifier + (binary_expression "(uint)bVar18 * -2" (cast_expression "(uint)bVar18" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1" identifier = (binary_expression "pbVar12 + (uint)bVar18 * -2 + 1" (binary_expression "pbVar12 + (uint)bVar18 * -2" identifier + (binary_expression "(uint)bVar18 * -2" (cast_expression "(uint)bVar18" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar13)" ( identifier )) ;) (expression_statement "bVar16 = false;" (assignment_expression "bVar16 = false" identifier = false) ;) (expression_statement "bVar13 = (!bVar14 && !bVar13) == bVar14;" (assignment_expression "bVar13 = (!bVar14 && !bVar13) == bVar14" identifier = (binary_expression "(!bVar14 && !bVar13) == bVar14" (parenthesized_expression "(!bVar14 && !bVar13)" ( (binary_expression "!bVar14 && !bVar13" (unary_expression "!bVar14" ! identifier) && (unary_expression "!bVar13" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar13) {\n      iVar8 = 9;\n      pbVar11 = (byte *)p;\n      pbVar12 = (byte *)"-hostkey";\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar16 = *pbVar11 < *pbVar12;\n        bVar13 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n        pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n      } while (bVar13);\n      bVar13 = (!bVar16 && !bVar13) == bVar16;\n      if (bVar13) {\n        if (value == (char *)0x0) {\n          return -2;\n        }\n        if (need_save < 0) {\n          return 2;\n        }\nLAB_00016218:\n        if (((byte)cmdline_tooltype & 2) != 0) goto LAB_000161c3;\n        if (need_save != 0) goto LAB_00016123;\n        goto LAB_00015f0d;\n      }\n      goto LAB_0001624d;\n    }" if (parenthesized_expression "(!bVar13)" ( (unary_expression "!bVar13" ! identifier) )) (compound_statement "{\n      iVar8 = 9;\n      pbVar11 = (byte *)p;\n      pbVar12 = (byte *)"-hostkey";\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar16 = *pbVar11 < *pbVar12;\n        bVar13 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n        pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n      } while (bVar13);\n      bVar13 = (!bVar16 && !bVar13) == bVar16;\n      if (bVar13) {\n        if (value == (char *)0x0) {\n          return -2;\n        }\n        if (need_save < 0) {\n          return 2;\n        }\nLAB_00016218:\n        if (((byte)cmdline_tooltype & 2) != 0) goto LAB_000161c3;\n        if (need_save != 0) goto LAB_00016123;\n        goto LAB_00015f0d;\n      }\n      goto LAB_0001624d;\n    }" { (expression_statement "iVar8 = 9;" (assignment_expression "iVar8 = 9" identifier = number_literal) ;) (expression_statement "pbVar11 = (byte *)p;" (assignment_expression "pbVar11 = (byte *)p" identifier = (cast_expression "(byte *)p" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) 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 (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar16 = *pbVar11 < *pbVar12;\n        bVar13 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n        pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n      } while (bVar13);" do (compound_statement "{\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar16 = *pbVar11 < *pbVar12;\n        bVar13 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n        pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n      }" { (if_statement "if (iVar8 == 0) break;" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar8 = iVar8 + -1;" (assignment_expression "iVar8 = iVar8 + -1" identifier = (binary_expression "iVar8 + -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 "bVar13 = *pbVar11 == *pbVar12;" (assignment_expression "bVar13 = *pbVar11 == *pbVar12" identifier = (binary_expression "*pbVar11 == *pbVar12" (pointer_expression "*pbVar11" * identifier) == (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1" identifier = (binary_expression "pbVar11 + (uint)bVar18 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar18 * -2" identifier + (binary_expression "(uint)bVar18 * -2" (cast_expression "(uint)bVar18" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1" identifier = (binary_expression "pbVar12 + (uint)bVar18 * -2 + 1" (binary_expression "pbVar12 + (uint)bVar18 * -2" identifier + (binary_expression "(uint)bVar18 * -2" (cast_expression "(uint)bVar18" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar13)" ( identifier )) ;) (expression_statement "bVar13 = (!bVar16 && !bVar13) == bVar16;" (assignment_expression "bVar13 = (!bVar16 && !bVar13) == bVar16" identifier = (binary_expression "(!bVar16 && !bVar13) == bVar16" (parenthesized_expression "(!bVar16 && !bVar13)" ( (binary_expression "!bVar16 && !bVar13" (unary_expression "!bVar16" ! identifier) && (unary_expression "!bVar13" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar13) {\n        if (value == (char *)0x0) {\n          return -2;\n        }\n        if (need_save < 0) {\n          return 2;\n        }\nLAB_00016218:\n        if (((byte)cmdline_tooltype & 2) != 0) goto LAB_000161c3;\n        if (need_save != 0) goto LAB_00016123;\n        goto LAB_00015f0d;\n      }" if (parenthesized_expression "(bVar13)" ( identifier )) (compound_statement "{\n        if (value == (char *)0x0) {\n          return -2;\n        }\n        if (need_save < 0) {\n          return 2;\n        }\nLAB_00016218:\n        if (((byte)cmdline_tooltype & 2) != 0) goto LAB_000161c3;\n        if (need_save != 0) goto LAB_00016123;\n        goto LAB_00015f0d;\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 ;) })) (labeled_statement "LAB_00016218:\n        if (((byte)cmdline_tooltype & 2) != 0) goto LAB_000161c3;" statement_identifier : (if_statement "if (((byte)cmdline_tooltype & 2) != 0) goto LAB_000161c3;" if (parenthesized_expression "(((byte)cmdline_tooltype & 2) != 0)" ( (binary_expression "((byte)cmdline_tooltype & 2) != 0" (parenthesized_expression "((byte)cmdline_tooltype & 2)" ( (binary_expression "(byte)cmdline_tooltype & 2" (cast_expression "(byte)cmdline_tooltype" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_000161c3;" goto statement_identifier ;))) (if_statement "if (need_save != 0) goto LAB_00016123;" if (parenthesized_expression "(need_save != 0)" ( (binary_expression "need_save != 0" identifier != number_literal) )) (goto_statement "goto LAB_00016123;" goto statement_identifier ;)) (goto_statement "goto LAB_00015f0d;" goto statement_identifier ;) })) (goto_statement "goto LAB_0001624d;" 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 ;) })) (if_statement "if (((byte)cmdline_tooltype & 2) != 0) goto LAB_000161c3;" if (parenthesized_expression "(((byte)cmdline_tooltype & 2) != 0)" ( (binary_expression "((byte)cmdline_tooltype & 2) != 0" (parenthesized_expression "((byte)cmdline_tooltype & 2)" ( (binary_expression "(byte)cmdline_tooltype & 2" (cast_expression "(byte)cmdline_tooltype" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_000161c3;" goto statement_identifier ;)) (if_statement "if (need_save != 0) goto LAB_00016123;" if (parenthesized_expression "(need_save != 0)" ( (binary_expression "need_save != 0" identifier != number_literal) )) (goto_statement "goto LAB_00016123;" goto statement_identifier ;)) (labeled_statement "LAB_00015ec5:\n    uVar15 = auStack_2c < (undefined1 *)0x4;" statement_identifier : (expression_statement "uVar15 = auStack_2c < (undefined1 *)0x4;" (assignment_expression "uVar15 = auStack_2c < (undefined1 *)0x4" identifier = (binary_expression "auStack_2c < (undefined1 *)0x4" identifier < (cast_expression "(undefined1 *)0x4" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;)) (expression_statement "uVar17 = &stack0x00000000 == (undefined1 *)0x30;" (assignment_expression "uVar17 = &stack0x00000000 == (undefined1 *)0x30" identifier = (binary_expression "&stack0x00000000 == (undefined1 *)0x30" (pointer_expression "&stack0x00000000" & identifier) == (cast_expression "(undefined1 *)0x30" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) 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 "iVar7 = 9;" (assignment_expression "iVar7 = 9" identifier = number_literal) ;) (expression_statement "pbVar11 = (byte *)p;" (assignment_expression "pbVar11 = (byte *)p" identifier = (cast_expression "(byte *)p" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) 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 (iVar7 == 0) break;\n      iVar7 = iVar7 + -1;\n      uVar15 = *pbVar11 < *pbVar12;\n      uVar17 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    } while ((bool)uVar17);" do (compound_statement "{\n      if (iVar7 == 0) break;\n      iVar7 = iVar7 + -1;\n      uVar15 = *pbVar11 < *pbVar12;\n      uVar17 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    }" { (if_statement "if (iVar7 == 0) break;" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar7 = iVar7 + -1;" (assignment_expression "iVar7 = iVar7 + -1" identifier = (binary_expression "iVar7 + -1" identifier + number_literal)) ;) (expression_statement "uVar15 = *pbVar11 < *pbVar12;" (assignment_expression "uVar15 = *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 + (uint)bVar18 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1" identifier = (binary_expression "pbVar11 + (uint)bVar18 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar18 * -2" identifier + (binary_expression "(uint)bVar18 * -2" (cast_expression "(uint)bVar18" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1" identifier = (binary_expression "pbVar12 + (uint)bVar18 * -2 + 1" (binary_expression "pbVar12 + (uint)bVar18 * -2" identifier + (binary_expression "(uint)bVar18 * -2" (cast_expression "(uint)bVar18" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "((bool)uVar17)" ( (cast_expression "(bool)uVar17" ( (type_descriptor "bool" primitive_type) ) identifier) )) ;) (expression_statement "bVar13 = (!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15;" (assignment_expression "bVar13 = (!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15" identifier = (binary_expression "(!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15" (parenthesized_expression "(!(bool)uVar15 && !(bool)uVar17)" ( (binary_expression "!(bool)uVar15 && !(bool)uVar17" (unary_expression "!(bool)uVar15" ! (cast_expression "(bool)uVar15" ( (type_descriptor "bool" primitive_type) ) identifier)) && (unary_expression "!(bool)uVar17" ! (cast_expression "(bool)uVar17" ( (type_descriptor "bool" primitive_type) ) identifier))) )) == (cast_expression "(bool)uVar15" ( (type_descriptor "bool" primitive_type) ) identifier))) ;) (if_statement "if (!bVar13) goto LAB_00016248;" if (parenthesized_expression "(!bVar13)" ( (unary_expression "!bVar13" ! identifier) )) (goto_statement "goto LAB_00016248;" goto statement_identifier ;)) (if_statement "if (((byte)cmdline_tooltype & 2) != 0) goto LAB_000161c3;" if (parenthesized_expression "(((byte)cmdline_tooltype & 2) != 0)" ( (binary_expression "((byte)cmdline_tooltype & 2) != 0" (parenthesized_expression "((byte)cmdline_tooltype & 2)" ( (binary_expression "(byte)cmdline_tooltype & 2" (cast_expression "(byte)cmdline_tooltype" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_000161c3;" goto statement_identifier ;)) (labeled_statement "LAB_00015f0d:\n    pcVar2 = dupstr(value);" statement_identifier : (expression_statement "pcVar2 = dupstr(value);" (assignment_expression "pcVar2 = dupstr(value)" identifier = (call_expression "dupstr(value)" identifier (argument_list "(value)" ( identifier )))) ;)) (expression_statement "iVar7 = validate_manual_hostkey(pcVar2);" (assignment_expression "iVar7 = validate_manual_hostkey(pcVar2)" identifier = (call_expression "validate_manual_hostkey(pcVar2)" identifier (argument_list "(pcVar2)" ( identifier )))) ;) (expression_statement "uVar15 = 0;" (assignment_expression "uVar15 = 0" identifier = number_literal) ;) (expression_statement "uVar17 = iVar7 == 0;" (assignment_expression "uVar17 = iVar7 == 0" identifier = (binary_expression "iVar7 == 0" identifier == number_literal)) ;) (if_statement "if ((bool)uVar17) {\n      cmdline_error("\'%s\' is not a valid format for a manual host key specification");\n      safefree(pcVar2);\n      return 2;\n    }" if (parenthesized_expression "((bool)uVar17)" ( (cast_expression "(bool)uVar17" ( (type_descriptor "bool" primitive_type) ) identifier) )) (compound_statement "{\n      cmdline_error("\'%s\' is not a valid format for a manual host key specification");\n      safefree(pcVar2);\n      return 2;\n    }" { (expression_statement "cmdline_error("\'%s\' is not a valid format for a manual host key specification");" (call_expression "cmdline_error("\'%s\' is not a valid format for a manual host key specification")" identifier (argument_list "("\'%s\' is not a valid format for a manual host key specification")" ( (string_literal ""\'%s\' is not a valid format for a manual host key specification"" " escape_sequence string_content escape_sequence string_content ") ))) ;) (expression_statement "safefree(pcVar2);" (call_expression "safefree(pcVar2)" identifier (argument_list "(pcVar2)" ( identifier ))) ;) (return_statement "return 2;" return number_literal ;) })) (expression_statement "iVar7 = 2;" (assignment_expression "iVar7 = 2" identifier = number_literal) ;) (expression_statement "conf_set_str_str(conf,0xad,pcVar2,"");" (call_expression "conf_set_str_str(conf,0xad,pcVar2,"")" identifier (argument_list "(conf,0xad,pcVar2,"")" ( identifier , number_literal , identifier , (string_literal """" " ") ))) ;) (expression_statement "safefree(pcVar2);" (call_expression "safefree(pcVar2)" identifier (argument_list "(pcVar2)" ( identifier ))) ;) (expression_statement "iVar8 = 3;" (assignment_expression "iVar8 = 3" identifier = number_literal) ;) (expression_statement "pbVar11 = (byte *)p;" (assignment_expression "pbVar11 = (byte *)p" identifier = (cast_expression "(byte *)p" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pbVar12 = &DAT_0004b0ec;" (assignment_expression "pbVar12 = &DAT_0004b0ec" identifier = (pointer_expression "&DAT_0004b0ec" & identifier)) ;) (do_statement "do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      uVar15 = *pbVar11 < *pbVar12;\n      uVar17 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    } while ((bool)uVar17);" do (compound_statement "{\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      uVar15 = *pbVar11 < *pbVar12;\n      uVar17 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    }" { (if_statement "if (iVar8 == 0) break;" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar8 = iVar8 + -1;" (assignment_expression "iVar8 = iVar8 + -1" identifier = (binary_expression "iVar8 + -1" identifier + number_literal)) ;) (expression_statement "uVar15 = *pbVar11 < *pbVar12;" (assignment_expression "uVar15 = *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 + (uint)bVar18 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1" identifier = (binary_expression "pbVar11 + (uint)bVar18 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar18 * -2" identifier + (binary_expression "(uint)bVar18 * -2" (cast_expression "(uint)bVar18" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1" identifier = (binary_expression "pbVar12 + (uint)bVar18 * -2 + 1" (binary_expression "pbVar12 + (uint)bVar18 * -2" identifier + (binary_expression "(uint)bVar18 * -2" (cast_expression "(uint)bVar18" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "((bool)uVar17)" ( (cast_expression "(bool)uVar17" ( (type_descriptor "bool" primitive_type) ) identifier) )) ;) (expression_statement "bVar13 = (!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15;" (assignment_expression "bVar13 = (!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15" identifier = (binary_expression "(!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15" (parenthesized_expression "(!(bool)uVar15 && !(bool)uVar17)" ( (binary_expression "!(bool)uVar15 && !(bool)uVar17" (unary_expression "!(bool)uVar15" ! (cast_expression "(bool)uVar15" ( (type_descriptor "bool" primitive_type) ) identifier)) && (unary_expression "!(bool)uVar17" ! (cast_expression "(bool)uVar17" ( (type_descriptor "bool" primitive_type) ) identifier))) )) == (cast_expression "(bool)uVar15" ( (type_descriptor "bool" primitive_type) ) identifier))) ;) (if_statement "if (!bVar13) goto LAB_0001626b;" if (parenthesized_expression "(!bVar13)" ( (unary_expression "!bVar13" ! identifier) )) (goto_statement "goto LAB_0001626b;" goto statement_identifier ;)) (expression_statement "bVar13 = ((byte)cmdline_tooltype & 3) == 0;" (assignment_expression "bVar13 = ((byte)cmdline_tooltype & 3) == 0" identifier = (binary_expression "((byte)cmdline_tooltype & 3) == 0" (parenthesized_expression "((byte)cmdline_tooltype & 3)" ( (binary_expression "(byte)cmdline_tooltype & 3" (cast_expression "(byte)cmdline_tooltype" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) == number_literal)) ;) (if_statement "if (!bVar13) goto LAB_000161c3;" if (parenthesized_expression "(!bVar13)" ( (unary_expression "!bVar13" ! identifier) )) (goto_statement "goto LAB_000161c3;" goto statement_identifier ;)) (labeled_statement "LAB_00015f8f:\n    bVar16 = false;" statement_identifier : (expression_statement "bVar16 = false;" (assignment_expression "bVar16 = false" identifier = false) ;)) (expression_statement "iVar7 = 3;" (assignment_expression "iVar7 = 3" identifier = number_literal) ;) (expression_statement "pbVar11 = (byte *)p;" (assignment_expression "pbVar11 = (byte *)p" identifier = (cast_expression "(byte *)p" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pbVar12 = (byte *)0x53a3b;" (assignment_expression "pbVar12 = (byte *)0x53a3b" identifier = (cast_expression "(byte *)0x53a3b" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n      if (iVar7 == 0) break;\n      iVar7 = iVar7 + -1;\n      bVar16 = *pbVar11 < *pbVar12;\n      bVar13 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    } while (bVar13);" do (compound_statement "{\n      if (iVar7 == 0) break;\n      iVar7 = iVar7 + -1;\n      bVar16 = *pbVar11 < *pbVar12;\n      bVar13 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    }" { (if_statement "if (iVar7 == 0) break;" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar7 = iVar7 + -1;" (assignment_expression "iVar7 = iVar7 + -1" identifier = (binary_expression "iVar7 + -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 "bVar13 = *pbVar11 == *pbVar12;" (assignment_expression "bVar13 = *pbVar11 == *pbVar12" identifier = (binary_expression "*pbVar11 == *pbVar12" (pointer_expression "*pbVar11" * identifier) == (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1" identifier = (binary_expression "pbVar11 + (uint)bVar18 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar18 * -2" identifier + (binary_expression "(uint)bVar18 * -2" (cast_expression "(uint)bVar18" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1" identifier = (binary_expression "pbVar12 + (uint)bVar18 * -2 + 1" (binary_expression "pbVar12 + (uint)bVar18 * -2" identifier + (binary_expression "(uint)bVar18 * -2" (cast_expression "(uint)bVar18" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar13)" ( identifier )) ;) (if_statement "if ((!bVar16 && !bVar13) == bVar16) {\n      pcVar2 = dupprintf("L%s");\n      pcVar4 = dupstr("D");\n    }\n    else {\n      pcVar2 = host_strchr(value,0x3a);\n      pcVar4 = pcVar2;\n      if (pcVar2 == (char *)0x0) {\n        cmdline_error("-%c expects at least two colons in its argument");\n        return 2;\n      }\n      do {\n        pcVar10 = pcVar4;\n        pcVar4 = pcVar2;\n        pcVar2 = host_strchr(pcVar4 + 1,0x3a);\n      } while (pcVar2 != (char *)0x0);\n      pcVar2 = dupprintf("%c%.*s");\n      pcVar4 = dupstr(pcVar10 + 1);\n    }" if (parenthesized_expression "((!bVar16 && !bVar13) == bVar16)" ( (binary_expression "(!bVar16 && !bVar13) == bVar16" (parenthesized_expression "(!bVar16 && !bVar13)" ( (binary_expression "!bVar16 && !bVar13" (unary_expression "!bVar16" ! identifier) && (unary_expression "!bVar13" ! identifier)) )) == identifier) )) (compound_statement "{\n      pcVar2 = dupprintf("L%s");\n      pcVar4 = dupstr("D");\n    }" { (expression_statement "pcVar2 = dupprintf("L%s");" (assignment_expression "pcVar2 = dupprintf("L%s")" identifier = (call_expression "dupprintf("L%s")" identifier (argument_list "("L%s")" ( (string_literal ""L%s"" " string_content ") )))) ;) (expression_statement "pcVar4 = dupstr("D");" (assignment_expression "pcVar4 = dupstr("D")" identifier = (call_expression "dupstr("D")" identifier (argument_list "("D")" ( (string_literal ""D"" " string_content ") )))) ;) }) (else_clause "else {\n      pcVar2 = host_strchr(value,0x3a);\n      pcVar4 = pcVar2;\n      if (pcVar2 == (char *)0x0) {\n        cmdline_error("-%c expects at least two colons in its argument");\n        return 2;\n      }\n      do {\n        pcVar10 = pcVar4;\n        pcVar4 = pcVar2;\n        pcVar2 = host_strchr(pcVar4 + 1,0x3a);\n      } while (pcVar2 != (char *)0x0);\n      pcVar2 = dupprintf("%c%.*s");\n      pcVar4 = dupstr(pcVar10 + 1);\n    }" else (compound_statement "{\n      pcVar2 = host_strchr(value,0x3a);\n      pcVar4 = pcVar2;\n      if (pcVar2 == (char *)0x0) {\n        cmdline_error("-%c expects at least two colons in its argument");\n        return 2;\n      }\n      do {\n        pcVar10 = pcVar4;\n        pcVar4 = pcVar2;\n        pcVar2 = host_strchr(pcVar4 + 1,0x3a);\n      } while (pcVar2 != (char *)0x0);\n      pcVar2 = dupprintf("%c%.*s");\n      pcVar4 = dupstr(pcVar10 + 1);\n    }" { (expression_statement "pcVar2 = host_strchr(value,0x3a);" (assignment_expression "pcVar2 = host_strchr(value,0x3a)" identifier = (call_expression "host_strchr(value,0x3a)" identifier (argument_list "(value,0x3a)" ( identifier , number_literal )))) ;) (expression_statement "pcVar4 = pcVar2;" (assignment_expression "pcVar4 = pcVar2" identifier = identifier) ;) (if_statement "if (pcVar2 == (char *)0x0) {\n        cmdline_error("-%c expects at least two colons in its argument");\n        return 2;\n      }" if (parenthesized_expression "(pcVar2 == (char *)0x0)" ( (binary_expression "pcVar2 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        cmdline_error("-%c expects at least two colons in its argument");\n        return 2;\n      }" { (expression_statement "cmdline_error("-%c expects at least two colons in its argument");" (call_expression "cmdline_error("-%c expects at least two colons in its argument")" identifier (argument_list "("-%c expects at least two colons in its argument")" ( (string_literal ""-%c expects at least two colons in its argument"" " string_content ") ))) ;) (return_statement "return 2;" return number_literal ;) })) (do_statement "do {\n        pcVar10 = pcVar4;\n        pcVar4 = pcVar2;\n        pcVar2 = host_strchr(pcVar4 + 1,0x3a);\n      } while (pcVar2 != (char *)0x0);" do (compound_statement "{\n        pcVar10 = pcVar4;\n        pcVar4 = pcVar2;\n        pcVar2 = host_strchr(pcVar4 + 1,0x3a);\n      }" { (expression_statement "pcVar10 = pcVar4;" (assignment_expression "pcVar10 = pcVar4" identifier = identifier) ;) (expression_statement "pcVar4 = pcVar2;" (assignment_expression "pcVar4 = pcVar2" identifier = identifier) ;) (expression_statement "pcVar2 = host_strchr(pcVar4 + 1,0x3a);" (assignment_expression "pcVar2 = host_strchr(pcVar4 + 1,0x3a)" identifier = (call_expression "host_strchr(pcVar4 + 1,0x3a)" identifier (argument_list "(pcVar4 + 1,0x3a)" ( (binary_expression "pcVar4 + 1" identifier + number_literal) , number_literal )))) ;) }) while (parenthesized_expression "(pcVar2 != (char *)0x0)" ( (binary_expression "pcVar2 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "pcVar2 = dupprintf("%c%.*s");" (assignment_expression "pcVar2 = dupprintf("%c%.*s")" identifier = (call_expression "dupprintf("%c%.*s")" identifier (argument_list "("%c%.*s")" ( (string_literal ""%c%.*s"" " string_content ") )))) ;) (expression_statement "pcVar4 = dupstr(pcVar10 + 1);" (assignment_expression "pcVar4 = dupstr(pcVar10 + 1)" identifier = (call_expression "dupstr(pcVar10 + 1)" identifier (argument_list "(pcVar10 + 1)" ( (binary_expression "pcVar10 + 1" identifier + number_literal) )))) ;) }))) (expression_statement "uVar15 = (undefined1 *)0xffffffef < &stack0xffffffc4;" (assignment_expression "uVar15 = (undefined1 *)0xffffffef < &stack0xffffffc4" identifier = (binary_expression "(undefined1 *)0xffffffef < &stack0xffffffc4" (cast_expression "(undefined1 *)0xffffffef" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < (pointer_expression "&stack0xffffffc4" & identifier))) ;) (expression_statement "uVar17 = &stack0x00000000 == (undefined1 *)0x2c;" (assignment_expression "uVar17 = &stack0x00000000 == (undefined1 *)0x2c" identifier = (binary_expression "&stack0x00000000 == (undefined1 *)0x2c" (pointer_expression "&stack0x00000000" & identifier) == (cast_expression "(undefined1 *)0x2c" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "iVar7 = 2;" (assignment_expression "iVar7 = 2" identifier = number_literal) ;) (expression_statement "conf_set_str_str(conf,0x9b,pcVar2,pcVar4);" (call_expression "conf_set_str_str(conf,0x9b,pcVar2,pcVar4)" identifier (argument_list "(conf,0x9b,pcVar2,pcVar4)" ( identifier , number_literal , identifier , identifier ))) ;) (expression_statement "safefree(pcVar2);" (call_expression "safefree(pcVar2)" identifier (argument_list "(pcVar2)" ( identifier ))) ;) (expression_statement "safefree(pcVar4);" (call_expression "safefree(pcVar4)" identifier (argument_list "(pcVar4)" ( identifier ))) ;) (expression_statement "iVar8 = 4;" (assignment_expression "iVar8 = 4" identifier = number_literal) ;) (expression_statement "pbVar11 = (byte *)p;" (assignment_expression "pbVar11 = (byte *)p" identifier = (cast_expression "(byte *)p" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pbVar12 = &DAT_0004b0fd;" (assignment_expression "pbVar12 = &DAT_0004b0fd" identifier = (pointer_expression "&DAT_0004b0fd" & identifier)) ;) (do_statement "do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      uVar15 = *pbVar11 < *pbVar12;\n      uVar17 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    } while ((bool)uVar17);" do (compound_statement "{\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      uVar15 = *pbVar11 < *pbVar12;\n      uVar17 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    }" { (if_statement "if (iVar8 == 0) break;" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar8 = iVar8 + -1;" (assignment_expression "iVar8 = iVar8 + -1" identifier = (binary_expression "iVar8 + -1" identifier + number_literal)) ;) (expression_statement "uVar15 = *pbVar11 < *pbVar12;" (assignment_expression "uVar15 = *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 + (uint)bVar18 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1" identifier = (binary_expression "pbVar11 + (uint)bVar18 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar18 * -2" identifier + (binary_expression "(uint)bVar18 * -2" (cast_expression "(uint)bVar18" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1" identifier = (binary_expression "pbVar12 + (uint)bVar18 * -2 + 1" (binary_expression "pbVar12 + (uint)bVar18 * -2" identifier + (binary_expression "(uint)bVar18 * -2" (cast_expression "(uint)bVar18" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "((bool)uVar17)" ( (cast_expression "(bool)uVar17" ( (type_descriptor "bool" primitive_type) ) identifier) )) ;) (expression_statement "bVar13 = (!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15;" (assignment_expression "bVar13 = (!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15" identifier = (binary_expression "(!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15" (parenthesized_expression "(!(bool)uVar15 && !(bool)uVar17)" ( (binary_expression "!(bool)uVar15 && !(bool)uVar17" (unary_expression "!(bool)uVar15" ! (cast_expression "(bool)uVar15" ( (type_descriptor "bool" primitive_type) ) identifier)) && (unary_expression "!(bool)uVar17" ! (cast_expression "(bool)uVar17" ( (type_descriptor "bool" primitive_type) ) identifier))) )) == (cast_expression "(bool)uVar15" ( (type_descriptor "bool" primitive_type) ) identifier))) ;) (if_statement "if (bVar13) {\n      if (((byte)cmdline_tooltype & 3) != 0) goto LAB_000161c3;\n      goto LAB_000162ed;\n    }" if (parenthesized_expression "(bVar13)" ( identifier )) (compound_statement "{\n      if (((byte)cmdline_tooltype & 3) != 0) goto LAB_000161c3;\n      goto LAB_000162ed;\n    }" { (if_statement "if (((byte)cmdline_tooltype & 3) != 0) goto LAB_000161c3;" if (parenthesized_expression "(((byte)cmdline_tooltype & 3) != 0)" ( (binary_expression "((byte)cmdline_tooltype & 3) != 0" (parenthesized_expression "((byte)cmdline_tooltype & 3)" ( (binary_expression "(byte)cmdline_tooltype & 3" (cast_expression "(byte)cmdline_tooltype" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_000161c3;" goto statement_identifier ;)) (goto_statement "goto LAB_000162ed;" goto statement_identifier ;) })) (labeled_statement "LAB_00016698:\n    bVar16 = false;" statement_identifier : (expression_statement "bVar16 = false;" (assignment_expression "bVar16 = false" identifier = false) ;)) (expression_statement "iVar8 = 3;" (assignment_expression "iVar8 = 3" identifier = number_literal) ;) (expression_statement "pbVar11 = (byte *)p;" (assignment_expression "pbVar11 = (byte *)p" identifier = (cast_expression "(byte *)p" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pbVar12 = &DAT_0004b101;" (assignment_expression "pbVar12 = &DAT_0004b101" identifier = (pointer_expression "&DAT_0004b101" & identifier)) ;) (do_statement "do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar16 = *pbVar11 < *pbVar12;\n      bVar13 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    } while (bVar13);" do (compound_statement "{\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar16 = *pbVar11 < *pbVar12;\n      bVar13 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    }" { (if_statement "if (iVar8 == 0) break;" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar8 = iVar8 + -1;" (assignment_expression "iVar8 = iVar8 + -1" identifier = (binary_expression "iVar8 + -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 "bVar13 = *pbVar11 == *pbVar12;" (assignment_expression "bVar13 = *pbVar11 == *pbVar12" identifier = (binary_expression "*pbVar11 == *pbVar12" (pointer_expression "*pbVar11" * identifier) == (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1" identifier = (binary_expression "pbVar11 + (uint)bVar18 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar18 * -2" identifier + (binary_expression "(uint)bVar18 * -2" (cast_expression "(uint)bVar18" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1" identifier = (binary_expression "pbVar12 + (uint)bVar18 * -2 + 1" (binary_expression "pbVar12 + (uint)bVar18 * -2" identifier + (binary_expression "(uint)bVar18 * -2" (cast_expression "(uint)bVar18" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar13)" ( identifier )) ;) (expression_statement "bVar13 = (!bVar16 && !bVar13) == bVar16;" (assignment_expression "bVar13 = (!bVar16 && !bVar13) == bVar16" identifier = (binary_expression "(!bVar16 && !bVar13) == bVar16" (parenthesized_expression "(!bVar16 && !bVar13)" ( (binary_expression "!bVar16 && !bVar13" (unary_expression "!bVar16" ! identifier) && (unary_expression "!bVar13" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar13) {\n      if (value == (char *)0x0) {\n        return -2;\n      }\n      if (need_save < 0) {\n        return 2;\n      }\n      if (((byte)cmdline_tooltype & 3) != 0) goto LAB_000161c3;\n      if (need_save != 0) goto LAB_00016123;\n      goto LAB_0001639b;\n    }" if (parenthesized_expression "(bVar13)" ( identifier )) (compound_statement "{\n      if (value == (char *)0x0) {\n        return -2;\n      }\n      if (need_save < 0) {\n        return 2;\n      }\n      if (((byte)cmdline_tooltype & 3) != 0) goto LAB_000161c3;\n      if (need_save != 0) goto LAB_00016123;\n      goto LAB_0001639b;\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 ;) })) (if_statement "if (((byte)cmdline_tooltype & 3) != 0) goto LAB_000161c3;" if (parenthesized_expression "(((byte)cmdline_tooltype & 3) != 0)" ( (binary_expression "((byte)cmdline_tooltype & 3) != 0" (parenthesized_expression "((byte)cmdline_tooltype & 3)" ( (binary_expression "(byte)cmdline_tooltype & 3" (cast_expression "(byte)cmdline_tooltype" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_000161c3;" goto statement_identifier ;)) (if_statement "if (need_save != 0) goto LAB_00016123;" if (parenthesized_expression "(need_save != 0)" ( (binary_expression "need_save != 0" identifier != number_literal) )) (goto_statement "goto LAB_00016123;" goto statement_identifier ;)) (goto_statement "goto LAB_0001639b;" goto statement_identifier ;) })) (labeled_statement "LAB_000166e0:\n    bVar16 = false;" statement_identifier : (expression_statement "bVar16 = false;" (assignment_expression "bVar16 = false" identifier = false) ;)) (expression_statement "iVar8 = 3;" (assignment_expression "iVar8 = 3" identifier = number_literal) ;) (expression_statement "pbVar11 = (byte *)p;" (assignment_expression "pbVar11 = (byte *)p" identifier = (cast_expression "(byte *)p" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pbVar12 = &DAT_0004b104;" (assignment_expression "pbVar12 = &DAT_0004b104" identifier = (pointer_expression "&DAT_0004b104" & identifier)) ;) (do_statement "do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar16 = *pbVar11 < *pbVar12;\n      bVar13 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    } while (bVar13);" do (compound_statement "{\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar16 = *pbVar11 < *pbVar12;\n      bVar13 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    }" { (if_statement "if (iVar8 == 0) break;" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar8 = iVar8 + -1;" (assignment_expression "iVar8 = iVar8 + -1" identifier = (binary_expression "iVar8 + -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 "bVar13 = *pbVar11 == *pbVar12;" (assignment_expression "bVar13 = *pbVar11 == *pbVar12" identifier = (binary_expression "*pbVar11 == *pbVar12" (pointer_expression "*pbVar11" * identifier) == (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1" identifier = (binary_expression "pbVar11 + (uint)bVar18 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar18 * -2" identifier + (binary_expression "(uint)bVar18 * -2" (cast_expression "(uint)bVar18" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1" identifier = (binary_expression "pbVar12 + (uint)bVar18 * -2 + 1" (binary_expression "pbVar12 + (uint)bVar18 * -2" identifier + (binary_expression "(uint)bVar18 * -2" (cast_expression "(uint)bVar18" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar13)" ( identifier )) ;) (expression_statement "bVar13 = (!bVar16 && !bVar13) == bVar16;" (assignment_expression "bVar13 = (!bVar16 && !bVar13) == bVar16" identifier = (binary_expression "(!bVar16 && !bVar13) == bVar16" (parenthesized_expression "(!bVar16 && !bVar13)" ( (binary_expression "!bVar16 && !bVar13" (unary_expression "!bVar16" ! identifier) && (unary_expression "!bVar13" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar13) {\n      if (value == (char *)0x0) {\n        return -2;\n      }\n      if (need_save < 0) {\n        return 2;\n      }\n      if (((byte)cmdline_tooltype & 2) != 0) goto LAB_000161c3;\n      if (need_save != 0) goto LAB_00016723;\n      goto LAB_000164a7;\n    }" if (parenthesized_expression "(bVar13)" ( identifier )) (compound_statement "{\n      if (value == (char *)0x0) {\n        return -2;\n      }\n      if (need_save < 0) {\n        return 2;\n      }\n      if (((byte)cmdline_tooltype & 2) != 0) goto LAB_000161c3;\n      if (need_save != 0) goto LAB_00016723;\n      goto LAB_000164a7;\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 ;) })) (if_statement "if (((byte)cmdline_tooltype & 2) != 0) goto LAB_000161c3;" if (parenthesized_expression "(((byte)cmdline_tooltype & 2) != 0)" ( (binary_expression "((byte)cmdline_tooltype & 2) != 0" (parenthesized_expression "((byte)cmdline_tooltype & 2)" ( (binary_expression "(byte)cmdline_tooltype & 2" (cast_expression "(byte)cmdline_tooltype" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_000161c3;" goto statement_identifier ;)) (if_statement "if (need_save != 0) goto LAB_00016723;" if (parenthesized_expression "(need_save != 0)" ( (binary_expression "need_save != 0" identifier != number_literal) )) (goto_statement "goto LAB_00016723;" goto statement_identifier ;)) (goto_statement "goto LAB_000164a7;" goto statement_identifier ;) })) (labeled_statement "LAB_00016777:\n    bVar16 = false;" statement_identifier : (expression_statement "bVar16 = false;" (assignment_expression "bVar16 = false" identifier = false) ;)) (expression_statement "iVar8 = 4;" (assignment_expression "iVar8 = 4" identifier = number_literal) ;) (expression_statement "pbVar11 = (byte *)p;" (assignment_expression "pbVar11 = (byte *)p" identifier = (cast_expression "(byte *)p" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pbVar12 = &DAT_0004b107;" (assignment_expression "pbVar12 = &DAT_0004b107" identifier = (pointer_expression "&DAT_0004b107" & identifier)) ;) (do_statement "do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar16 = *pbVar11 < *pbVar12;\n      bVar13 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    } while (bVar13);" do (compound_statement "{\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar16 = *pbVar11 < *pbVar12;\n      bVar13 = *pbVar11 == *pbVar12;\n      pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n    }" { (if_statement "if (iVar8 == 0) break;" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar8 = iVar8 + -1;" (assignment_expression "iVar8 = iVar8 + -1" identifier = (binary_expression "iVar8 + -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 "bVar13 = *pbVar11 == *pbVar12;" (assignment_expression "bVar13 = *pbVar11 == *pbVar12" identifier = (binary_expression "*pbVar11 == *pbVar12" (pointer_expression "*pbVar11" * identifier) == (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar18 * -2 + 1" identifier = (binary_expression "pbVar11 + (uint)bVar18 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar18 * -2" identifier + (binary_expression "(uint)bVar18 * -2" (cast_expression "(uint)bVar18" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1" identifier = (binary_expression "pbVar12 + (uint)bVar18 * -2 + 1" (binary_expression "pbVar12 + (uint)bVar18 * -2" identifier + (binary_expression "(uint)bVar18 * -2" (cast_expression "(uint)bVar18" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar13)" ( identifier )) ;) (if_statement "if ((!bVar16 && !bVar13) == bVar16) {\n      if (value == (char *)0x0) {\n        return -2;\n      }\n      if (need_save < 0) {\n        return 2;\n      }\n      if (((byte)cmdline_tooltype & 2) != 0) goto LAB_000161c3;\n      if (need_save != 0) goto LAB_00016723;\n      goto LAB_000164f6;\n    }" if (parenthesized_expression "((!bVar16 && !bVar13) == bVar16)" ( (binary_expression "(!bVar16 && !bVar13) == bVar16" (parenthesized_expression "(!bVar16 && !bVar13)" ( (binary_expression "!bVar16 && !bVar13" (unary_expression "!bVar16" ! identifier) && (unary_expression "!bVar13" ! identifier)) )) == identifier) )) (compound_statement "{\n      if (value == (char *)0x0) {\n        return -2;\n      }\n      if (need_save < 0) {\n        return 2;\n      }\n      if (((byte)cmdline_tooltype & 2) != 0) goto LAB_000161c3;\n      if (need_save != 0) goto LAB_00016723;\n      goto LAB_000164f6;\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 ;) })) (if_statement "if (((byte)cmdline_tooltype & 2) != 0) goto LAB_000161c3;" if (parenthesized_expression "(((byte)cmdline_tooltype & 2) != 0)" ( (binary_expression "((byte)cmdline_tooltype & 2) != 0" (parenthesized_expression "((byte)cmdline_tooltype & 2)" ( (binary_expression "(byte)cmdline_tooltype & 2" (cast_expression "(byte)cmdline_tooltype" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_000161c3;" goto statement_identifier ;)) (if_statement "if (need_save != 0) goto LAB_00016723;" if (parenthesized_expression "(need_save != 0)" ( (binary_expression "need_save != 0" identifier != number_literal) )) (goto_statement "goto LAB_00016723;" goto statement_identifier ;)) (goto_statement "goto LAB_000164f6;" goto statement_identifier ;) })) (expression_statement "iVar8 = strcmp(p,"-agent");" (assignment_expression "iVar8 = strcmp(p,"-agent")" identifier = (call_expression "strcmp(p,"-agent")" identifier (argument_list "(p,"-agent")" ( identifier , (string_literal ""-agent"" " string_content ") )))) ;) (if_statement "if ((iVar8 != 0) && (iVar8 = strcmp(p,"-pagent"), iVar8 != 0)) goto LAB_0001685f;" if (parenthesized_expression "((iVar8 != 0) && (iVar8 = strcmp(p,"-pagent"), iVar8 != 0))" ( (binary_expression "(iVar8 != 0) && (iVar8 = strcmp(p,"-pagent"), iVar8 != 0)" (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar8 = strcmp(p,"-pagent"), iVar8 != 0)" ( (comma_expression "iVar8 = strcmp(p,"-pagent"), iVar8 != 0" (assignment_expression "iVar8 = strcmp(p,"-pagent")" identifier = (call_expression "strcmp(p,"-pagent")" identifier (argument_list "(p,"-pagent")" ( identifier , (string_literal ""-pagent"" " string_content ") )))) , (binary_expression "iVar8 != 0" identifier != number_literal)) ))) )) (goto_statement "goto LAB_0001685f;" goto statement_identifier ;)) (labeled_statement "LAB_00016884:\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_0001688c:\n    if (((byte)cmdline_tooltype & 2) != 0) goto LAB_00015d50;" statement_identifier : (if_statement "if (((byte)cmdline_tooltype & 2) != 0) goto LAB_00015d50;" if (parenthesized_expression "(((byte)cmdline_tooltype & 2) != 0)" ( (binary_expression "((byte)cmdline_tooltype & 2) != 0" (parenthesized_expression "((byte)cmdline_tooltype & 2)" ( (binary_expression "(byte)cmdline_tooltype & 2" (cast_expression "(byte)cmdline_tooltype" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00015d50;" goto statement_identifier ;))) (if_statement "if (need_save != 0) goto LAB_00015c78;" if (parenthesized_expression "(need_save != 0)" ( (binary_expression "need_save != 0" identifier != number_literal) )) (goto_statement "goto LAB_00015c78;" goto statement_identifier ;)) (labeled_statement "LAB_000168a1:\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 "iVar7 = strcmp(p,"-noagent");" (assignment_expression "iVar7 = strcmp(p,"-noagent")" identifier = (call_expression "strcmp(p,"-noagent")" identifier (argument_list "(p,"-noagent")" ( identifier , (string_literal ""-noagent"" " string_content ") )))) ;) (if_statement "if (iVar7 != 0) {\n      iVar7 = 1;\n      iVar8 = strcmp(p,"-nopagent");\n      if (iVar8 != 0) goto LAB_000165eb;\n      goto LAB_00016e44;\n    }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar7 = 1;\n      iVar8 = strcmp(p,"-nopagent");\n      if (iVar8 != 0) goto LAB_000165eb;\n      goto LAB_00016e44;\n    }" { (expression_statement "iVar7 = 1;" (assignment_expression "iVar7 = 1" identifier = number_literal) ;) (expression_statement "iVar8 = strcmp(p,"-nopagent");" (assignment_expression "iVar8 = strcmp(p,"-nopagent")" identifier = (call_expression "strcmp(p,"-nopagent")" identifier (argument_list "(p,"-nopagent")" ( identifier , (string_literal ""-nopagent"" " string_content ") )))) ;) (if_statement "if (iVar8 != 0) goto LAB_000165eb;" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000165eb;" goto statement_identifier ;)) (goto_statement "goto LAB_00016e44;" goto statement_identifier ;) })) (if_statement "if (((byte)cmdline_tooltype & 2) != 0) goto LAB_00015d50;" if (parenthesized_expression "(((byte)cmdline_tooltype & 2) != 0)" ( (binary_expression "((byte)cmdline_tooltype & 2) != 0" (parenthesized_expression "((byte)cmdline_tooltype & 2)" ( (binary_expression "(byte)cmdline_tooltype & 2" (cast_expression "(byte)cmdline_tooltype" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00015d50;" goto statement_identifier ;)) (labeled_statement "LAB_000168e1:\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 "iVar7 = strcmp(p,"-A");" (assignment_expression "iVar7 = strcmp(p,"-A")" identifier = (call_expression "strcmp(p,"-A")" identifier (argument_list "(p,"-A")" ( identifier , (string_literal ""-A"" " string_content ") )))) ;) (if_statement "if (iVar7 == 0) {\n      if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\n      goto LAB_00016921;\n    }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n      if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\n      goto LAB_00016921;\n    }" { (if_statement "if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;" if (parenthesized_expression "(((byte)cmdline_tooltype & 3) != 0)" ( (binary_expression "((byte)cmdline_tooltype & 3) != 0" (parenthesized_expression "((byte)cmdline_tooltype & 3)" ( (binary_expression "(byte)cmdline_tooltype & 3" (cast_expression "(byte)cmdline_tooltype" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00015d50;" goto statement_identifier ;)) (goto_statement "goto LAB_00016921;" goto statement_identifier ;) })) (expression_statement "iVar7 = 1;" (assignment_expression "iVar7 = 1" identifier = number_literal) ;) (expression_statement "iVar8 = strcmp(p,"-a");" (assignment_expression "iVar8 = strcmp(p,"-a")" identifier = (call_expression "strcmp(p,"-a")" identifier (argument_list "(p,"-a")" ( identifier , (string_literal ""-a"" " string_content ") )))) ;) (if_statement "if (iVar8 == 0) {\nLAB_0001700b:\n      if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\n      if (need_save != 0) goto LAB_00015c78;\n      goto LAB_00016961;\n    }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0001700b:\n      if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\n      if (need_save != 0) goto LAB_00015c78;\n      goto LAB_00016961;\n    }" { (labeled_statement "LAB_0001700b:\n      if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;" statement_identifier : (if_statement "if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;" if (parenthesized_expression "(((byte)cmdline_tooltype & 3) != 0)" ( (binary_expression "((byte)cmdline_tooltype & 3) != 0" (parenthesized_expression "((byte)cmdline_tooltype & 3)" ( (binary_expression "(byte)cmdline_tooltype & 3" (cast_expression "(byte)cmdline_tooltype" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00015d50;" goto statement_identifier ;))) (if_statement "if (need_save != 0) goto LAB_00015c78;" if (parenthesized_expression "(need_save != 0)" ( (binary_expression "need_save != 0" identifier != number_literal) )) (goto_statement "goto LAB_00015c78;" goto statement_identifier ;)) (goto_statement "goto LAB_00016961;" goto statement_identifier ;) })) (labeled_statement "LAB_00016f0f:\n    iVar8 = strcmp(p,"-X");" statement_identifier : (expression_statement "iVar8 = strcmp(p,"-X");" (assignment_expression "iVar8 = strcmp(p,"-X")" identifier = (call_expression "strcmp(p,"-X")" identifier (argument_list "(p,"-X")" ( identifier , (string_literal ""-X"" " string_content ") )))) ;)) (if_statement "if (iVar8 != 0) goto LAB_00016f97;" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00016f97;" 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_00016f38:\n    if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;" statement_identifier : (if_statement "if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;" if (parenthesized_expression "(((byte)cmdline_tooltype & 3) != 0)" ( (binary_expression "((byte)cmdline_tooltype & 3) != 0" (parenthesized_expression "((byte)cmdline_tooltype & 3)" ( (binary_expression "(byte)cmdline_tooltype & 3" (cast_expression "(byte)cmdline_tooltype" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00015d50;" goto statement_identifier ;))) (if_statement "if (need_save != 0) goto LAB_00015c78;" if (parenthesized_expression "(need_save != 0)" ( (binary_expression "need_save != 0" identifier != number_literal) )) (goto_statement "goto LAB_00015c78;" goto statement_identifier ;)) (labeled_statement "LAB_000169a1:\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 "iVar7 = strcmp(p,"-x");" (assignment_expression "iVar7 = strcmp(p,"-x")" identifier = (call_expression "strcmp(p,"-x")" identifier (argument_list "(p,"-x")" ( identifier , (string_literal ""-x"" " string_content ") )))) ;) (if_statement "if (iVar7 == 0) {\n      if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\nLAB_000169e4:\n      conf_set_int(conf,0x95,0);\n      iVar7 = strcmp(p,"-t");\n      if (iVar7 == 0) {\n        if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\n        goto LAB_00016a27;\n      }\n      iVar7 = 1;\n      iVar8 = strcmp(p,"-T");\n      if (iVar8 == 0) goto LAB_0001770d;\nLAB_00017759:\n      iVar8 = strcmp(p,"-N");\n      if (iVar8 != 0) goto LAB_00017727;\n      if (need_save < 0) {\n        return 1;\n      }\nLAB_000176cd:\n      if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\n      if (need_save != 0) goto LAB_00015c78;\n      goto LAB_00016aa7;\n    }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n      if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\nLAB_000169e4:\n      conf_set_int(conf,0x95,0);\n      iVar7 = strcmp(p,"-t");\n      if (iVar7 == 0) {\n        if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\n        goto LAB_00016a27;\n      }\n      iVar7 = 1;\n      iVar8 = strcmp(p,"-T");\n      if (iVar8 == 0) goto LAB_0001770d;\nLAB_00017759:\n      iVar8 = strcmp(p,"-N");\n      if (iVar8 != 0) goto LAB_00017727;\n      if (need_save < 0) {\n        return 1;\n      }\nLAB_000176cd:\n      if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\n      if (need_save != 0) goto LAB_00015c78;\n      goto LAB_00016aa7;\n    }" { (if_statement "if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;" if (parenthesized_expression "(((byte)cmdline_tooltype & 3) != 0)" ( (binary_expression "((byte)cmdline_tooltype & 3) != 0" (parenthesized_expression "((byte)cmdline_tooltype & 3)" ( (binary_expression "(byte)cmdline_tooltype & 3" (cast_expression "(byte)cmdline_tooltype" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00015d50;" goto statement_identifier ;)) (labeled_statement "LAB_000169e4:\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 "iVar7 = strcmp(p,"-t");" (assignment_expression "iVar7 = strcmp(p,"-t")" identifier = (call_expression "strcmp(p,"-t")" identifier (argument_list "(p,"-t")" ( identifier , (string_literal ""-t"" " string_content ") )))) ;) (if_statement "if (iVar7 == 0) {\n        if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\n        goto LAB_00016a27;\n      }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n        if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\n        goto LAB_00016a27;\n      }" { (if_statement "if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;" if (parenthesized_expression "(((byte)cmdline_tooltype & 3) != 0)" ( (binary_expression "((byte)cmdline_tooltype & 3) != 0" (parenthesized_expression "((byte)cmdline_tooltype & 3)" ( (binary_expression "(byte)cmdline_tooltype & 3" (cast_expression "(byte)cmdline_tooltype" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00015d50;" goto statement_identifier ;)) (goto_statement "goto LAB_00016a27;" goto statement_identifier ;) })) (expression_statement "iVar7 = 1;" (assignment_expression "iVar7 = 1" identifier = number_literal) ;) (expression_statement "iVar8 = strcmp(p,"-T");" (assignment_expression "iVar8 = strcmp(p,"-T")" identifier = (call_expression "strcmp(p,"-T")" identifier (argument_list "(p,"-T")" ( identifier , (string_literal ""-T"" " string_content ") )))) ;) (if_statement "if (iVar8 == 0) goto LAB_0001770d;" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001770d;" goto statement_identifier ;)) (labeled_statement "LAB_00017759:\n      iVar8 = strcmp(p,"-N");" statement_identifier : (expression_statement "iVar8 = strcmp(p,"-N");" (assignment_expression "iVar8 = strcmp(p,"-N")" identifier = (call_expression "strcmp(p,"-N")" identifier (argument_list "(p,"-N")" ( identifier , (string_literal ""-N"" " string_content ") )))) ;)) (if_statement "if (iVar8 != 0) goto LAB_00017727;" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00017727;" 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_000176cd:\n      if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;" statement_identifier : (if_statement "if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;" if (parenthesized_expression "(((byte)cmdline_tooltype & 3) != 0)" ( (binary_expression "((byte)cmdline_tooltype & 3) != 0" (parenthesized_expression "((byte)cmdline_tooltype & 3)" ( (binary_expression "(byte)cmdline_tooltype & 3" (cast_expression "(byte)cmdline_tooltype" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00015d50;" goto statement_identifier ;))) (if_statement "if (need_save != 0) goto LAB_00015c78;" if (parenthesized_expression "(need_save != 0)" ( (binary_expression "need_save != 0" identifier != number_literal) )) (goto_statement "goto LAB_00015c78;" goto statement_identifier ;)) (goto_statement "goto LAB_00016aa7;" goto statement_identifier ;) })) (expression_statement "iVar7 = 1;" (assignment_expression "iVar7 = 1" identifier = number_literal) ;) (expression_statement "iVar8 = strcmp(p,"-t");" (assignment_expression "iVar8 = strcmp(p,"-t")" identifier = (call_expression "strcmp(p,"-t")" identifier (argument_list "(p,"-t")" ( identifier , (string_literal ""-t"" " string_content ") )))) ;) (if_statement "if (iVar8 != 0) goto LAB_000177b1;" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000177b1;" goto statement_identifier ;)) (labeled_statement "LAB_0001707c:\n    if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;" statement_identifier : (if_statement "if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;" if (parenthesized_expression "(((byte)cmdline_tooltype & 3) != 0)" ( (binary_expression "((byte)cmdline_tooltype & 3) != 0" (parenthesized_expression "((byte)cmdline_tooltype & 3)" ( (binary_expression "(byte)cmdline_tooltype & 3" (cast_expression "(byte)cmdline_tooltype" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00015d50;" goto statement_identifier ;))) (if_statement "if (need_save != 0) goto LAB_00017091;" if (parenthesized_expression "(need_save != 0)" ( (binary_expression "need_save != 0" identifier != number_literal) )) (goto_statement "goto LAB_00017091;" goto statement_identifier ;)) (labeled_statement "LAB_00016a27:\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 "iVar7 = strcmp(p,"-T");" (assignment_expression "iVar7 = strcmp(p,"-T")" identifier = (call_expression "strcmp(p,"-T")" identifier (argument_list "(p,"-T")" ( identifier , (string_literal ""-T"" " string_content ") )))) ;) (if_statement "if (iVar7 == 0) {\n      if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\n      goto LAB_00016a67;\n    }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n      if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;\n      goto LAB_00016a67;\n    }" { (if_statement "if (((byte)cmdline_tooltype & 3) != 0) goto LAB_00015d50;" if (parenthesized_expression "(((byte)cmdline_tooltype & 3) != 0)" ( (binary_expression "((byte)cmdline_tooltype & 3) != 0" (parenthesized_expression "((byte)cmdline_tooltype & 3)" ( (binary_expression "(byte)cmdline_tooltype & 3" (cast_expression "(byte)cmdline_tooltype" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00015d50;" goto statement_identifier ;)) (goto_statement "goto LAB_00016a67;" goto statement_identifier ;) })) (expression_statement "iVar7 = 1;" (assignment_expression "iVar7 = 1" identifier = number_literal) ;) (expression_statement "iVar8 = strcmp(p,"-N");" (assignment_expression "iVar8 = strcmp(p,"-N")" identifier = (call_expression "strcmp(p,"-N")" identifier (argument_list "(p,"-N")" ( identifier , (string_literal ""-N"" " string_content ") )))) ;) (if_statement "if (iVar8 == 0) goto LAB_000176cd;" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000176cd;" goto statement_identifier ;)) (labeled_statement "LAB_00017727:\n    iVar8 = strcmp(p,"-C");" statement_identifier : (expression_statement "iVar8 = strcmp(p,"-C");" (assignment_expression "iVar8 = strcmp(p,"-C")" identifier = (call_expression "strcmp(p,"-C")" identifier (argument_list "(p,"-C")" ( identifier , (string_literal ""-C"" " string_content ") )))) ;)) (if_statement "if (iVar8 != 0) goto LAB_00017679;" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00017679;" 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_0001762d:\n    if (((byte)cmdline_tooltype & 2) != 0) goto LAB_00015d50;" statement_identifier : (if_statement "if (((byte)cmdline_tooltype & 2) != 0) goto LAB_00015d50;" if (parenthesized_expression "(((byte)cmdline_tooltype & 2) != 0)" ( (binary_expression "((byte)cmdline_tooltype & 2) != 0" (parenthesized_expression "((byte)cmdline_tooltype & 2)" ( (binary_expression "(byte)cmdline_tooltype & 2" (cast_expression "(byte)cmdline_tooltype" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00015d50;" goto statement_identifier ;))) (if_statement "if (need_save != 0) goto LAB_00015c78;" if (parenthesized_expression "(need_save != 0)" ( (binary_expression "need_save != 0" identifier != number_literal) )) (goto_statement "goto LAB_00015c78;" goto statement_identifier ;)) (labeled_statement "LAB_00016ae7:\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 "iVar7 = strcmp(p,"-1");" (assignment_expression "iVar7 = strcmp(p,"-1")" identifier = (call_expression "strcmp(p,"-1")" identifier (argument_list "(p,"-1")" ( identifier , (string_literal ""-1"" " string_content ") )))) ;) (if_statement "if (iVar7 == 0) {\n      if (((byte)cmdline_tooltype & 2) != 0) goto LAB_00015d50;\nLAB_00016b27:\n      conf_set_int(conf,0x21,0);\n      iVar7 = strcmp(p,"-2");\n      if (iVar7 == 0) {\n        if (((byte)cmdline_tooltype & 2) != 0) {\nLAB_00015d50:\n          cmdline_error("option \"%s\" not available in this tool");\n          return 1;\n        }\n        goto LAB_00016b67;\n      }\n    }\n    else {\n      iVar7 = strcmp(p,"-2");\n      if (iVar7 == 0) goto LAB_000175ad;\n    }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n      if (((byte)cmdline_tooltype & 2) != 0) goto LAB_00015d50;\nLAB_00016b27:\n      conf_set_int(conf,0x21,0);\n      iVar7 = strcmp(p,"-2");\n      if (iVar7 == 0) {\n        if (((byte)cmdline_tooltype & 2) != 0) {\nLAB_00015d50:\n          cmdline_error("option \"%s\" not available in this tool");\n          return 1;\n        }\n        goto LAB_00016b67;\n      }\n    }" { (if_statement "if (((byte)cmdline_tooltype & 2) != 0) goto LAB_00015d50;" if (parenthesized_expression "(((byte)cmdline_tooltype & 2) != 0)" ( (binary_expression "((byte)cmdline_tooltype & 2) != 0" (parenthesized_expression "((byte)cmdline_tooltype & 2)" ( (binary_expression "(byte)cmdline_tooltype & 2" (cast_expression "(byte)cmdline_tooltype" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00015d50;" goto statement_identifier ;)) (labeled_statement "LAB_00016b27:\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 "iVar7 = strcmp(p,"-2");" (assignment_expression "iVar7 = strcmp(p,"-2")" identifier = (call_expression "strcmp(p,"-2")" identifier (argument_list "(p,"-2")" ( identifier , (string_literal ""-2"" " string_content ") )))) ;) (if_statement "if (iVar7 == 0) {\n        if (((byte)cmdline_tooltype & 2) != 0) {\nLAB_00015d50:\n          cmdline_error("option \"%s\" not available in this tool");\n          return 1;\n        }\n        goto LAB_00016b67;\n      }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n        if (((byte)cmdline_tooltype & 2) != 0) {\nLAB_00015d50:\n          cmdline_error("option \"%s\" not available in this tool");\n          return 1;\n        }\n        goto LAB_00016b67;\n      }" { (if_statement "if (((byte)cmdline_tooltype & 2) != 0) {\nLAB_00015d50:\n          cmdline_error("option \"%s\" not available in this tool");\n          return 1;\n        }" if (parenthesized_expression "(((byte)cmdline_tooltype & 2) != 0)" ( (binary_expression "((byte)cmdline_tooltype & 2) != 0" (parenthesized_expression "((byte)cmdline_tooltype & 2)" ( (binary_expression "(byte)cmdline_tooltype & 2" (cast_expression "(byte)cmdline_tooltype" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (compound_statement "{\nLAB_00015d50:\n          cmdline_error("option \"%s\" not available in this tool");\n          return 1;\n        }" { (labeled_statement "LAB_00015d50:\n          cmdline_error("option \"%s\" not available in this tool");" statement_identifier : (expression_statement "cmdline_error("option \"%s\" not available in this tool");" (call_expression "cmdline_error("option \"%s\" not available in this tool")" identifier (argument_list "("option \"%s\" not available in this tool")" ( (string_literal ""option \"%s\" not available in this tool"" " string_content escape_sequence string_content escape_sequence string_content ") ))) ;)) (return_statement "return 1;" return number_literal ;) })) (goto_statement "goto LAB_00016b67;" goto statement_identifier ;) })) }) (else_clause "else {\n      iVar7 = strcmp(p,"-2");\n      if (iVar7 == 0) goto LAB_000175ad;\n    }" else (compound_statement "{\n      iVar7 = strcmp(p,"-2");\n      if (iVar7 == 0) goto LAB_000175ad;\n    }" { (expression_statement "iVar7 = strcmp(p,"-2");" (assignment_expression "iVar7 = strcmp(p,"-2")" identifier = (call_expression "strcmp(p,"-2")" identifier (argument_list "(p,"-2")" ( identifier , (string_literal ""-2"" " string_content ") )))) ;) (if_statement "if (iVar7 == 0) goto LAB_000175ad;" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000175ad;" goto statement_identifier ;)) }))) (expression_statement "iVar7 = 1;" (assignment_expression "iVar7 = 1" identifier = number_literal) ;) }))) (expression_statement "iVar8 = strcmp(p,"-i");" (assignment_expression "iVar8 = strcmp(p,"-i")" identifier = (call_expression "strcmp(p,"-i")" identifier (argument_list "(p,"-i")" ( identifier , (string_literal ""-i"" " string_content ") )))) ;) (if_statement "if (iVar8 == 0) {\n    if (value == (char *)0x0) {\n      return -2;\n    }\n    if (need_save < 0) {\n      return 2;\n    }\n    if (((byte)cmdline_tooltype & 2) != 0) goto LAB_000161c3;\n    if (need_save != 0) goto LAB_00016123;\n    pFVar5 = filename_from_str(value);\n    conf_set_filename(conf,0x20,pFVar5);\n    filename_free(pFVar5);\n    iVar7 = strcmp(p,"-4");\n    if ((iVar7 == 0) || (iVar7 = strcmp(p,"-ipv4"), iVar7 == 0)) goto LAB_00017485;\n    iVar7 = strcmp(p,"-6");\n    if (iVar7 == 0) goto LAB_00016c88;\n    iVar7 = 2;\n    iVar8 = strcmp(p,"-ipv6");\njoined_r0x000174dc:\n    if (iVar8 == 0) goto LAB_00016c88;\n  }\n  else {\n    iVar8 = strcmp(p,"-4");\n    if ((iVar8 == 0) || (iVar8 = strcmp(p,"-ipv4"), iVar8 == 0)) {\n      if (need_save < 0) {\n        return 1;\n      }\n      if (need_save != 0) {\nLAB_00017091:\n        cmdline_save_param(p,value,1);\n        return 1;\n      }\nLAB_00017485:\n      conf_set_int(conf,3,1);\n      iVar7 = strcmp(p,"-6");\n      if (iVar7 != 0) {\n        iVar7 = 1;\n        iVar8 = strcmp(p,"-ipv6");\n        goto joined_r0x000174dc;\n      }\n    }\n    else {\n      iVar8 = strcmp(p,"-6");\n      if ((iVar8 != 0) && (iVar8 = strcmp(p,"-ipv6"), iVar8 != 0)) goto LAB_00016ca6;\n      if (need_save < 0) {\n        return 1;\n      }\n      if (need_save != 0) goto LAB_00017091;\n    }\nLAB_00016c88:\n    iVar7 = 1;\n    conf_set_int(conf,3,2);\n  }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 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    if (((byte)cmdline_tooltype & 2) != 0) goto LAB_000161c3;\n    if (need_save != 0) goto LAB_00016123;\n    pFVar5 = filename_from_str(value);\n    conf_set_filename(conf,0x20,pFVar5);\n    filename_free(pFVar5);\n    iVar7 = strcmp(p,"-4");\n    if ((iVar7 == 0) || (iVar7 = strcmp(p,"-ipv4"), iVar7 == 0)) goto LAB_00017485;\n    iVar7 = strcmp(p,"-6");\n    if (iVar7 == 0) goto LAB_00016c88;\n    iVar7 = 2;\n    iVar8 = strcmp(p,"-ipv6");\njoined_r0x000174dc:\n    if (iVar8 == 0) goto LAB_00016c88;\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 ;) })) (if_statement "if (((byte)cmdline_tooltype & 2) != 0) goto LAB_000161c3;" if (parenthesized_expression "(((byte)cmdline_tooltype & 2) != 0)" ( (binary_expression "((byte)cmdline_tooltype & 2) != 0" (parenthesized_expression "((byte)cmdline_tooltype & 2)" ( (binary_expression "(byte)cmdline_tooltype & 2" (cast_expression "(byte)cmdline_tooltype" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_000161c3;" goto statement_identifier ;)) (if_statement "if (need_save != 0) goto LAB_00016123;" if (parenthesized_expression "(need_save != 0)" ( (binary_expression "need_save != 0" identifier != number_literal) )) (goto_statement "goto LAB_00016123;" goto statement_identifier ;)) (expression_statement "pFVar5 = filename_from_str(value);" (assignment_expression "pFVar5 = filename_from_str(value)" identifier = (call_expression "filename_from_str(value)" identifier (argument_list "(value)" ( identifier )))) ;) (expression_statement "conf_set_filename(conf,0x20,pFVar5);" (call_expression "conf_set_filename(conf,0x20,pFVar5)" identifier (argument_list "(conf,0x20,pFVar5)" ( identifier , number_literal , identifier ))) ;) (expression_statement "filename_free(pFVar5);" (call_expression "filename_free(pFVar5)" identifier (argument_list "(pFVar5)" ( identifier ))) ;) (expression_statement "iVar7 = strcmp(p,"-4");" (assignment_expression "iVar7 = strcmp(p,"-4")" identifier = (call_expression "strcmp(p,"-4")" identifier (argument_list "(p,"-4")" ( identifier , (string_literal ""-4"" " string_content ") )))) ;) (if_statement "if ((iVar7 == 0) || (iVar7 = strcmp(p,"-ipv4"), iVar7 == 0)) goto LAB_00017485;" if (parenthesized_expression "((iVar7 == 0) || (iVar7 = strcmp(p,"-ipv4"), iVar7 == 0))" ( (binary_expression "(iVar7 == 0) || (iVar7 = strcmp(p,"-ipv4"), iVar7 == 0)" (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar7 = strcmp(p,"-ipv4"), iVar7 == 0)" ( (comma_expression "iVar7 = strcmp(p,"-ipv4"), iVar7 == 0" (assignment_expression "iVar7 = strcmp(p,"-ipv4")" identifier = (call_expression "strcmp(p,"-ipv4")" identifier (argument_list "(p,"-ipv4")" ( identifier , (string_literal ""-ipv4"" " string_content ") )))) , (binary_expression "iVar7 == 0" identifier == number_literal)) ))) )) (goto_statement "goto LAB_00017485;" goto statement_identifier ;)) (expression_statement "iVar7 = strcmp(p,"-6");" (assignment_expression "iVar7 = strcmp(p,"-6")" identifier = (call_expression "strcmp(p,"-6")" identifier (argument_list "(p,"-6")" ( identifier , (string_literal ""-6"" " string_content ") )))) ;) (if_statement "if (iVar7 == 0) goto LAB_00016c88;" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00016c88;" goto statement_identifier ;)) (expression_statement "iVar7 = 2;" (assignment_expression "iVar7 = 2" identifier = number_literal) ;) (expression_statement "iVar8 = strcmp(p,"-ipv6");" (assignment_expression "iVar8 = strcmp(p,"-ipv6")" identifier = (call_expression "strcmp(p,"-ipv6")" identifier (argument_list "(p,"-ipv6")" ( identifier , (string_literal ""-ipv6"" " string_content ") )))) ;) (labeled_statement "joined_r0x000174dc:\n    if (iVar8 == 0) goto LAB_00016c88;" statement_identifier : (if_statement "if (iVar8 == 0) goto LAB_00016c88;" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00016c88;" goto statement_identifier ;))) }) (else_clause "else {\n    iVar8 = strcmp(p,"-4");\n    if ((iVar8 == 0) || (iVar8 = strcmp(p,"-ipv4"), iVar8 == 0)) {\n      if (need_save < 0) {\n        return 1;\n      }\n      if (need_save != 0) {\nLAB_00017091:\n        cmdline_save_param(p,value,1);\n        return 1;\n      }\nLAB_00017485:\n      conf_set_int(conf,3,1);\n      iVar7 = strcmp(p,"-6");\n      if (iVar7 != 0) {\n        iVar7 = 1;\n        iVar8 = strcmp(p,"-ipv6");\n        goto joined_r0x000174dc;\n      }\n    }\n    else {\n      iVar8 = strcmp(p,"-6");\n      if ((iVar8 != 0) && (iVar8 = strcmp(p,"-ipv6"), iVar8 != 0)) goto LAB_00016ca6;\n      if (need_save < 0) {\n        return 1;\n      }\n      if (need_save != 0) goto LAB_00017091;\n    }\nLAB_00016c88:\n    iVar7 = 1;\n    conf_set_int(conf,3,2);\n  }" else (compound_statement "{\n    iVar8 = strcmp(p,"-4");\n    if ((iVar8 == 0) || (iVar8 = strcmp(p,"-ipv4"), iVar8 == 0)) {\n      if (need_save < 0) {\n        return 1;\n      }\n      if (need_save != 0) {\nLAB_00017091:\n        cmdline_save_param(p,value,1);\n        return 1;\n      }\nLAB_00017485:\n      conf_set_int(conf,3,1);\n      iVar7 = strcmp(p,"-6");\n      if (iVar7 != 0) {\n        iVar7 = 1;\n        iVar8 = strcmp(p,"-ipv6");\n        goto joined_r0x000174dc;\n      }\n    }\n    else {\n      iVar8 = strcmp(p,"-6");\n      if ((iVar8 != 0) && (iVar8 = strcmp(p,"-ipv6"), iVar8 != 0)) goto LAB_00016ca6;\n      if (need_save < 0) {\n        return 1;\n      }\n      if (need_save != 0) goto LAB_00017091;\n    }\nLAB_00016c88:\n    iVar7 = 1;\n    conf_set_int(conf,3,2);\n  }" { (expression_statement "iVar8 = strcmp(p,"-4");" (assignment_expression "iVar8 = strcmp(p,"-4")" identifier = (call_expression "strcmp(p,"-4")" identifier (argument_list "(p,"-4")" ( identifier , (string_literal ""-4"" " string_content ") )))) ;) (if_statement "if ((iVar8 == 0) || (iVar8 = strcmp(p,"-ipv4"), iVar8 == 0)) {\n      if (need_save < 0) {\n        return 1;\n      }\n      if (need_save != 0) {\nLAB_00017091:\n        cmdline_save_param(p,value,1);\n        return 1;\n      }\nLAB_00017485:\n      conf_set_int(conf,3,1);\n      iVar7 = strcmp(p,"-6");\n      if (iVar7 != 0) {\n        iVar7 = 1;\n        iVar8 = strcmp(p,"-ipv6");\n        goto joined_r0x000174dc;\n      }\n    }\n    else {\n      iVar8 = strcmp(p,"-6");\n      if ((iVar8 != 0) && (iVar8 = strcmp(p,"-ipv6"), iVar8 != 0)) goto LAB_00016ca6;\n      if (need_save < 0) {\n        return 1;\n      }\n      if (need_save != 0) goto LAB_00017091;\n    }" if (parenthesized_expression "((iVar8 == 0) || (iVar8 = strcmp(p,"-ipv4"), iVar8 == 0))" ( (binary_expression "(iVar8 == 0) || (iVar8 = strcmp(p,"-ipv4"), iVar8 == 0)" (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar8 = strcmp(p,"-ipv4"), iVar8 == 0)" ( (comma_expression "iVar8 = strcmp(p,"-ipv4"), iVar8 == 0" (assignment_expression "iVar8 = strcmp(p,"-ipv4")" identifier = (call_expression "strcmp(p,"-ipv4")" identifier (argument_list "(p,"-ipv4")" ( identifier , (string_literal ""-ipv4"" " string_content ") )))) , (binary_expression "iVar8 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n      if (need_save < 0) {\n        return 1;\n      }\n      if (need_save != 0) {\nLAB_00017091:\n        cmdline_save_param(p,value,1);\n        return 1;\n      }\nLAB_00017485:\n      conf_set_int(conf,3,1);\n      iVar7 = strcmp(p,"-6");\n      if (iVar7 != 0) {\n        iVar7 = 1;\n        iVar8 = strcmp(p,"-ipv6");\n        goto joined_r0x000174dc;\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 ;) })) (if_statement "if (need_save != 0) {\nLAB_00017091:\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 "{\nLAB_00017091:\n        cmdline_save_param(p,value,1);\n        return 1;\n      }" { (labeled_statement "LAB_00017091:\n        cmdline_save_param(p,value,1);" statement_identifier : (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_00017485:\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 "iVar7 = strcmp(p,"-6");" (assignment_expression "iVar7 = strcmp(p,"-6")" identifier = (call_expression "strcmp(p,"-6")" identifier (argument_list "(p,"-6")" ( identifier , (string_literal ""-6"" " string_content ") )))) ;) (if_statement "if (iVar7 != 0) {\n        iVar7 = 1;\n        iVar8 = strcmp(p,"-ipv6");\n        goto joined_r0x000174dc;\n      }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n        iVar7 = 1;\n        iVar8 = strcmp(p,"-ipv6");\n        goto joined_r0x000174dc;\n      }" { (expression_statement "iVar7 = 1;" (assignment_expression "iVar7 = 1" identifier = number_literal) ;) (expression_statement "iVar8 = strcmp(p,"-ipv6");" (assignment_expression "iVar8 = strcmp(p,"-ipv6")" identifier = (call_expression "strcmp(p,"-ipv6")" identifier (argument_list "(p,"-ipv6")" ( identifier , (string_literal ""-ipv6"" " string_content ") )))) ;) (goto_statement "goto joined_r0x000174dc;" goto statement_identifier ;) })) }) (else_clause "else {\n      iVar8 = strcmp(p,"-6");\n      if ((iVar8 != 0) && (iVar8 = strcmp(p,"-ipv6"), iVar8 != 0)) goto LAB_00016ca6;\n      if (need_save < 0) {\n        return 1;\n      }\n      if (need_save != 0) goto LAB_00017091;\n    }" else (compound_statement "{\n      iVar8 = strcmp(p,"-6");\n      if ((iVar8 != 0) && (iVar8 = strcmp(p,"-ipv6"), iVar8 != 0)) goto LAB_00016ca6;\n      if (need_save < 0) {\n        return 1;\n      }\n      if (need_save != 0) goto LAB_00017091;\n    }" { (expression_statement "iVar8 = strcmp(p,"-6");" (assignment_expression "iVar8 = strcmp(p,"-6")" identifier = (call_expression "strcmp(p,"-6")" identifier (argument_list "(p,"-6")" ( identifier , (string_literal ""-6"" " string_content ") )))) ;) (if_statement "if ((iVar8 != 0) && (iVar8 = strcmp(p,"-ipv6"), iVar8 != 0)) goto LAB_00016ca6;" if (parenthesized_expression "((iVar8 != 0) && (iVar8 = strcmp(p,"-ipv6"), iVar8 != 0))" ( (binary_expression "(iVar8 != 0) && (iVar8 = strcmp(p,"-ipv6"), iVar8 != 0)" (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar8 = strcmp(p,"-ipv6"), iVar8 != 0)" ( (comma_expression "iVar8 = strcmp(p,"-ipv6"), iVar8 != 0" (assignment_expression "iVar8 = strcmp(p,"-ipv6")" identifier = (call_expression "strcmp(p,"-ipv6")" identifier (argument_list "(p,"-ipv6")" ( identifier , (string_literal ""-ipv6"" " string_content ") )))) , (binary_expression "iVar8 != 0" identifier != number_literal)) ))) )) (goto_statement "goto LAB_00016ca6;" 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 ;) })) (if_statement "if (need_save != 0) goto LAB_00017091;" if (parenthesized_expression "(need_save != 0)" ( (binary_expression "need_save != 0" identifier != number_literal) )) (goto_statement "goto LAB_00017091;" goto statement_identifier ;)) }))) (labeled_statement "LAB_00016c88:\n    iVar7 = 1;" statement_identifier : (expression_statement "iVar7 = 1;" (assignment_expression "iVar7 = 1" identifier = number_literal) ;)) (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 ))) ;) }))) (labeled_statement "LAB_00016ca6:\n  iVar8 = strcmp(p,"-sercfg");" statement_identifier : (expression_statement "iVar8 = strcmp(p,"-sercfg");" (assignment_expression "iVar8 = strcmp(p,"-sercfg")" identifier = (call_expression "strcmp(p,"-sercfg")" identifier (argument_list "(p,"-sercfg")" ( identifier , (string_literal ""-sercfg"" " string_content ") )))) ;)) (if_statement "if (iVar8 == 0) {\n    if (value == (char *)0x0) {\n      return -2;\n    }\n    if (need_save < 0) {\n      return 2;\n    }\n    if (((byte)cmdline_tooltype & 3) != 0) goto LAB_000161c3;\n    if (need_save != 0) {\nLAB_00016723:\n      cmdline_save_param(p,value,1);\n      return 2;\n    }\n    iVar7 = conf_get_int(conf,2);\n    pcVar2 = value;\n    if (iVar7 != 4) {\n      cmdline_error("the -sercfg option can only be used with the serial protocol");\n    }\n    for (; *pcVar2 != '\0'; pcVar2 = pcVar2 + iVar8 + iVar7) {\n      pcVar4 = strchr(pcVar2,0x2c);\n      if (pcVar4 == (char *)0x0) {\n        uVar9 = 0xffffffff;\n        iVar7 = 0;\n        pcVar4 = pcVar2;\n        do {\n          if (uVar9 == 0) break;\n          uVar9 = uVar9 - 1;\n          cVar1 = *pcVar4;\n          pcVar4 = pcVar4 + (uint)bVar18 * -2 + 1;\n        } while (cVar1 != '\0');\n        iVar8 = ~uVar9 - 1;\n      }\n      else {\n        *pcVar4 = '\0';\n        iVar7 = 1;\n        iVar8 = (int)pcVar4 - (int)pcVar2;\n      }\n      if (iVar8 == 1) {\n        iVar6 = (int)*pcVar2;\n        switch(iVar6 - 0x31U & 0xff) {\n        case 0:\n        case 1:\n          conf_set_int(conf,0x3c,(iVar6 + -0x30) * 2);\n          break;\n        default:\n          cmdline_error("Unrecognised suboption \"-sercfg %c\"");\n          break;\n        case 4:\n        case 5:\n        case 6:\n        case 7:\n        case 8:\n          conf_set_int(conf,0x3b,iVar6 + -0x30);\n          break;\n        case 0x13:\n          conf_set_int(conf,0x3e,3);\n          break;\n        case 0x1d:\n          conf_set_int(conf,0x3e,0);\n          break;\n        case 0x21:\n          conf_set_int(conf,0x3e,2);\n          break;\n        case 0x27:\n          conf_set_int(conf,0x3e,1);\n          break;\n        case 0x34:\n          conf_set_int(conf,0x3d,2);\n          break;\n        case 0x3c:\n          conf_set_int(conf,0x3d,3);\n          break;\n        case 0x3d:\n          conf_set_int(conf,0x3d,0);\n          break;\n        case 0x3e:\n          conf_set_int(conf,0x3d,1);\n          break;\n        case 0x42:\n          conf_set_int(conf,0x3d,4);\n        }\n      }\n      else if ((iVar8 == 3) && (iVar6 = strncmp(pcVar2,"1.5",3), iVar6 == 0)) {\n        conf_set_int(conf,0x3c,3);\n      }\n      else {\n        lVar3 = strtol(pcVar2,(char **)0x0,10);\n        if (lVar3 == 0) {\n          cmdline_error("Unrecognised suboption \"-sercfg %s\"");\n        }\n        else {\n          conf_set_int(conf,0x3a,lVar3);\n        }\n      }\n    }\n    iVar7 = strcmp(p,"-sessionlog");\n    if (iVar7 == 0) {\n      if (((byte)cmdline_tooltype & 1) != 0) goto LAB_000161c3;\n      goto LAB_0001722b;\n    }\n    iVar7 = strcmp(p,"-sshlog");\n    if (iVar7 != 0) goto LAB_000173ff;\nLAB_000173c4:\n    if (((byte)cmdline_tooltype & 2) != 0) goto LAB_000161c3;\n    if (need_save != 0) {\nLAB_00016123:\n      cmdline_save_param(p,value,0);\n      return 2;\n    }\n  }\n  else {\n    iVar8 = strcmp(p,"-sessionlog");\n    if (iVar8 != 0) {\n      iVar8 = strcmp(p,"-sshlog");\n      if (iVar8 != 0) goto LAB_00017404;\nLAB_000173b1:\n      if (value == (char *)0x0) {\n        return -2;\n      }\n      if (need_save < 0) {\n        return 2;\n      }\n      goto LAB_000173c4;\n    }\n    if (value == (char *)0x0) {\n      return -2;\n    }\n    if (need_save < 0) {\n      return 2;\n    }\n    if (((byte)cmdline_tooltype & 1) != 0) goto LAB_000161c3;\n    if (need_save != 0) goto LAB_00016123;\nLAB_0001722b:\n    pFVar5 = filename_from_str(value);\n    conf_set_filename(conf,0x77,pFVar5);\n    conf_set_int(conf,0x78,2);\n    filename_free(pFVar5);\n    iVar7 = strcmp(p,"-sshlog");\n    if (iVar7 != 0) {\nLAB_000173ff:\n      iVar7 = 2;\nLAB_00017404:\n      iVar8 = strcmp(p,"-sshrawlog");\n      if (iVar8 != 0) {\n        iVar8 = strcmp(p,"-proxycmd");\n        if (iVar8 != 0) {\n          return iVar7;\n        }\n        if (value == (char *)0x0) {\n          return -2;\n        }\n        if (need_save < 0) {\n          return 2;\n        }\n        if (((byte)cmdline_tooltype & 2) != 0) goto LAB_000161c3;\n        if (need_save != 0) goto LAB_00016123;\n        goto LAB_00017304;\n      }\n      goto LAB_000173b1;\n    }\n    if (((byte)cmdline_tooltype & 2) != 0) goto LAB_000161c3;\n  }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 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    if (((byte)cmdline_tooltype & 3) != 0) goto LAB_000161c3;\n    if (need_save != 0) {\nLAB_00016723:\n      cmdline_save_param(p,value,1);\n      return 2;\n    }\n    iVar7 = conf_get_int(conf,2);\n    pcVar2 = value;\n    if (iVar7 != 4) {\n      cmdline_error("the -sercfg option can only be used with the serial protocol");\n    }\n    for (; *pcVar2 != '\0'; pcVar2 = pcVar2 + iVar8 + iVar7) {\n      pcVar4 = strchr(pcVar2,0x2c);\n      if (pcVar4 == (char *)0x0) {\n        uVar9 = 0xffffffff;\n        iVar7 = 0;\n        pcVar4 = pcVar2;\n        do {\n          if (uVar9 == 0) break;\n          uVar9 = uVar9 - 1;\n          cVar1 = *pcVar4;\n          pcVar4 = pcVar4 + (uint)bVar18 * -2 + 1;\n        } while (cVar1 != '\0');\n        iVar8 = ~uVar9 - 1;\n      }\n      else {\n        *pcVar4 = '\0';\n        iVar7 = 1;\n        iVar8 = (int)pcVar4 - (int)pcVar2;\n      }\n      if (iVar8 == 1) {\n        iVar6 = (int)*pcVar2;\n        switch(iVar6 - 0x31U & 0xff) {\n        case 0:\n        case 1:\n          conf_set_int(conf,0x3c,(iVar6 + -0x30) * 2);\n          break;\n        default:\n          cmdline_error("Unrecognised suboption \"-sercfg %c\"");\n          break;\n        case 4:\n        case 5:\n        case 6:\n        case 7:\n        case 8:\n          conf_set_int(conf,0x3b,iVar6 + -0x30);\n          break;\n        case 0x13:\n          conf_set_int(conf,0x3e,3);\n          break;\n        case 0x1d:\n          conf_set_int(conf,0x3e,0);\n          break;\n        case 0x21:\n          conf_set_int(conf,0x3e,2);\n          break;\n        case 0x27:\n          conf_set_int(conf,0x3e,1);\n          break;\n        case 0x34:\n          conf_set_int(conf,0x3d,2);\n          break;\n        case 0x3c:\n          conf_set_int(conf,0x3d,3);\n          break;\n        case 0x3d:\n          conf_set_int(conf,0x3d,0);\n          break;\n        case 0x3e:\n          conf_set_int(conf,0x3d,1);\n          break;\n        case 0x42:\n          conf_set_int(conf,0x3d,4);\n        }\n      }\n      else if ((iVar8 == 3) && (iVar6 = strncmp(pcVar2,"1.5",3), iVar6 == 0)) {\n        conf_set_int(conf,0x3c,3);\n      }\n      else {\n        lVar3 = strtol(pcVar2,(char **)0x0,10);\n        if (lVar3 == 0) {\n          cmdline_error("Unrecognised suboption \"-sercfg %s\"");\n        }\n        else {\n          conf_set_int(conf,0x3a,lVar3);\n        }\n      }\n    }\n    iVar7 = strcmp(p,"-sessionlog");\n    if (iVar7 == 0) {\n      if (((byte)cmdline_tooltype & 1) != 0) goto LAB_000161c3;\n      goto LAB_0001722b;\n    }\n    iVar7 = strcmp(p,"-sshlog");\n    if (iVar7 != 0) goto LAB_000173ff;\nLAB_000173c4:\n    if (((byte)cmdline_tooltype & 2) != 0) goto LAB_000161c3;\n    if (need_save != 0) {\nLAB_00016123:\n      cmdline_save_param(p,value,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 ;) })) (if_statement "if (((byte)cmdline_tooltype & 3) != 0) goto LAB_000161c3;" if (parenthesized_expression "(((byte)cmdline_tooltype & 3) != 0)" ( (binary_expression "((byte)cmdline_tooltype & 3) != 0" (parenthesized_expression "((byte)cmdline_tooltype & 3)" ( (binary_expression "(byte)cmdline_tooltype & 3" (cast_expression "(byte)cmdline_tooltype" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_000161c3;" goto statement_identifier ;)) (if_statement "if (need_save != 0) {\nLAB_00016723:\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 "{\nLAB_00016723:\n      cmdline_save_param(p,value,1);\n      return 2;\n    }" { (labeled_statement "LAB_00016723:\n      cmdline_save_param(p,value,1);" statement_identifier : (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 "iVar7 = conf_get_int(conf,2);" (assignment_expression "iVar7 = conf_get_int(conf,2)" identifier = (call_expression "conf_get_int(conf,2)" identifier (argument_list "(conf,2)" ( identifier , number_literal )))) ;) (expression_statement "pcVar2 = value;" (assignment_expression "pcVar2 = value" identifier = identifier) ;) (if_statement "if (iVar7 != 4) {\n      cmdline_error("the -sercfg option can only be used with the serial protocol");\n    }" if (parenthesized_expression "(iVar7 != 4)" ( (binary_expression "iVar7 != 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 (; *pcVar2 != '\0'; pcVar2 = pcVar2 + iVar8 + iVar7) {\n      pcVar4 = strchr(pcVar2,0x2c);\n      if (pcVar4 == (char *)0x0) {\n        uVar9 = 0xffffffff;\n        iVar7 = 0;\n        pcVar4 = pcVar2;\n        do {\n          if (uVar9 == 0) break;\n          uVar9 = uVar9 - 1;\n          cVar1 = *pcVar4;\n          pcVar4 = pcVar4 + (uint)bVar18 * -2 + 1;\n        } while (cVar1 != '\0');\n        iVar8 = ~uVar9 - 1;\n      }\n      else {\n        *pcVar4 = '\0';\n        iVar7 = 1;\n        iVar8 = (int)pcVar4 - (int)pcVar2;\n      }\n      if (iVar8 == 1) {\n        iVar6 = (int)*pcVar2;\n        switch(iVar6 - 0x31U & 0xff) {\n        case 0:\n        case 1:\n          conf_set_int(conf,0x3c,(iVar6 + -0x30) * 2);\n          break;\n        default:\n          cmdline_error("Unrecognised suboption \"-sercfg %c\"");\n          break;\n        case 4:\n        case 5:\n        case 6:\n        case 7:\n        case 8:\n          conf_set_int(conf,0x3b,iVar6 + -0x30);\n          break;\n        case 0x13:\n          conf_set_int(conf,0x3e,3);\n          break;\n        case 0x1d:\n          conf_set_int(conf,0x3e,0);\n          break;\n        case 0x21:\n          conf_set_int(conf,0x3e,2);\n          break;\n        case 0x27:\n          conf_set_int(conf,0x3e,1);\n          break;\n        case 0x34:\n          conf_set_int(conf,0x3d,2);\n          break;\n        case 0x3c:\n          conf_set_int(conf,0x3d,3);\n          break;\n        case 0x3d:\n          conf_set_int(conf,0x3d,0);\n          break;\n        case 0x3e:\n          conf_set_int(conf,0x3d,1);\n          break;\n        case 0x42:\n          conf_set_int(conf,0x3d,4);\n        }\n      }\n      else if ((iVar8 == 3) && (iVar6 = strncmp(pcVar2,"1.5",3), iVar6 == 0)) {\n        conf_set_int(conf,0x3c,3);\n      }\n      else {\n        lVar3 = strtol(pcVar2,(char **)0x0,10);\n        if (lVar3 == 0) {\n          cmdline_error("Unrecognised suboption \"-sercfg %s\"");\n        }\n        else {\n          conf_set_int(conf,0x3a,lVar3);\n        }\n      }\n    }" for ( ; (binary_expression "*pcVar2 != '\0'" (pointer_expression "*pcVar2" * identifier) != (char_literal "'\0'" ' escape_sequence ')) ; (assignment_expression "pcVar2 = pcVar2 + iVar8 + iVar7" identifier = (binary_expression "pcVar2 + iVar8 + iVar7" (binary_expression "pcVar2 + iVar8" identifier + identifier) + identifier)) ) (compound_statement "{\n      pcVar4 = strchr(pcVar2,0x2c);\n      if (pcVar4 == (char *)0x0) {\n        uVar9 = 0xffffffff;\n        iVar7 = 0;\n        pcVar4 = pcVar2;\n        do {\n          if (uVar9 == 0) break;\n          uVar9 = uVar9 - 1;\n          cVar1 = *pcVar4;\n          pcVar4 = pcVar4 + (uint)bVar18 * -2 + 1;\n        } while (cVar1 != '\0');\n        iVar8 = ~uVar9 - 1;\n      }\n      else {\n        *pcVar4 = '\0';\n        iVar7 = 1;\n        iVar8 = (int)pcVar4 - (int)pcVar2;\n      }\n      if (iVar8 == 1) {\n        iVar6 = (int)*pcVar2;\n        switch(iVar6 - 0x31U & 0xff) {\n        case 0:\n        case 1:\n          conf_set_int(conf,0x3c,(iVar6 + -0x30) * 2);\n          break;\n        default:\n          cmdline_error("Unrecognised suboption \"-sercfg %c\"");\n          break;\n        case 4:\n        case 5:\n        case 6:\n        case 7:\n        case 8:\n          conf_set_int(conf,0x3b,iVar6 + -0x30);\n          break;\n        case 0x13:\n          conf_set_int(conf,0x3e,3);\n          break;\n        case 0x1d:\n          conf_set_int(conf,0x3e,0);\n          break;\n        case 0x21:\n          conf_set_int(conf,0x3e,2);\n          break;\n        case 0x27:\n          conf_set_int(conf,0x3e,1);\n          break;\n        case 0x34:\n          conf_set_int(conf,0x3d,2);\n          break;\n        case 0x3c:\n          conf_set_int(conf,0x3d,3);\n          break;\n        case 0x3d:\n          conf_set_int(conf,0x3d,0);\n          break;\n        case 0x3e:\n          conf_set_int(conf,0x3d,1);\n          break;\n        case 0x42:\n          conf_set_int(conf,0x3d,4);\n        }\n      }\n      else if ((iVar8 == 3) && (iVar6 = strncmp(pcVar2,"1.5",3), iVar6 == 0)) {\n        conf_set_int(conf,0x3c,3);\n      }\n      else {\n        lVar3 = strtol(pcVar2,(char **)0x0,10);\n        if (lVar3 == 0) {\n          cmdline_error("Unrecognised suboption \"-sercfg %s\"");\n        }\n        else {\n          conf_set_int(conf,0x3a,lVar3);\n        }\n      }\n    }" { (expression_statement "pcVar4 = strchr(pcVar2,0x2c);" (assignment_expression "pcVar4 = strchr(pcVar2,0x2c)" identifier = (call_expression "strchr(pcVar2,0x2c)" identifier (argument_list "(pcVar2,0x2c)" ( identifier , number_literal )))) ;) (if_statement "if (pcVar4 == (char *)0x0) {\n        uVar9 = 0xffffffff;\n        iVar7 = 0;\n        pcVar4 = pcVar2;\n        do {\n          if (uVar9 == 0) break;\n          uVar9 = uVar9 - 1;\n          cVar1 = *pcVar4;\n          pcVar4 = pcVar4 + (uint)bVar18 * -2 + 1;\n        } while (cVar1 != '\0');\n        iVar8 = ~uVar9 - 1;\n      }\n      else {\n        *pcVar4 = '\0';\n        iVar7 = 1;\n        iVar8 = (int)pcVar4 - (int)pcVar2;\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        uVar9 = 0xffffffff;\n        iVar7 = 0;\n        pcVar4 = pcVar2;\n        do {\n          if (uVar9 == 0) break;\n          uVar9 = uVar9 - 1;\n          cVar1 = *pcVar4;\n          pcVar4 = pcVar4 + (uint)bVar18 * -2 + 1;\n        } while (cVar1 != '\0');\n        iVar8 = ~uVar9 - 1;\n      }" { (expression_statement "uVar9 = 0xffffffff;" (assignment_expression "uVar9 = 0xffffffff" identifier = number_literal) ;) (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;) (expression_statement "pcVar4 = pcVar2;" (assignment_expression "pcVar4 = pcVar2" identifier = identifier) ;) (do_statement "do {\n          if (uVar9 == 0) break;\n          uVar9 = uVar9 - 1;\n          cVar1 = *pcVar4;\n          pcVar4 = pcVar4 + (uint)bVar18 * -2 + 1;\n        } while (cVar1 != '\0');" do (compound_statement "{\n          if (uVar9 == 0) break;\n          uVar9 = uVar9 - 1;\n          cVar1 = *pcVar4;\n          pcVar4 = pcVar4 + (uint)bVar18 * -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 "cVar1 = *pcVar4;" (assignment_expression "cVar1 = *pcVar4" identifier = (pointer_expression "*pcVar4" * identifier)) ;) (expression_statement "pcVar4 = pcVar4 + (uint)bVar18 * -2 + 1;" (assignment_expression "pcVar4 = pcVar4 + (uint)bVar18 * -2 + 1" identifier = (binary_expression "pcVar4 + (uint)bVar18 * -2 + 1" (binary_expression "pcVar4 + (uint)bVar18 * -2" identifier + (binary_expression "(uint)bVar18 * -2" (cast_expression "(uint)bVar18" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar1 != '\0')" ( (binary_expression "cVar1 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "iVar8 = ~uVar9 - 1;" (assignment_expression "iVar8 = ~uVar9 - 1" identifier = (binary_expression "~uVar9 - 1" (unary_expression "~uVar9" ~ identifier) - number_literal)) ;) }) (else_clause "else {\n        *pcVar4 = '\0';\n        iVar7 = 1;\n        iVar8 = (int)pcVar4 - (int)pcVar2;\n      }" else (compound_statement "{\n        *pcVar4 = '\0';\n        iVar7 = 1;\n        iVar8 = (int)pcVar4 - (int)pcVar2;\n      }" { (expression_statement "*pcVar4 = '\0';" (assignment_expression "*pcVar4 = '\0'" (pointer_expression "*pcVar4" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "iVar7 = 1;" (assignment_expression "iVar7 = 1" identifier = number_literal) ;) (expression_statement "iVar8 = (int)pcVar4 - (int)pcVar2;" (assignment_expression "iVar8 = (int)pcVar4 - (int)pcVar2" identifier = (binary_expression "(int)pcVar4 - (int)pcVar2" (cast_expression "(int)pcVar4" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pcVar2" ( (type_descriptor "int" primitive_type) ) identifier))) ;) }))) (if_statement "if (iVar8 == 1) {\n        iVar6 = (int)*pcVar2;\n        switch(iVar6 - 0x31U & 0xff) {\n        case 0:\n        case 1:\n          conf_set_int(conf,0x3c,(iVar6 + -0x30) * 2);\n          break;\n        default:\n          cmdline_error("Unrecognised suboption \"-sercfg %c\"");\n          break;\n        case 4:\n        case 5:\n        case 6:\n        case 7:\n        case 8:\n          conf_set_int(conf,0x3b,iVar6 + -0x30);\n          break;\n        case 0x13:\n          conf_set_int(conf,0x3e,3);\n          break;\n        case 0x1d:\n          conf_set_int(conf,0x3e,0);\n          break;\n        case 0x21:\n          conf_set_int(conf,0x3e,2);\n          break;\n        case 0x27:\n          conf_set_int(conf,0x3e,1);\n          break;\n        case 0x34:\n          conf_set_int(conf,0x3d,2);\n          break;\n        case 0x3c:\n          conf_set_int(conf,0x3d,3);\n          break;\n        case 0x3d:\n          conf_set_int(conf,0x3d,0);\n          break;\n        case 0x3e:\n          conf_set_int(conf,0x3d,1);\n          break;\n        case 0x42:\n          conf_set_int(conf,0x3d,4);\n        }\n      }\n      else if ((iVar8 == 3) && (iVar6 = strncmp(pcVar2,"1.5",3), iVar6 == 0)) {\n        conf_set_int(conf,0x3c,3);\n      }\n      else {\n        lVar3 = strtol(pcVar2,(char **)0x0,10);\n        if (lVar3 == 0) {\n          cmdline_error("Unrecognised suboption \"-sercfg %s\"");\n        }\n        else {\n          conf_set_int(conf,0x3a,lVar3);\n        }\n      }" if (parenthesized_expression "(iVar8 == 1)" ( (binary_expression "iVar8 == 1" identifier == number_literal) )) (compound_statement "{\n        iVar6 = (int)*pcVar2;\n        switch(iVar6 - 0x31U & 0xff) {\n        case 0:\n        case 1:\n          conf_set_int(conf,0x3c,(iVar6 + -0x30) * 2);\n          break;\n        default:\n          cmdline_error("Unrecognised suboption \"-sercfg %c\"");\n          break;\n        case 4:\n        case 5:\n        case 6:\n        case 7:\n        case 8:\n          conf_set_int(conf,0x3b,iVar6 + -0x30);\n          break;\n        case 0x13:\n          conf_set_int(conf,0x3e,3);\n          break;\n        case 0x1d:\n          conf_set_int(conf,0x3e,0);\n          break;\n        case 0x21:\n          conf_set_int(conf,0x3e,2);\n          break;\n        case 0x27:\n          conf_set_int(conf,0x3e,1);\n          break;\n        case 0x34:\n          conf_set_int(conf,0x3d,2);\n          break;\n        case 0x3c:\n          conf_set_int(conf,0x3d,3);\n          break;\n        case 0x3d:\n          conf_set_int(conf,0x3d,0);\n          break;\n        case 0x3e:\n          conf_set_int(conf,0x3d,1);\n          break;\n        case 0x42:\n          conf_set_int(conf,0x3d,4);\n        }\n      }" { (expression_statement "iVar6 = (int)*pcVar2;" (assignment_expression "iVar6 = (int)*pcVar2" identifier = (cast_expression "(int)*pcVar2" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*pcVar2" * identifier))) ;) (switch_statement "switch(iVar6 - 0x31U & 0xff) {\n        case 0:\n        case 1:\n          conf_set_int(conf,0x3c,(iVar6 + -0x30) * 2);\n          break;\n        default:\n          cmdline_error("Unrecognised suboption \"-sercfg %c\"");\n          break;\n        case 4:\n        case 5:\n        case 6:\n        case 7:\n        case 8:\n          conf_set_int(conf,0x3b,iVar6 + -0x30);\n          break;\n        case 0x13:\n          conf_set_int(conf,0x3e,3);\n          break;\n        case 0x1d:\n          conf_set_int(conf,0x3e,0);\n          break;\n        case 0x21:\n          conf_set_int(conf,0x3e,2);\n          break;\n        case 0x27:\n          conf_set_int(conf,0x3e,1);\n          break;\n        case 0x34:\n          conf_set_int(conf,0x3d,2);\n          break;\n        case 0x3c:\n          conf_set_int(conf,0x3d,3);\n          break;\n        case 0x3d:\n          conf_set_int(conf,0x3d,0);\n          break;\n        case 0x3e:\n          conf_set_int(conf,0x3d,1);\n          break;\n        case 0x42:\n          conf_set_int(conf,0x3d,4);\n        }" switch (parenthesized_expression "(iVar6 - 0x31U & 0xff)" ( (binary_expression "iVar6 - 0x31U & 0xff" (binary_expression "iVar6 - 0x31U" identifier - number_literal) & number_literal) )) (compound_statement "{\n        case 0:\n        case 1:\n          conf_set_int(conf,0x3c,(iVar6 + -0x30) * 2);\n          break;\n        default:\n          cmdline_error("Unrecognised suboption \"-sercfg %c\"");\n          break;\n        case 4:\n        case 5:\n        case 6:\n        case 7:\n        case 8:\n          conf_set_int(conf,0x3b,iVar6 + -0x30);\n          break;\n        case 0x13:\n          conf_set_int(conf,0x3e,3);\n          break;\n        case 0x1d:\n          conf_set_int(conf,0x3e,0);\n          break;\n        case 0x21:\n          conf_set_int(conf,0x3e,2);\n          break;\n        case 0x27:\n          conf_set_int(conf,0x3e,1);\n          break;\n        case 0x34:\n          conf_set_int(conf,0x3d,2);\n          break;\n        case 0x3c:\n          conf_set_int(conf,0x3d,3);\n          break;\n        case 0x3d:\n          conf_set_int(conf,0x3d,0);\n          break;\n        case 0x3e:\n          conf_set_int(conf,0x3d,1);\n          break;\n        case 0x42:\n          conf_set_int(conf,0x3d,4);\n        }" { (case_statement "case 0:" case number_literal :) (case_statement "case 1:\n          conf_set_int(conf,0x3c,(iVar6 + -0x30) * 2);\n          break;" case number_literal : (expression_statement "conf_set_int(conf,0x3c,(iVar6 + -0x30) * 2);" (call_expression "conf_set_int(conf,0x3c,(iVar6 + -0x30) * 2)" identifier (argument_list "(conf,0x3c,(iVar6 + -0x30) * 2)" ( identifier , number_literal , (binary_expression "(iVar6 + -0x30) * 2" (parenthesized_expression "(iVar6 + -0x30)" ( (binary_expression "iVar6 + -0x30" 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 4:" case number_literal :) (case_statement "case 5:" case number_literal :) (case_statement "case 6:" case number_literal :) (case_statement "case 7:" case number_literal :) (case_statement "case 8:\n          conf_set_int(conf,0x3b,iVar6 + -0x30);\n          break;" case number_literal : (expression_statement "conf_set_int(conf,0x3b,iVar6 + -0x30);" (call_expression "conf_set_int(conf,0x3b,iVar6 + -0x30)" identifier (argument_list "(conf,0x3b,iVar6 + -0x30)" ( identifier , number_literal , (binary_expression "iVar6 + -0x30" identifier + number_literal) ))) ;) (break_statement "break;" break ;)) (case_statement "case 0x13:\n          conf_set_int(conf,0x3e,3);\n          break;" case number_literal : (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 0x1d:\n          conf_set_int(conf,0x3e,0);\n          break;" case number_literal : (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 0x21:\n          conf_set_int(conf,0x3e,2);\n          break;" case number_literal : (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 0x27:\n          conf_set_int(conf,0x3e,1);\n          break;" case number_literal : (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 0x34:\n          conf_set_int(conf,0x3d,2);\n          break;" case number_literal : (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 0x3c:\n          conf_set_int(conf,0x3d,3);\n          break;" case number_literal : (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 0x3d:\n          conf_set_int(conf,0x3d,0);\n          break;" case number_literal : (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 0x3e:\n          conf_set_int(conf,0x3d,1);\n          break;" case number_literal : (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 0x42:\n          conf_set_int(conf,0x3d,4);" case number_literal : (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 ((iVar8 == 3) && (iVar6 = strncmp(pcVar2,"1.5",3), iVar6 == 0)) {\n        conf_set_int(conf,0x3c,3);\n      }\n      else {\n        lVar3 = strtol(pcVar2,(char **)0x0,10);\n        if (lVar3 == 0) {\n          cmdline_error("Unrecognised suboption \"-sercfg %s\"");\n        }\n        else {\n          conf_set_int(conf,0x3a,lVar3);\n        }\n      }" else (if_statement "if ((iVar8 == 3) && (iVar6 = strncmp(pcVar2,"1.5",3), iVar6 == 0)) {\n        conf_set_int(conf,0x3c,3);\n      }\n      else {\n        lVar3 = strtol(pcVar2,(char **)0x0,10);\n        if (lVar3 == 0) {\n          cmdline_error("Unrecognised suboption \"-sercfg %s\"");\n        }\n        else {\n          conf_set_int(conf,0x3a,lVar3);\n        }\n      }" if (parenthesized_expression "((iVar8 == 3) && (iVar6 = strncmp(pcVar2,"1.5",3), iVar6 == 0))" ( (binary_expression "(iVar8 == 3) && (iVar6 = strncmp(pcVar2,"1.5",3), iVar6 == 0)" (parenthesized_expression "(iVar8 == 3)" ( (binary_expression "iVar8 == 3" identifier == number_literal) )) && (parenthesized_expression "(iVar6 = strncmp(pcVar2,"1.5",3), iVar6 == 0)" ( (comma_expression "iVar6 = strncmp(pcVar2,"1.5",3), iVar6 == 0" (assignment_expression "iVar6 = strncmp(pcVar2,"1.5",3)" identifier = (call_expression "strncmp(pcVar2,"1.5",3)" identifier (argument_list "(pcVar2,"1.5",3)" ( identifier , (string_literal ""1.5"" " string_content ") , number_literal )))) , (binary_expression "iVar6 == 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        lVar3 = strtol(pcVar2,(char **)0x0,10);\n        if (lVar3 == 0) {\n          cmdline_error("Unrecognised suboption \"-sercfg %s\"");\n        }\n        else {\n          conf_set_int(conf,0x3a,lVar3);\n        }\n      }" else (compound_statement "{\n        lVar3 = strtol(pcVar2,(char **)0x0,10);\n        if (lVar3 == 0) {\n          cmdline_error("Unrecognised suboption \"-sercfg %s\"");\n        }\n        else {\n          conf_set_int(conf,0x3a,lVar3);\n        }\n      }" { (expression_statement "lVar3 = strtol(pcVar2,(char **)0x0,10);" (assignment_expression "lVar3 = strtol(pcVar2,(char **)0x0,10)" identifier = (call_expression "strtol(pcVar2,(char **)0x0,10)" identifier (argument_list "(pcVar2,(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 (lVar3 == 0) {\n          cmdline_error("Unrecognised suboption \"-sercfg %s\"");\n        }\n        else {\n          conf_set_int(conf,0x3a,lVar3);\n        }" if (parenthesized_expression "(lVar3 == 0)" ( (binary_expression "lVar3 == 0" identifier == number_literal) )) (compound_statement "{\n          cmdline_error("Unrecognised suboption \"-sercfg %s\"");\n        }" { (expression_statement "cmdline_error("Unrecognised suboption \"-sercfg %s\"");" (call_expression "cmdline_error("Unrecognised suboption \"-sercfg %s\"")" identifier (argument_list "("Unrecognised suboption \"-sercfg %s\"")" ( (string_literal ""Unrecognised suboption \"-sercfg %s\""" " string_content escape_sequence string_content escape_sequence ") ))) ;) }) (else_clause "else {\n          conf_set_int(conf,0x3a,lVar3);\n        }" else (compound_statement "{\n          conf_set_int(conf,0x3a,lVar3);\n        }" { (expression_statement "conf_set_int(conf,0x3a,lVar3);" (call_expression "conf_set_int(conf,0x3a,lVar3)" identifier (argument_list "(conf,0x3a,lVar3)" ( identifier , number_literal , identifier ))) ;) }))) }))))) })) (expression_statement "iVar7 = strcmp(p,"-sessionlog");" (assignment_expression "iVar7 = strcmp(p,"-sessionlog")" identifier = (call_expression "strcmp(p,"-sessionlog")" identifier (argument_list "(p,"-sessionlog")" ( identifier , (string_literal ""-sessionlog"" " string_content ") )))) ;) (if_statement "if (iVar7 == 0) {\n      if (((byte)cmdline_tooltype & 1) != 0) goto LAB_000161c3;\n      goto LAB_0001722b;\n    }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n      if (((byte)cmdline_tooltype & 1) != 0) goto LAB_000161c3;\n      goto LAB_0001722b;\n    }" { (if_statement "if (((byte)cmdline_tooltype & 1) != 0) goto LAB_000161c3;" if (parenthesized_expression "(((byte)cmdline_tooltype & 1) != 0)" ( (binary_expression "((byte)cmdline_tooltype & 1) != 0" (parenthesized_expression "((byte)cmdline_tooltype & 1)" ( (binary_expression "(byte)cmdline_tooltype & 1" (cast_expression "(byte)cmdline_tooltype" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_000161c3;" goto statement_identifier ;)) (goto_statement "goto LAB_0001722b;" goto statement_identifier ;) })) (expression_statement "iVar7 = strcmp(p,"-sshlog");" (assignment_expression "iVar7 = strcmp(p,"-sshlog")" identifier = (call_expression "strcmp(p,"-sshlog")" identifier (argument_list "(p,"-sshlog")" ( identifier , (string_literal ""-sshlog"" " string_content ") )))) ;) (if_statement "if (iVar7 != 0) goto LAB_000173ff;" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000173ff;" goto statement_identifier ;)) (labeled_statement "LAB_000173c4:\n    if (((byte)cmdline_tooltype & 2) != 0) goto LAB_000161c3;" statement_identifier : (if_statement "if (((byte)cmdline_tooltype & 2) != 0) goto LAB_000161c3;" if (parenthesized_expression "(((byte)cmdline_tooltype & 2) != 0)" ( (binary_expression "((byte)cmdline_tooltype & 2) != 0" (parenthesized_expression "((byte)cmdline_tooltype & 2)" ( (binary_expression "(byte)cmdline_tooltype & 2" (cast_expression "(byte)cmdline_tooltype" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_000161c3;" goto statement_identifier ;))) (if_statement "if (need_save != 0) {\nLAB_00016123:\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 "{\nLAB_00016123:\n      cmdline_save_param(p,value,0);\n      return 2;\n    }" { (labeled_statement "LAB_00016123:\n      cmdline_save_param(p,value,0);" statement_identifier : (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 ;) })) }) (else_clause "else {\n    iVar8 = strcmp(p,"-sessionlog");\n    if (iVar8 != 0) {\n      iVar8 = strcmp(p,"-sshlog");\n      if (iVar8 != 0) goto LAB_00017404;\nLAB_000173b1:\n      if (value == (char *)0x0) {\n        return -2;\n      }\n      if (need_save < 0) {\n        return 2;\n      }\n      goto LAB_000173c4;\n    }\n    if (value == (char *)0x0) {\n      return -2;\n    }\n    if (need_save < 0) {\n      return 2;\n    }\n    if (((byte)cmdline_tooltype & 1) != 0) goto LAB_000161c3;\n    if (need_save != 0) goto LAB_00016123;\nLAB_0001722b:\n    pFVar5 = filename_from_str(value);\n    conf_set_filename(conf,0x77,pFVar5);\n    conf_set_int(conf,0x78,2);\n    filename_free(pFVar5);\n    iVar7 = strcmp(p,"-sshlog");\n    if (iVar7 != 0) {\nLAB_000173ff:\n      iVar7 = 2;\nLAB_00017404:\n      iVar8 = strcmp(p,"-sshrawlog");\n      if (iVar8 != 0) {\n        iVar8 = strcmp(p,"-proxycmd");\n        if (iVar8 != 0) {\n          return iVar7;\n        }\n        if (value == (char *)0x0) {\n          return -2;\n        }\n        if (need_save < 0) {\n          return 2;\n        }\n        if (((byte)cmdline_tooltype & 2) != 0) goto LAB_000161c3;\n        if (need_save != 0) goto LAB_00016123;\n        goto LAB_00017304;\n      }\n      goto LAB_000173b1;\n    }\n    if (((byte)cmdline_tooltype & 2) != 0) goto LAB_000161c3;\n  }" else (compound_statement "{\n    iVar8 = strcmp(p,"-sessionlog");\n    if (iVar8 != 0) {\n      iVar8 = strcmp(p,"-sshlog");\n      if (iVar8 != 0) goto LAB_00017404;\nLAB_000173b1:\n      if (value == (char *)0x0) {\n        return -2;\n      }\n      if (need_save < 0) {\n        return 2;\n      }\n      goto LAB_000173c4;\n    }\n    if (value == (char *)0x0) {\n      return -2;\n    }\n    if (need_save < 0) {\n      return 2;\n    }\n    if (((byte)cmdline_tooltype & 1) != 0) goto LAB_000161c3;\n    if (need_save != 0) goto LAB_00016123;\nLAB_0001722b:\n    pFVar5 = filename_from_str(value);\n    conf_set_filename(conf,0x77,pFVar5);\n    conf_set_int(conf,0x78,2);\n    filename_free(pFVar5);\n    iVar7 = strcmp(p,"-sshlog");\n    if (iVar7 != 0) {\nLAB_000173ff:\n      iVar7 = 2;\nLAB_00017404:\n      iVar8 = strcmp(p,"-sshrawlog");\n      if (iVar8 != 0) {\n        iVar8 = strcmp(p,"-proxycmd");\n        if (iVar8 != 0) {\n          return iVar7;\n        }\n        if (value == (char *)0x0) {\n          return -2;\n        }\n        if (need_save < 0) {\n          return 2;\n        }\n        if (((byte)cmdline_tooltype & 2) != 0) goto LAB_000161c3;\n        if (need_save != 0) goto LAB_00016123;\n        goto LAB_00017304;\n      }\n      goto LAB_000173b1;\n    }\n    if (((byte)cmdline_tooltype & 2) != 0) goto LAB_000161c3;\n  }" { (expression_statement "iVar8 = strcmp(p,"-sessionlog");" (assignment_expression "iVar8 = strcmp(p,"-sessionlog")" identifier = (call_expression "strcmp(p,"-sessionlog")" identifier (argument_list "(p,"-sessionlog")" ( identifier , (string_literal ""-sessionlog"" " string_content ") )))) ;) (if_statement "if (iVar8 != 0) {\n      iVar8 = strcmp(p,"-sshlog");\n      if (iVar8 != 0) goto LAB_00017404;\nLAB_000173b1:\n      if (value == (char *)0x0) {\n        return -2;\n      }\n      if (need_save < 0) {\n        return 2;\n      }\n      goto LAB_000173c4;\n    }" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar8 = strcmp(p,"-sshlog");\n      if (iVar8 != 0) goto LAB_00017404;\nLAB_000173b1:\n      if (value == (char *)0x0) {\n        return -2;\n      }\n      if (need_save < 0) {\n        return 2;\n      }\n      goto LAB_000173c4;\n    }" { (expression_statement "iVar8 = strcmp(p,"-sshlog");" (assignment_expression "iVar8 = strcmp(p,"-sshlog")" identifier = (call_expression "strcmp(p,"-sshlog")" identifier (argument_list "(p,"-sshlog")" ( identifier , (string_literal ""-sshlog"" " string_content ") )))) ;) (if_statement "if (iVar8 != 0) goto LAB_00017404;" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00017404;" goto statement_identifier ;)) (labeled_statement "LAB_000173b1:\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 ;) })) (goto_statement "goto LAB_000173c4;" 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 ;) })) (if_statement "if (((byte)cmdline_tooltype & 1) != 0) goto LAB_000161c3;" if (parenthesized_expression "(((byte)cmdline_tooltype & 1) != 0)" ( (binary_expression "((byte)cmdline_tooltype & 1) != 0" (parenthesized_expression "((byte)cmdline_tooltype & 1)" ( (binary_expression "(byte)cmdline_tooltype & 1" (cast_expression "(byte)cmdline_tooltype" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_000161c3;" goto statement_identifier ;)) (if_statement "if (need_save != 0) goto LAB_00016123;" if (parenthesized_expression "(need_save != 0)" ( (binary_expression "need_save != 0" identifier != number_literal) )) (goto_statement "goto LAB_00016123;" goto statement_identifier ;)) (labeled_statement "LAB_0001722b:\n    pFVar5 = filename_from_str(value);" statement_identifier : (expression_statement "pFVar5 = filename_from_str(value);" (assignment_expression "pFVar5 = filename_from_str(value)" identifier = (call_expression "filename_from_str(value)" identifier (argument_list "(value)" ( identifier )))) ;)) (expression_statement "conf_set_filename(conf,0x77,pFVar5);" (call_expression "conf_set_filename(conf,0x77,pFVar5)" identifier (argument_list "(conf,0x77,pFVar5)" ( 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(pFVar5);" (call_expression "filename_free(pFVar5)" identifier (argument_list "(pFVar5)" ( identifier ))) ;) (expression_statement "iVar7 = strcmp(p,"-sshlog");" (assignment_expression "iVar7 = strcmp(p,"-sshlog")" identifier = (call_expression "strcmp(p,"-sshlog")" identifier (argument_list "(p,"-sshlog")" ( identifier , (string_literal ""-sshlog"" " string_content ") )))) ;) (if_statement "if (iVar7 != 0) {\nLAB_000173ff:\n      iVar7 = 2;\nLAB_00017404:\n      iVar8 = strcmp(p,"-sshrawlog");\n      if (iVar8 != 0) {\n        iVar8 = strcmp(p,"-proxycmd");\n        if (iVar8 != 0) {\n          return iVar7;\n        }\n        if (value == (char *)0x0) {\n          return -2;\n        }\n        if (need_save < 0) {\n          return 2;\n        }\n        if (((byte)cmdline_tooltype & 2) != 0) goto LAB_000161c3;\n        if (need_save != 0) goto LAB_00016123;\n        goto LAB_00017304;\n      }\n      goto LAB_000173b1;\n    }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_000173ff:\n      iVar7 = 2;\nLAB_00017404:\n      iVar8 = strcmp(p,"-sshrawlog");\n      if (iVar8 != 0) {\n        iVar8 = strcmp(p,"-proxycmd");\n        if (iVar8 != 0) {\n          return iVar7;\n        }\n        if (value == (char *)0x0) {\n          return -2;\n        }\n        if (need_save < 0) {\n          return 2;\n        }\n        if (((byte)cmdline_tooltype & 2) != 0) goto LAB_000161c3;\n        if (need_save != 0) goto LAB_00016123;\n        goto LAB_00017304;\n      }\n      goto LAB_000173b1;\n    }" { (labeled_statement "LAB_000173ff:\n      iVar7 = 2;" statement_identifier : (expression_statement "iVar7 = 2;" (assignment_expression "iVar7 = 2" identifier = number_literal) ;)) (labeled_statement "LAB_00017404:\n      iVar8 = strcmp(p,"-sshrawlog");" statement_identifier : (expression_statement "iVar8 = strcmp(p,"-sshrawlog");" (assignment_expression "iVar8 = strcmp(p,"-sshrawlog")" identifier = (call_expression "strcmp(p,"-sshrawlog")" identifier (argument_list "(p,"-sshrawlog")" ( identifier , (string_literal ""-sshrawlog"" " string_content ") )))) ;)) (if_statement "if (iVar8 != 0) {\n        iVar8 = strcmp(p,"-proxycmd");\n        if (iVar8 != 0) {\n          return iVar7;\n        }\n        if (value == (char *)0x0) {\n          return -2;\n        }\n        if (need_save < 0) {\n          return 2;\n        }\n        if (((byte)cmdline_tooltype & 2) != 0) goto LAB_000161c3;\n        if (need_save != 0) goto LAB_00016123;\n        goto LAB_00017304;\n      }" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (compound_statement "{\n        iVar8 = strcmp(p,"-proxycmd");\n        if (iVar8 != 0) {\n          return iVar7;\n        }\n        if (value == (char *)0x0) {\n          return -2;\n        }\n        if (need_save < 0) {\n          return 2;\n        }\n        if (((byte)cmdline_tooltype & 2) != 0) goto LAB_000161c3;\n        if (need_save != 0) goto LAB_00016123;\n        goto LAB_00017304;\n      }" { (expression_statement "iVar8 = strcmp(p,"-proxycmd");" (assignment_expression "iVar8 = strcmp(p,"-proxycmd")" identifier = (call_expression "strcmp(p,"-proxycmd")" identifier (argument_list "(p,"-proxycmd")" ( identifier , (string_literal ""-proxycmd"" " string_content ") )))) ;) (if_statement "if (iVar8 != 0) {\n          return iVar7;\n        }" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (compound_statement "{\n          return iVar7;\n        }" { (return_statement "return iVar7;" 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 ;) })) (if_statement "if (((byte)cmdline_tooltype & 2) != 0) goto LAB_000161c3;" if (parenthesized_expression "(((byte)cmdline_tooltype & 2) != 0)" ( (binary_expression "((byte)cmdline_tooltype & 2) != 0" (parenthesized_expression "((byte)cmdline_tooltype & 2)" ( (binary_expression "(byte)cmdline_tooltype & 2" (cast_expression "(byte)cmdline_tooltype" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_000161c3;" goto statement_identifier ;)) (if_statement "if (need_save != 0) goto LAB_00016123;" if (parenthesized_expression "(need_save != 0)" ( (binary_expression "need_save != 0" identifier != number_literal) )) (goto_statement "goto LAB_00016123;" goto statement_identifier ;)) (goto_statement "goto LAB_00017304;" goto statement_identifier ;) })) (goto_statement "goto LAB_000173b1;" goto statement_identifier ;) })) (if_statement "if (((byte)cmdline_tooltype & 2) != 0) goto LAB_000161c3;" if (parenthesized_expression "(((byte)cmdline_tooltype & 2) != 0)" ( (binary_expression "((byte)cmdline_tooltype & 2) != 0" (parenthesized_expression "((byte)cmdline_tooltype & 2)" ( (binary_expression "(byte)cmdline_tooltype & 2" (cast_expression "(byte)cmdline_tooltype" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_000161c3;" goto statement_identifier ;)) }))) (expression_statement "pFVar5 = filename_from_str(value);" (assignment_expression "pFVar5 = filename_from_str(value)" identifier = (call_expression "filename_from_str(value)" identifier (argument_list "(value)" ( identifier )))) ;) (expression_statement "conf_set_filename(conf,0x77,pFVar5);" (call_expression "conf_set_filename(conf,0x77,pFVar5)" identifier (argument_list "(conf,0x77,pFVar5)" ( identifier , number_literal , identifier ))) ;) (expression_statement "iVar7 = strcmp(p,"-sshlog");" (assignment_expression "iVar7 = 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)(iVar7 == 0));" (call_expression "conf_set_int(conf,0x78,4 - (uint)(iVar7 == 0))" identifier (argument_list "(conf,0x78,4 - (uint)(iVar7 == 0))" ( identifier , number_literal , (binary_expression "4 - (uint)(iVar7 == 0)" number_literal - (call_expression "(uint)(iVar7 == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )))) ))) ;) (expression_statement "filename_free(pFVar5);" (call_expression "filename_free(pFVar5)" identifier (argument_list "(pFVar5)" ( identifier ))) ;) (expression_statement "iVar7 = strcmp(p,"-proxycmd");" (assignment_expression "iVar7 = strcmp(p,"-proxycmd")" identifier = (call_expression "strcmp(p,"-proxycmd")" identifier (argument_list "(p,"-proxycmd")" ( identifier , (string_literal ""-proxycmd"" " string_content ") )))) ;) (if_statement "if (iVar7 != 0) {\n    return 2;\n  }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n    return 2;\n  }" { (return_statement "return 2;" return number_literal ;) })) (if_statement "if (((byte)cmdline_tooltype & 2) == 0) {\nLAB_00017304:\n    conf_set_int(conf,0xd,5);\n    conf_set_str(conf,0x12,value);\n    return 2;\n  }" if (parenthesized_expression "(((byte)cmdline_tooltype & 2) == 0)" ( (binary_expression "((byte)cmdline_tooltype & 2) == 0" (parenthesized_expression "((byte)cmdline_tooltype & 2)" ( (binary_expression "(byte)cmdline_tooltype & 2" (cast_expression "(byte)cmdline_tooltype" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_00017304:\n    conf_set_int(conf,0xd,5);\n    conf_set_str(conf,0x12,value);\n    return 2;\n  }" { (labeled_statement "LAB_00017304:\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 ;) })) (labeled_statement "LAB_000161c3:\n  cmdline_error("option \"%s\" not available in this tool");" statement_identifier : (expression_statement "cmdline_error("option \"%s\" not available in this tool");" (call_expression "cmdline_error("option \"%s\" not available in this tool")" identifier (argument_list "("option \"%s\" not available in this tool")" ( (string_literal ""option \"%s\" not available in this tool"" " string_content escape_sequence string_content escape_sequence string_content ") ))) ;)) (return_statement "return 2;" return number_literal ;) })))
(translation_unit "undefined4 FUN_00015b60(byte *param_1,char *param_2,int param_3)\n\n{\n  char cVar1;\n  FILE *__stream;\n  int iVar2;\n  long lVar3;\n  char *pcVar4;\n  int iVar5;\n  uint uVar6;\n  undefined4 uVar7;\n  char *pcVar8;\n  byte *pbVar9;\n  int iVar10;\n  byte *pbVar11;\n  bool bVar12;\n  bool bVar13;\n  undefined1 uVar14;\n  bool bVar15;\n  undefined1 uVar16;\n  byte bVar17;\n  undefined1 auStack_2c [8];\n  int local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  bVar17 = 0;\n  iVar5 = 6;\n  uStack_14 = 0x15b6e;\n  bVar12 = &stack0xfffffff0 < (undefined1 *)0x1c;\n  bVar15 = &stack0x00000000 == (undefined1 *)0x2c;\n  pbVar9 = param_1;\n  pbVar11 = (byte *)"-load";\n  do {\n    if (iVar5 == 0) break;\n    iVar5 = iVar5 + -1;\n    bVar12 = *pbVar9 < *pbVar11;\n    bVar15 = *pbVar9 == *pbVar11;\n    pbVar9 = pbVar9 + 1;\n    pbVar11 = pbVar11 + 1;\n  } while (bVar15);\n  bVar13 = false;\n  bVar12 = (!bVar12 && !bVar15) == bVar12;\n  if (bVar12) {\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    thunk_FUN_000249b0();\n    DAT_0006f2f4 = 1;\n    DAT_0006f2f8 = FUN_00019990();\n    return 2;\n  }\n  iVar5 = 5;\n  pbVar9 = param_1;\n  pbVar11 = &DAT_0004b0b5;\n  do {\n    if (iVar5 == 0) break;\n    iVar5 = iVar5 + -1;\n    bVar13 = *pbVar9 < *pbVar11;\n    bVar12 = *pbVar9 == *pbVar11;\n    pbVar9 = pbVar9 + 1;\n    pbVar11 = pbVar11 + 1;\n  } while (bVar12);\n  bVar15 = false;\n  bVar12 = (!bVar13 && !bVar12) == bVar13;\n  if (bVar12) {\n    if (param_3 < 0) {\n      return 1;\n    }\n    if ((DAT_0006f0a0 & 3) == 0) {\n      if (param_3 == 0) {\n        DAT_0006f2dc = 3;\n        DAT_0006f2e4 = 0x16;\nLAB_00015c0d:\n        FUN_000183f0();\n        FUN_000183f0();\n        return 1;\n      }\n      goto LAB_00015c78;\n    }\n    goto LAB_00015d50;\n  }\n  iVar5 = 8;\n  pbVar9 = param_1;\n  pbVar11 = (byte *)"-telnet";\n  do {\n    if (iVar5 == 0) break;\n    iVar5 = iVar5 + -1;\n    bVar15 = *pbVar9 < *pbVar11;\n    bVar12 = *pbVar9 == *pbVar11;\n    pbVar9 = pbVar9 + 1;\n    pbVar11 = pbVar11 + 1;\n  } while (bVar12);\n  bVar13 = false;\n  bVar12 = (!bVar15 && !bVar12) == bVar15;\n  if (bVar12) {\n    if (param_3 < 0) {\n      return 1;\n    }\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n    if (param_3 == 0) {\n      DAT_0006f2dc = 1;\n      DAT_0006f2e4 = 0x17;\n      goto LAB_00015c0d;\n    }\n    goto LAB_00015c78;\n  }\n  iVar5 = 8;\n  pbVar9 = param_1;\n  pbVar11 = (byte *)"-rlogin";\n  do {\n    if (iVar5 == 0) break;\n    iVar5 = iVar5 + -1;\n    bVar13 = *pbVar9 < *pbVar11;\n    bVar12 = *pbVar9 == *pbVar11;\n    pbVar9 = pbVar9 + 1;\n    pbVar11 = pbVar11 + 1;\n  } while (bVar12);\n  bVar15 = false;\n  bVar12 = (!bVar13 && !bVar12) == bVar13;\n  if (bVar12) {\n    if (param_3 < 0) {\n      return 1;\n    }\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n    if (param_3 == 0) {\n      DAT_0006f2dc = 2;\n      DAT_0006f2e4 = 0x201;\n      goto LAB_00015c0d;\n    }\n    goto LAB_00015c78;\n  }\n  iVar5 = 5;\n  pbVar9 = param_1;\n  pbVar11 = &DAT_0004b0ca;\n  do {\n    if (iVar5 == 0) break;\n    iVar5 = iVar5 + -1;\n    bVar15 = *pbVar9 < *pbVar11;\n    bVar12 = *pbVar9 == *pbVar11;\n    pbVar9 = pbVar9 + 1;\n    pbVar11 = pbVar11 + 1;\n  } while (bVar12);\n  bVar13 = false;\n  bVar12 = (!bVar15 && !bVar12) == bVar15;\n  if (bVar12) {\n    if (param_3 < 0) {\n      return 1;\n    }\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n    if (param_3 != 0) goto LAB_00015c78;\n    uVar14 = auStack_2c < (undefined1 *)0x4;\n    uVar16 = &stack0x00000000 == (undefined1 *)0x30;\n    DAT_0006f2dc = 0;\n    FUN_000183f0();\n    iVar5 = 8;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)"-serial";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);\n    bVar12 = false;\n    bVar15 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n    if (bVar15) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      goto LAB_00015dd0;\n    }\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b0d7;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar12 = *pbVar9 < *pbVar11;\n      bVar15 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar15);\n    bVar12 = (!bVar12 && !bVar15) == bVar12;\n    if (bVar12) goto LAB_00015e28;\nLAB_00015e31:\n    uVar7 = 1;\n  }\n  else {\n    iVar5 = 8;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)"-serial";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar13 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + 1;\n      pbVar11 = pbVar11 + 1;\n    } while (bVar12);\n    bVar15 = false;\n    bVar12 = (!bVar13 && !bVar12) == bVar13;\n    if (bVar12) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\nLAB_00015dd0:\n      DAT_0006f2dc = 4;\n      FUN_000183f0();\n      FUN_00017e80();\n      uVar14 = (undefined1 *)0xfffffff3 < &stack0xffffffc4;\n      uVar16 = &stack0x00000000 == (undefined1 *)0x30;\n      FUN_00018530();\n      iVar5 = 3;\n      pbVar9 = param_1;\n      pbVar11 = &DAT_0004b0d7;\n      do {\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        uVar14 = *pbVar9 < *pbVar11;\n        uVar16 = *pbVar9 == *pbVar11;\n        pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n      } while ((bool)uVar16);\n      bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n      if (bVar12) goto LAB_00015e28;\n      goto LAB_00015e31;\n    }\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b0d7;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + 1;\n      pbVar11 = pbVar11 + 1;\n    } while (bVar12);\n    if ((!bVar15 && !bVar12) == bVar15) {\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_00015e28:\n      DAT_0006f2e8 = DAT_0006f2e8 | 1;\n      bVar12 = DAT_0006f2e8 == 0;\n      goto LAB_00015e31;\n    }\n    uVar7 = 0;\n    bVar12 = true;\n  }\n  bVar15 = false;\n  iVar5 = 3;\n  pbVar9 = param_1;\n  pbVar11 = (byte *)0x53a29;\n  do {\n    if (iVar5 == 0) break;\n    iVar5 = iVar5 + -1;\n    bVar15 = *pbVar9 < *pbVar11;\n    bVar12 = *pbVar9 == *pbVar11;\n    pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n    pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n  } while (bVar12);\n  bVar13 = false;\n  bVar12 = (!bVar15 && !bVar12) == bVar15;\n  if (bVar12) {\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n    if (param_3 != 0) goto LAB_00016123;\n    uVar14 = auStack_2c < (undefined1 *)0x4;\n    uVar16 = &stack0x00000000 == (undefined1 *)0x30;\n    FUN_00018530();\n    iVar5 = 9;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)"-loghost";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);\n    bVar12 = false;\n    bVar15 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n    if (bVar15) {\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n      goto LAB_00015ec5;\n    }\n    iVar5 = 9;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)"-hostkey";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar12 = *pbVar9 < *pbVar11;\n      bVar15 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar15);\n    bVar12 = (!bVar12 && !bVar15) == bVar12;\n    if (bVar12) goto LAB_00016218;\nLAB_00016248:\n    uVar7 = 2;\nLAB_0001624d:\n    bVar15 = false;\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b0ec;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar12 = (!bVar15 && !bVar12) == bVar15;\n    if (bVar12) {\nLAB_00016647:\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;\n      bVar12 = param_3 == 0;\n      if (!bVar12) goto LAB_00016123;\n      goto LAB_00015f8f;\n    }\nLAB_0001626b:\n    bVar15 = false;\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b0ef;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar13 = false;\n    bVar12 = (!bVar15 && !bVar12) == bVar15;\n    if (bVar12) goto LAB_00016647;\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)0x53a3b;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar13 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar15 = false;\n    bVar12 = (!bVar13 && !bVar12) == bVar13;\n    if (bVar12) goto LAB_00016647;\n    iVar5 = 4;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b0fd;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar12 = (!bVar15 && !bVar12) == bVar15;\n    if (!bVar12) goto LAB_00016698;\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;\n    if (param_3 != 0) goto LAB_00016123;\nLAB_000162ed:\n    iVar5 = FUN_00019140();\n    if (iVar5 == 0) {\n      FUN_00044820();\n      return 2;\n    }\n    uVar7 = 2;\n    FUN_00019ef0();\n    FUN_00018530();\n    strtol((char *)(iVar5 + 1),(char **)0x0,10);\n    uVar14 = (undefined1 *)0xfffffff3 < &stack0xffffffc4;\n    uVar16 = &stack0x00000000 == (undefined1 *)0x30;\n    FUN_000183f0();\n    FUN_0001a110();\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b101;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);\n    bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n    if (!bVar12) goto LAB_000166e0;\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;\nLAB_0001639b:\n    iVar10 = 0;\n    iVar5 = 0;\n    __stream = fopen64(param_2,"r");\n    local_24 = 0;\n    if (__stream == (FILE *)0x0) {\n      FUN_00044820();\n      return 2;\n    }\n    while (iVar2 = fgetc(__stream), iVar2 != -1) {\n      if (iVar10 < local_24) {\n        *(char *)(iVar5 + iVar10) = (char)iVar2;\n      }\n      else {\n        local_24 = iVar10 + 0x200;\n        local_20 = iVar2;\n        iVar5 = FUN_00019c80();\n        *(char *)(iVar5 + iVar10) = (char)local_20;\n      }\n      iVar10 = iVar10 + 1;\n    }\n    if (iVar10 < local_24) {\n      *(undefined1 *)(iVar5 + iVar10) = 0;\n    }\n    else {\n      iVar5 = FUN_00019c80();\n      *(undefined1 *)(iVar5 + iVar10) = 0;\n    }\n    uVar7 = 2;\n    fclose(__stream);\n    FUN_00018530();\n    FUN_00018530();\n    uVar14 = (undefined1 *)0xfffffff3 < &stack0xffffffc4;\n    uVar16 = &stack0x00000000 == (undefined1 *)0x30;\n    FUN_000183f0();\n    FUN_0001a110();\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b104;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);\n    bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n    if (!bVar12) goto LAB_00016777;\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\nLAB_000164a7:\n    strtol(param_2,(char **)0x0,10);\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-pw");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\nLAB_000164f6:\n      iVar5 = FUN_00017cd0();\n      if (iVar5 == 3) {\n        DAT_0006f0a8 = FUN_00019990();\n        iVar5 = -1;\n        pcVar8 = param_2;\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          cVar1 = *pcVar8;\n          pcVar8 = pcVar8 + (uint)bVar17 * -2 + 1;\n        } while (cVar1 != '\0');\n        FUN_0001a1f0();\n      }\n      else {\n        FUN_00044820();\n      }\n      iVar5 = strcmp((char *)param_1,"-agent");\n      if ((iVar5 == 0) || (iVar5 = strcmp((char *)param_1,"-pagent"), iVar5 == 0))\n      goto LAB_00015d3a;\n      uVar7 = 2;\n      iVar5 = strcmp((char *)param_1,"-pageant");\n      if (iVar5 == 0) goto LAB_0001688c;\n    }\n    else {\n      iVar5 = strcmp((char *)param_1,"-agent");\n      if (iVar5 == 0) {\nLAB_00015d3a:\n        if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n        goto LAB_000168a1;\n      }\n      uVar7 = 2;\n      iVar5 = strcmp((char *)param_1,"-pagent");\n      if (iVar5 == 0) goto LAB_0001688c;\nLAB_0001685f:\n      iVar5 = strcmp((char *)param_1,"-pageant");\n      if (iVar5 == 0) goto LAB_00016884;\n    }\n    iVar5 = strcmp((char *)param_1,"-noagent");\n    if ((iVar5 == 0) || (iVar5 = strcmp((char *)param_1,"-nopagent"), iVar5 == 0)) {\nLAB_00016e5e:\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_00016e44:\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\n      goto LAB_000168e1;\n    }\nLAB_000165eb:\n    iVar5 = strcmp((char *)param_1,"-nopageant");\n    if (iVar5 == 0) goto LAB_00016e5e;\n    iVar5 = strcmp((char *)param_1,"-A");\n    if (iVar5 != 0) {\n      iVar5 = strcmp((char *)param_1,"-a");\n      if (iVar5 != 0) goto LAB_00016f0f;\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_0001700b;\n    }\n    if (param_3 < 0) {\n      return 1;\n    }\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n    if (param_3 != 0) goto LAB_00015c78;\nLAB_00016921:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-a");\n    if (iVar5 != 0) {\n      uVar7 = 1;\n      iVar5 = strcmp((char *)param_1,"-X");\n      if (iVar5 == 0) goto LAB_00016f38;\nLAB_00016f97:\n      iVar5 = strcmp((char *)param_1,"-x");\n      if (iVar5 != 0) goto LAB_0001704f;\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_00016fc4:\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\n      goto LAB_000169e4;\n    }\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\nLAB_00016961:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-X");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      goto LAB_000169a1;\n    }\n    uVar7 = 1;\n    iVar5 = strcmp((char *)param_1,"-x");\n    if (iVar5 == 0) goto LAB_00016fc4;\nLAB_0001704f:\n    iVar5 = strcmp((char *)param_1,"-t");\n    if (iVar5 == 0) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_0001707c;\n    }\nLAB_000177b1:\n    iVar5 = strcmp((char *)param_1,"-T");\n    if (iVar5 != 0) goto LAB_00017759;\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_0001770d:\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n    if (param_3 != 0) goto LAB_00017091;\nLAB_00016a67:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-N");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\nLAB_00016aa7:\n      FUN_000183f0();\n      iVar5 = strcmp((char *)param_1,"-C");\n      if (iVar5 == 0) {\n        if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n        goto LAB_00016ae7;\n      }\n      uVar7 = 1;\n      iVar5 = strcmp((char *)param_1,"-1");\n      if (iVar5 != 0) goto LAB_00017647;\nLAB_000175ed:\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\n      goto LAB_00016b27;\n    }\n    uVar7 = 1;\n    iVar5 = strcmp((char *)param_1,"-C");\n    if (iVar5 == 0) goto LAB_0001762d;\nLAB_00017679:\n    iVar5 = strcmp((char *)param_1,"-1");\n    if (iVar5 == 0) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_000175ed;\n    }\nLAB_00017647:\n    iVar5 = strcmp((char *)param_1,"-2");\n    if (iVar5 == 0) {\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_000175ad:\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n      if (param_3 != 0) {\nLAB_00015c78:\n        FUN_00015950();\n        return 1;\n      }\nLAB_00016b67:\n      uVar7 = 1;\n      FUN_000183f0();\n    }\n  }\n  else {\n    iVar5 = 9;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)"-loghost";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar13 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar15 = false;\n    bVar12 = (!bVar13 && !bVar12) == bVar13;\n    if (!bVar12) {\n      iVar5 = 9;\n      pbVar9 = param_1;\n      pbVar11 = (byte *)"-hostkey";\n      do {\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        bVar15 = *pbVar9 < *pbVar11;\n        bVar12 = *pbVar9 == *pbVar11;\n        pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n      } while (bVar12);\n      bVar12 = (!bVar15 && !bVar12) == bVar15;\n      if (bVar12) {\n        if (param_2 == (char *)0x0) {\n          return 0xfffffffe;\n        }\n        if (param_3 < 0) {\n          return 2;\n        }\nLAB_00016218:\n        if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n        if (param_3 != 0) goto LAB_00016123;\n        goto LAB_00015f0d;\n      }\n      goto LAB_0001624d;\n    }\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n    if (param_3 != 0) goto LAB_00016123;\nLAB_00015ec5:\n    uVar14 = auStack_2c < (undefined1 *)0x4;\n    uVar16 = &stack0x00000000 == (undefined1 *)0x30;\n    FUN_00018530();\n    iVar5 = 9;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)"-hostkey";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);\n    bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n    if (!bVar12) goto LAB_00016248;\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\nLAB_00015f0d:\n    FUN_00019990();\n    iVar5 = FUN_0001a210();\n    uVar14 = 0;\n    uVar16 = iVar5 == 0;\n    if ((bool)uVar16) {\n      FUN_00044820();\n      FUN_0001a110();\n      return 2;\n    }\n    uVar7 = 2;\n    FUN_000185e0();\n    FUN_0001a110();\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b0ec;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);\n    bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n    if (!bVar12) goto LAB_0001626b;\n    bVar12 = (DAT_0006f0a0 & 3) == 0;\n    if (!bVar12) goto LAB_000161c3;\nLAB_00015f8f:\n    bVar15 = false;\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)0x53a3b;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    if ((!bVar15 && !bVar12) == bVar15) {\n      FUN_00019ef0();\n      FUN_00019990();\n    }\n    else {\n      iVar5 = FUN_00019140();\n      if (iVar5 == 0) {\n        FUN_00044820();\n        return 2;\n      }\n      do {\n        iVar5 = FUN_00019140();\n      } while (iVar5 != 0);\n      FUN_00019ef0();\n      FUN_00019990();\n    }\n    uVar14 = (undefined1 *)0xffffffef < &stack0xffffffc4;\n    uVar16 = &stack0x00000000 == (undefined1 *)0x2c;\n    uVar7 = 2;\n    FUN_000185e0();\n    FUN_0001a110();\n    FUN_0001a110();\n    iVar5 = 4;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b0fd;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);\n    bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n    if (bVar12) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;\n      goto LAB_000162ed;\n    }\nLAB_00016698:\n    bVar15 = false;\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b101;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar12 = (!bVar15 && !bVar12) == bVar15;\n    if (bVar12) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;\n      if (param_3 != 0) goto LAB_00016123;\n      goto LAB_0001639b;\n    }\nLAB_000166e0:\n    bVar15 = false;\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b104;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar12 = (!bVar15 && !bVar12) == bVar15;\n    if (bVar12) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n      if (param_3 != 0) goto LAB_00016723;\n      goto LAB_000164a7;\n    }\nLAB_00016777:\n    bVar15 = false;\n    iVar5 = 4;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b107;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    if ((!bVar15 && !bVar12) == bVar15) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n      if (param_3 != 0) goto LAB_00016723;\n      goto LAB_000164f6;\n    }\n    iVar5 = strcmp((char *)param_1,"-agent");\n    if ((iVar5 != 0) && (iVar5 = strcmp((char *)param_1,"-pagent"), iVar5 != 0)) goto LAB_0001685f;\nLAB_00016884:\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_0001688c:\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n    if (param_3 != 0) goto LAB_00015c78;\nLAB_000168a1:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-noagent");\n    if (iVar5 != 0) {\n      uVar7 = 1;\n      iVar5 = strcmp((char *)param_1,"-nopagent");\n      if (iVar5 != 0) goto LAB_000165eb;\n      goto LAB_00016e44;\n    }\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\nLAB_000168e1:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-A");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      goto LAB_00016921;\n    }\n    uVar7 = 1;\n    iVar5 = strcmp((char *)param_1,"-a");\n    if (iVar5 == 0) {\nLAB_0001700b:\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\n      goto LAB_00016961;\n    }\nLAB_00016f0f:\n    iVar5 = strcmp((char *)param_1,"-X");\n    if (iVar5 != 0) goto LAB_00016f97;\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_00016f38:\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n    if (param_3 != 0) goto LAB_00015c78;\nLAB_000169a1:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-x");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\nLAB_000169e4:\n      FUN_000183f0();\n      iVar5 = strcmp((char *)param_1,"-t");\n      if (iVar5 == 0) {\n        if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n        goto LAB_00016a27;\n      }\n      uVar7 = 1;\n      iVar5 = strcmp((char *)param_1,"-T");\n      if (iVar5 == 0) goto LAB_0001770d;\nLAB_00017759:\n      iVar5 = strcmp((char *)param_1,"-N");\n      if (iVar5 != 0) goto LAB_00017727;\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_000176cd:\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\n      goto LAB_00016aa7;\n    }\n    uVar7 = 1;\n    iVar5 = strcmp((char *)param_1,"-t");\n    if (iVar5 != 0) goto LAB_000177b1;\nLAB_0001707c:\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n    if (param_3 != 0) goto LAB_00017091;\nLAB_00016a27:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-T");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      goto LAB_00016a67;\n    }\n    uVar7 = 1;\n    iVar5 = strcmp((char *)param_1,"-N");\n    if (iVar5 == 0) goto LAB_000176cd;\nLAB_00017727:\n    iVar5 = strcmp((char *)param_1,"-C");\n    if (iVar5 != 0) goto LAB_00017679;\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_0001762d:\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n    if (param_3 != 0) goto LAB_00015c78;\nLAB_00016ae7:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-1");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\nLAB_00016b27:\n      FUN_000183f0();\n      iVar5 = strcmp((char *)param_1,"-2");\n      if (iVar5 == 0) {\n        if ((DAT_0006f0a0 & 2) != 0) {\nLAB_00015d50:\n          FUN_00044820();\n          return 1;\n        }\n        goto LAB_00016b67;\n      }\n    }\n    else {\n      iVar5 = strcmp((char *)param_1,"-2");\n      if (iVar5 == 0) goto LAB_000175ad;\n    }\n    uVar7 = 1;\n  }\n  iVar5 = strcmp((char *)param_1,"-i");\n  if (iVar5 == 0) {\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n    if (param_3 != 0) goto LAB_00016123;\n    FUN_00041790();\n    FUN_00018770();\n    FUN_00041820();\n    iVar5 = strcmp((char *)param_1,"-4");\n    if ((iVar5 == 0) || (iVar5 = strcmp((char *)param_1,"-ipv4"), iVar5 == 0)) goto LAB_00017485;\n    iVar5 = strcmp((char *)param_1,"-6");\n    if (iVar5 == 0) goto LAB_00016c88;\n    uVar7 = 2;\n    iVar5 = strcmp((char *)param_1,"-ipv6");\njoined_r0x000174dc:\n    if (iVar5 == 0) goto LAB_00016c88;\n  }\n  else {\n    iVar5 = strcmp((char *)param_1,"-4");\n    if ((iVar5 == 0) || (iVar5 = strcmp((char *)param_1,"-ipv4"), iVar5 == 0)) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\nLAB_00017091:\n        FUN_00015950();\n        return 1;\n      }\nLAB_00017485:\n      FUN_000183f0();\n      iVar5 = strcmp((char *)param_1,"-6");\n      if (iVar5 != 0) {\n        uVar7 = 1;\n        iVar5 = strcmp((char *)param_1,"-ipv6");\n        goto joined_r0x000174dc;\n      }\n    }\n    else {\n      iVar5 = strcmp((char *)param_1,"-6");\n      if ((iVar5 != 0) && (iVar5 = strcmp((char *)param_1,"-ipv6"), iVar5 != 0)) goto LAB_00016ca6;\n      if (param_3 < 0) {\n        return 1;\n      }\n      if (param_3 != 0) goto LAB_00017091;\n    }\nLAB_00016c88:\n    uVar7 = 1;\n    FUN_000183f0();\n  }\nLAB_00016ca6:\n  iVar5 = strcmp((char *)param_1,"-sercfg");\n  if (iVar5 == 0) {\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;\n    if (param_3 != 0) {\nLAB_00016723:\n      FUN_00015950();\n      return 2;\n    }\n    iVar5 = FUN_00017cd0();\n    pcVar8 = param_2;\n    if (iVar5 != 4) {\n      FUN_00044820();\n    }\n    for (; *pcVar8 != '\0'; pcVar8 = pcVar8 + iVar10 + iVar5) {\n      pcVar4 = strchr(pcVar8,0x2c);\n      if (pcVar4 == (char *)0x0) {\n        uVar6 = 0xffffffff;\n        iVar5 = 0;\n        pcVar4 = pcVar8;\n        do {\n          if (uVar6 == 0) break;\n          uVar6 = uVar6 - 1;\n          cVar1 = *pcVar4;\n          pcVar4 = pcVar4 + (uint)bVar17 * -2 + 1;\n        } while (cVar1 != '\0');\n        iVar10 = ~uVar6 - 1;\n      }\n      else {\n        *pcVar4 = '\0';\n        iVar5 = 1;\n        iVar10 = (int)pcVar4 - (int)pcVar8;\n      }\n      if (iVar10 == 1) {\n        switch(*pcVar8) {\n        case '1':\n        case '2':\n          FUN_000183f0();\n          break;\n        default:\n          FUN_00044820();\n          break;\n        case '5':\n        case '6':\n        case '7':\n        case '8':\n        case '9':\n          FUN_000183f0();\n          break;\n        case 'D':\n          FUN_000183f0();\n          break;\n        case 'N':\n          FUN_000183f0();\n          break;\n        case 'R':\n          FUN_000183f0();\n          break;\n        case 'X':\n          FUN_000183f0();\n          break;\n        case 'e':\n          FUN_000183f0();\n          break;\n        case 'm':\n          FUN_000183f0();\n          break;\n        case 'n':\n          FUN_000183f0();\n          break;\n        case 'o':\n          FUN_000183f0();\n          break;\n        case 's':\n          FUN_000183f0();\n        }\n      }\n      else if ((iVar10 == 3) && (iVar2 = strncmp(pcVar8,"1.5",3), iVar2 == 0)) {\n        FUN_000183f0();\n      }\n      else {\n        lVar3 = strtol(pcVar8,(char **)0x0,10);\n        if (lVar3 == 0) {\n          FUN_00044820();\n        }\n        else {\n          FUN_000183f0();\n        }\n      }\n    }\n    iVar5 = strcmp((char *)param_1,"-sessionlog");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 1) != 0) goto LAB_000161c3;\n      goto LAB_0001722b;\n    }\n    iVar5 = strcmp((char *)param_1,"-sshlog");\n    if (iVar5 != 0) goto LAB_000173ff;\nLAB_000173c4:\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n    if (param_3 != 0) {\nLAB_00016123:\n      FUN_00015950();\n      return 2;\n    }\n  }\n  else {\n    iVar5 = strcmp((char *)param_1,"-sessionlog");\n    if (iVar5 != 0) {\n      iVar5 = strcmp((char *)param_1,"-sshlog");\n      if (iVar5 != 0) goto LAB_00017404;\nLAB_000173b1:\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      goto LAB_000173c4;\n    }\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    if ((DAT_0006f0a0 & 1) != 0) goto LAB_000161c3;\n    if (param_3 != 0) goto LAB_00016123;\nLAB_0001722b:\n    FUN_00041790();\n    FUN_00018770();\n    FUN_000183f0();\n    FUN_00041820();\n    iVar5 = strcmp((char *)param_1,"-sshlog");\n    if (iVar5 != 0) {\nLAB_000173ff:\n      uVar7 = 2;\nLAB_00017404:\n      iVar5 = strcmp((char *)param_1,"-sshrawlog");\n      if (iVar5 != 0) {\n        iVar5 = strcmp((char *)param_1,"-proxycmd");\n        if (iVar5 != 0) {\n          return uVar7;\n        }\n        if (param_2 == (char *)0x0) {\n          return 0xfffffffe;\n        }\n        if (param_3 < 0) {\n          return 2;\n        }\n        if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n        if (param_3 != 0) goto LAB_00016123;\n        goto LAB_00017304;\n      }\n      goto LAB_000173b1;\n    }\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n  }\n  FUN_00041790();\n  FUN_00018770();\n  strcmp((char *)param_1,"-sshlog");\n  FUN_000183f0();\n  FUN_00041820();\n  iVar5 = strcmp((char *)param_1,"-proxycmd");\n  if (iVar5 != 0) {\n    return 2;\n  }\n  if ((DAT_0006f0a0 & 2) == 0) {\nLAB_00017304:\n    FUN_000183f0();\n    FUN_00018530();\n    return 2;\n  }\nLAB_000161c3:\n  FUN_00044820();\n  return 2;\n}\n\n" (function_definition "undefined4 FUN_00015b60(byte *param_1,char *param_2,int param_3)\n\n{\n  char cVar1;\n  FILE *__stream;\n  int iVar2;\n  long lVar3;\n  char *pcVar4;\n  int iVar5;\n  uint uVar6;\n  undefined4 uVar7;\n  char *pcVar8;\n  byte *pbVar9;\n  int iVar10;\n  byte *pbVar11;\n  bool bVar12;\n  bool bVar13;\n  undefined1 uVar14;\n  bool bVar15;\n  undefined1 uVar16;\n  byte bVar17;\n  undefined1 auStack_2c [8];\n  int local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  bVar17 = 0;\n  iVar5 = 6;\n  uStack_14 = 0x15b6e;\n  bVar12 = &stack0xfffffff0 < (undefined1 *)0x1c;\n  bVar15 = &stack0x00000000 == (undefined1 *)0x2c;\n  pbVar9 = param_1;\n  pbVar11 = (byte *)"-load";\n  do {\n    if (iVar5 == 0) break;\n    iVar5 = iVar5 + -1;\n    bVar12 = *pbVar9 < *pbVar11;\n    bVar15 = *pbVar9 == *pbVar11;\n    pbVar9 = pbVar9 + 1;\n    pbVar11 = pbVar11 + 1;\n  } while (bVar15);\n  bVar13 = false;\n  bVar12 = (!bVar12 && !bVar15) == bVar12;\n  if (bVar12) {\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    thunk_FUN_000249b0();\n    DAT_0006f2f4 = 1;\n    DAT_0006f2f8 = FUN_00019990();\n    return 2;\n  }\n  iVar5 = 5;\n  pbVar9 = param_1;\n  pbVar11 = &DAT_0004b0b5;\n  do {\n    if (iVar5 == 0) break;\n    iVar5 = iVar5 + -1;\n    bVar13 = *pbVar9 < *pbVar11;\n    bVar12 = *pbVar9 == *pbVar11;\n    pbVar9 = pbVar9 + 1;\n    pbVar11 = pbVar11 + 1;\n  } while (bVar12);\n  bVar15 = false;\n  bVar12 = (!bVar13 && !bVar12) == bVar13;\n  if (bVar12) {\n    if (param_3 < 0) {\n      return 1;\n    }\n    if ((DAT_0006f0a0 & 3) == 0) {\n      if (param_3 == 0) {\n        DAT_0006f2dc = 3;\n        DAT_0006f2e4 = 0x16;\nLAB_00015c0d:\n        FUN_000183f0();\n        FUN_000183f0();\n        return 1;\n      }\n      goto LAB_00015c78;\n    }\n    goto LAB_00015d50;\n  }\n  iVar5 = 8;\n  pbVar9 = param_1;\n  pbVar11 = (byte *)"-telnet";\n  do {\n    if (iVar5 == 0) break;\n    iVar5 = iVar5 + -1;\n    bVar15 = *pbVar9 < *pbVar11;\n    bVar12 = *pbVar9 == *pbVar11;\n    pbVar9 = pbVar9 + 1;\n    pbVar11 = pbVar11 + 1;\n  } while (bVar12);\n  bVar13 = false;\n  bVar12 = (!bVar15 && !bVar12) == bVar15;\n  if (bVar12) {\n    if (param_3 < 0) {\n      return 1;\n    }\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n    if (param_3 == 0) {\n      DAT_0006f2dc = 1;\n      DAT_0006f2e4 = 0x17;\n      goto LAB_00015c0d;\n    }\n    goto LAB_00015c78;\n  }\n  iVar5 = 8;\n  pbVar9 = param_1;\n  pbVar11 = (byte *)"-rlogin";\n  do {\n    if (iVar5 == 0) break;\n    iVar5 = iVar5 + -1;\n    bVar13 = *pbVar9 < *pbVar11;\n    bVar12 = *pbVar9 == *pbVar11;\n    pbVar9 = pbVar9 + 1;\n    pbVar11 = pbVar11 + 1;\n  } while (bVar12);\n  bVar15 = false;\n  bVar12 = (!bVar13 && !bVar12) == bVar13;\n  if (bVar12) {\n    if (param_3 < 0) {\n      return 1;\n    }\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n    if (param_3 == 0) {\n      DAT_0006f2dc = 2;\n      DAT_0006f2e4 = 0x201;\n      goto LAB_00015c0d;\n    }\n    goto LAB_00015c78;\n  }\n  iVar5 = 5;\n  pbVar9 = param_1;\n  pbVar11 = &DAT_0004b0ca;\n  do {\n    if (iVar5 == 0) break;\n    iVar5 = iVar5 + -1;\n    bVar15 = *pbVar9 < *pbVar11;\n    bVar12 = *pbVar9 == *pbVar11;\n    pbVar9 = pbVar9 + 1;\n    pbVar11 = pbVar11 + 1;\n  } while (bVar12);\n  bVar13 = false;\n  bVar12 = (!bVar15 && !bVar12) == bVar15;\n  if (bVar12) {\n    if (param_3 < 0) {\n      return 1;\n    }\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n    if (param_3 != 0) goto LAB_00015c78;\n    uVar14 = auStack_2c < (undefined1 *)0x4;\n    uVar16 = &stack0x00000000 == (undefined1 *)0x30;\n    DAT_0006f2dc = 0;\n    FUN_000183f0();\n    iVar5 = 8;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)"-serial";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);\n    bVar12 = false;\n    bVar15 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n    if (bVar15) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      goto LAB_00015dd0;\n    }\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b0d7;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar12 = *pbVar9 < *pbVar11;\n      bVar15 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar15);\n    bVar12 = (!bVar12 && !bVar15) == bVar12;\n    if (bVar12) goto LAB_00015e28;\nLAB_00015e31:\n    uVar7 = 1;\n  }\n  else {\n    iVar5 = 8;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)"-serial";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar13 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + 1;\n      pbVar11 = pbVar11 + 1;\n    } while (bVar12);\n    bVar15 = false;\n    bVar12 = (!bVar13 && !bVar12) == bVar13;\n    if (bVar12) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\nLAB_00015dd0:\n      DAT_0006f2dc = 4;\n      FUN_000183f0();\n      FUN_00017e80();\n      uVar14 = (undefined1 *)0xfffffff3 < &stack0xffffffc4;\n      uVar16 = &stack0x00000000 == (undefined1 *)0x30;\n      FUN_00018530();\n      iVar5 = 3;\n      pbVar9 = param_1;\n      pbVar11 = &DAT_0004b0d7;\n      do {\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        uVar14 = *pbVar9 < *pbVar11;\n        uVar16 = *pbVar9 == *pbVar11;\n        pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n      } while ((bool)uVar16);\n      bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n      if (bVar12) goto LAB_00015e28;\n      goto LAB_00015e31;\n    }\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b0d7;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + 1;\n      pbVar11 = pbVar11 + 1;\n    } while (bVar12);\n    if ((!bVar15 && !bVar12) == bVar15) {\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_00015e28:\n      DAT_0006f2e8 = DAT_0006f2e8 | 1;\n      bVar12 = DAT_0006f2e8 == 0;\n      goto LAB_00015e31;\n    }\n    uVar7 = 0;\n    bVar12 = true;\n  }\n  bVar15 = false;\n  iVar5 = 3;\n  pbVar9 = param_1;\n  pbVar11 = (byte *)0x53a29;\n  do {\n    if (iVar5 == 0) break;\n    iVar5 = iVar5 + -1;\n    bVar15 = *pbVar9 < *pbVar11;\n    bVar12 = *pbVar9 == *pbVar11;\n    pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n    pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n  } while (bVar12);\n  bVar13 = false;\n  bVar12 = (!bVar15 && !bVar12) == bVar15;\n  if (bVar12) {\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n    if (param_3 != 0) goto LAB_00016123;\n    uVar14 = auStack_2c < (undefined1 *)0x4;\n    uVar16 = &stack0x00000000 == (undefined1 *)0x30;\n    FUN_00018530();\n    iVar5 = 9;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)"-loghost";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);\n    bVar12 = false;\n    bVar15 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n    if (bVar15) {\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n      goto LAB_00015ec5;\n    }\n    iVar5 = 9;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)"-hostkey";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar12 = *pbVar9 < *pbVar11;\n      bVar15 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar15);\n    bVar12 = (!bVar12 && !bVar15) == bVar12;\n    if (bVar12) goto LAB_00016218;\nLAB_00016248:\n    uVar7 = 2;\nLAB_0001624d:\n    bVar15 = false;\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b0ec;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar12 = (!bVar15 && !bVar12) == bVar15;\n    if (bVar12) {\nLAB_00016647:\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;\n      bVar12 = param_3 == 0;\n      if (!bVar12) goto LAB_00016123;\n      goto LAB_00015f8f;\n    }\nLAB_0001626b:\n    bVar15 = false;\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b0ef;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar13 = false;\n    bVar12 = (!bVar15 && !bVar12) == bVar15;\n    if (bVar12) goto LAB_00016647;\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)0x53a3b;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar13 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar15 = false;\n    bVar12 = (!bVar13 && !bVar12) == bVar13;\n    if (bVar12) goto LAB_00016647;\n    iVar5 = 4;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b0fd;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar12 = (!bVar15 && !bVar12) == bVar15;\n    if (!bVar12) goto LAB_00016698;\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;\n    if (param_3 != 0) goto LAB_00016123;\nLAB_000162ed:\n    iVar5 = FUN_00019140();\n    if (iVar5 == 0) {\n      FUN_00044820();\n      return 2;\n    }\n    uVar7 = 2;\n    FUN_00019ef0();\n    FUN_00018530();\n    strtol((char *)(iVar5 + 1),(char **)0x0,10);\n    uVar14 = (undefined1 *)0xfffffff3 < &stack0xffffffc4;\n    uVar16 = &stack0x00000000 == (undefined1 *)0x30;\n    FUN_000183f0();\n    FUN_0001a110();\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b101;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);\n    bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n    if (!bVar12) goto LAB_000166e0;\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;\nLAB_0001639b:\n    iVar10 = 0;\n    iVar5 = 0;\n    __stream = fopen64(param_2,"r");\n    local_24 = 0;\n    if (__stream == (FILE *)0x0) {\n      FUN_00044820();\n      return 2;\n    }\n    while (iVar2 = fgetc(__stream), iVar2 != -1) {\n      if (iVar10 < local_24) {\n        *(char *)(iVar5 + iVar10) = (char)iVar2;\n      }\n      else {\n        local_24 = iVar10 + 0x200;\n        local_20 = iVar2;\n        iVar5 = FUN_00019c80();\n        *(char *)(iVar5 + iVar10) = (char)local_20;\n      }\n      iVar10 = iVar10 + 1;\n    }\n    if (iVar10 < local_24) {\n      *(undefined1 *)(iVar5 + iVar10) = 0;\n    }\n    else {\n      iVar5 = FUN_00019c80();\n      *(undefined1 *)(iVar5 + iVar10) = 0;\n    }\n    uVar7 = 2;\n    fclose(__stream);\n    FUN_00018530();\n    FUN_00018530();\n    uVar14 = (undefined1 *)0xfffffff3 < &stack0xffffffc4;\n    uVar16 = &stack0x00000000 == (undefined1 *)0x30;\n    FUN_000183f0();\n    FUN_0001a110();\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b104;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);\n    bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n    if (!bVar12) goto LAB_00016777;\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\nLAB_000164a7:\n    strtol(param_2,(char **)0x0,10);\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-pw");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\nLAB_000164f6:\n      iVar5 = FUN_00017cd0();\n      if (iVar5 == 3) {\n        DAT_0006f0a8 = FUN_00019990();\n        iVar5 = -1;\n        pcVar8 = param_2;\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          cVar1 = *pcVar8;\n          pcVar8 = pcVar8 + (uint)bVar17 * -2 + 1;\n        } while (cVar1 != '\0');\n        FUN_0001a1f0();\n      }\n      else {\n        FUN_00044820();\n      }\n      iVar5 = strcmp((char *)param_1,"-agent");\n      if ((iVar5 == 0) || (iVar5 = strcmp((char *)param_1,"-pagent"), iVar5 == 0))\n      goto LAB_00015d3a;\n      uVar7 = 2;\n      iVar5 = strcmp((char *)param_1,"-pageant");\n      if (iVar5 == 0) goto LAB_0001688c;\n    }\n    else {\n      iVar5 = strcmp((char *)param_1,"-agent");\n      if (iVar5 == 0) {\nLAB_00015d3a:\n        if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n        goto LAB_000168a1;\n      }\n      uVar7 = 2;\n      iVar5 = strcmp((char *)param_1,"-pagent");\n      if (iVar5 == 0) goto LAB_0001688c;\nLAB_0001685f:\n      iVar5 = strcmp((char *)param_1,"-pageant");\n      if (iVar5 == 0) goto LAB_00016884;\n    }\n    iVar5 = strcmp((char *)param_1,"-noagent");\n    if ((iVar5 == 0) || (iVar5 = strcmp((char *)param_1,"-nopagent"), iVar5 == 0)) {\nLAB_00016e5e:\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_00016e44:\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\n      goto LAB_000168e1;\n    }\nLAB_000165eb:\n    iVar5 = strcmp((char *)param_1,"-nopageant");\n    if (iVar5 == 0) goto LAB_00016e5e;\n    iVar5 = strcmp((char *)param_1,"-A");\n    if (iVar5 != 0) {\n      iVar5 = strcmp((char *)param_1,"-a");\n      if (iVar5 != 0) goto LAB_00016f0f;\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_0001700b;\n    }\n    if (param_3 < 0) {\n      return 1;\n    }\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n    if (param_3 != 0) goto LAB_00015c78;\nLAB_00016921:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-a");\n    if (iVar5 != 0) {\n      uVar7 = 1;\n      iVar5 = strcmp((char *)param_1,"-X");\n      if (iVar5 == 0) goto LAB_00016f38;\nLAB_00016f97:\n      iVar5 = strcmp((char *)param_1,"-x");\n      if (iVar5 != 0) goto LAB_0001704f;\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_00016fc4:\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\n      goto LAB_000169e4;\n    }\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\nLAB_00016961:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-X");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      goto LAB_000169a1;\n    }\n    uVar7 = 1;\n    iVar5 = strcmp((char *)param_1,"-x");\n    if (iVar5 == 0) goto LAB_00016fc4;\nLAB_0001704f:\n    iVar5 = strcmp((char *)param_1,"-t");\n    if (iVar5 == 0) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_0001707c;\n    }\nLAB_000177b1:\n    iVar5 = strcmp((char *)param_1,"-T");\n    if (iVar5 != 0) goto LAB_00017759;\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_0001770d:\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n    if (param_3 != 0) goto LAB_00017091;\nLAB_00016a67:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-N");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\nLAB_00016aa7:\n      FUN_000183f0();\n      iVar5 = strcmp((char *)param_1,"-C");\n      if (iVar5 == 0) {\n        if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n        goto LAB_00016ae7;\n      }\n      uVar7 = 1;\n      iVar5 = strcmp((char *)param_1,"-1");\n      if (iVar5 != 0) goto LAB_00017647;\nLAB_000175ed:\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\n      goto LAB_00016b27;\n    }\n    uVar7 = 1;\n    iVar5 = strcmp((char *)param_1,"-C");\n    if (iVar5 == 0) goto LAB_0001762d;\nLAB_00017679:\n    iVar5 = strcmp((char *)param_1,"-1");\n    if (iVar5 == 0) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_000175ed;\n    }\nLAB_00017647:\n    iVar5 = strcmp((char *)param_1,"-2");\n    if (iVar5 == 0) {\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_000175ad:\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n      if (param_3 != 0) {\nLAB_00015c78:\n        FUN_00015950();\n        return 1;\n      }\nLAB_00016b67:\n      uVar7 = 1;\n      FUN_000183f0();\n    }\n  }\n  else {\n    iVar5 = 9;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)"-loghost";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar13 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar15 = false;\n    bVar12 = (!bVar13 && !bVar12) == bVar13;\n    if (!bVar12) {\n      iVar5 = 9;\n      pbVar9 = param_1;\n      pbVar11 = (byte *)"-hostkey";\n      do {\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        bVar15 = *pbVar9 < *pbVar11;\n        bVar12 = *pbVar9 == *pbVar11;\n        pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n      } while (bVar12);\n      bVar12 = (!bVar15 && !bVar12) == bVar15;\n      if (bVar12) {\n        if (param_2 == (char *)0x0) {\n          return 0xfffffffe;\n        }\n        if (param_3 < 0) {\n          return 2;\n        }\nLAB_00016218:\n        if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n        if (param_3 != 0) goto LAB_00016123;\n        goto LAB_00015f0d;\n      }\n      goto LAB_0001624d;\n    }\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n    if (param_3 != 0) goto LAB_00016123;\nLAB_00015ec5:\n    uVar14 = auStack_2c < (undefined1 *)0x4;\n    uVar16 = &stack0x00000000 == (undefined1 *)0x30;\n    FUN_00018530();\n    iVar5 = 9;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)"-hostkey";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);\n    bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n    if (!bVar12) goto LAB_00016248;\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\nLAB_00015f0d:\n    FUN_00019990();\n    iVar5 = FUN_0001a210();\n    uVar14 = 0;\n    uVar16 = iVar5 == 0;\n    if ((bool)uVar16) {\n      FUN_00044820();\n      FUN_0001a110();\n      return 2;\n    }\n    uVar7 = 2;\n    FUN_000185e0();\n    FUN_0001a110();\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b0ec;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);\n    bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n    if (!bVar12) goto LAB_0001626b;\n    bVar12 = (DAT_0006f0a0 & 3) == 0;\n    if (!bVar12) goto LAB_000161c3;\nLAB_00015f8f:\n    bVar15 = false;\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)0x53a3b;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    if ((!bVar15 && !bVar12) == bVar15) {\n      FUN_00019ef0();\n      FUN_00019990();\n    }\n    else {\n      iVar5 = FUN_00019140();\n      if (iVar5 == 0) {\n        FUN_00044820();\n        return 2;\n      }\n      do {\n        iVar5 = FUN_00019140();\n      } while (iVar5 != 0);\n      FUN_00019ef0();\n      FUN_00019990();\n    }\n    uVar14 = (undefined1 *)0xffffffef < &stack0xffffffc4;\n    uVar16 = &stack0x00000000 == (undefined1 *)0x2c;\n    uVar7 = 2;\n    FUN_000185e0();\n    FUN_0001a110();\n    FUN_0001a110();\n    iVar5 = 4;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b0fd;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);\n    bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n    if (bVar12) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;\n      goto LAB_000162ed;\n    }\nLAB_00016698:\n    bVar15 = false;\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b101;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar12 = (!bVar15 && !bVar12) == bVar15;\n    if (bVar12) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;\n      if (param_3 != 0) goto LAB_00016123;\n      goto LAB_0001639b;\n    }\nLAB_000166e0:\n    bVar15 = false;\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b104;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar12 = (!bVar15 && !bVar12) == bVar15;\n    if (bVar12) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n      if (param_3 != 0) goto LAB_00016723;\n      goto LAB_000164a7;\n    }\nLAB_00016777:\n    bVar15 = false;\n    iVar5 = 4;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b107;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    if ((!bVar15 && !bVar12) == bVar15) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n      if (param_3 != 0) goto LAB_00016723;\n      goto LAB_000164f6;\n    }\n    iVar5 = strcmp((char *)param_1,"-agent");\n    if ((iVar5 != 0) && (iVar5 = strcmp((char *)param_1,"-pagent"), iVar5 != 0)) goto LAB_0001685f;\nLAB_00016884:\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_0001688c:\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n    if (param_3 != 0) goto LAB_00015c78;\nLAB_000168a1:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-noagent");\n    if (iVar5 != 0) {\n      uVar7 = 1;\n      iVar5 = strcmp((char *)param_1,"-nopagent");\n      if (iVar5 != 0) goto LAB_000165eb;\n      goto LAB_00016e44;\n    }\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\nLAB_000168e1:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-A");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      goto LAB_00016921;\n    }\n    uVar7 = 1;\n    iVar5 = strcmp((char *)param_1,"-a");\n    if (iVar5 == 0) {\nLAB_0001700b:\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\n      goto LAB_00016961;\n    }\nLAB_00016f0f:\n    iVar5 = strcmp((char *)param_1,"-X");\n    if (iVar5 != 0) goto LAB_00016f97;\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_00016f38:\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n    if (param_3 != 0) goto LAB_00015c78;\nLAB_000169a1:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-x");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\nLAB_000169e4:\n      FUN_000183f0();\n      iVar5 = strcmp((char *)param_1,"-t");\n      if (iVar5 == 0) {\n        if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n        goto LAB_00016a27;\n      }\n      uVar7 = 1;\n      iVar5 = strcmp((char *)param_1,"-T");\n      if (iVar5 == 0) goto LAB_0001770d;\nLAB_00017759:\n      iVar5 = strcmp((char *)param_1,"-N");\n      if (iVar5 != 0) goto LAB_00017727;\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_000176cd:\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\n      goto LAB_00016aa7;\n    }\n    uVar7 = 1;\n    iVar5 = strcmp((char *)param_1,"-t");\n    if (iVar5 != 0) goto LAB_000177b1;\nLAB_0001707c:\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n    if (param_3 != 0) goto LAB_00017091;\nLAB_00016a27:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-T");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      goto LAB_00016a67;\n    }\n    uVar7 = 1;\n    iVar5 = strcmp((char *)param_1,"-N");\n    if (iVar5 == 0) goto LAB_000176cd;\nLAB_00017727:\n    iVar5 = strcmp((char *)param_1,"-C");\n    if (iVar5 != 0) goto LAB_00017679;\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_0001762d:\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n    if (param_3 != 0) goto LAB_00015c78;\nLAB_00016ae7:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-1");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\nLAB_00016b27:\n      FUN_000183f0();\n      iVar5 = strcmp((char *)param_1,"-2");\n      if (iVar5 == 0) {\n        if ((DAT_0006f0a0 & 2) != 0) {\nLAB_00015d50:\n          FUN_00044820();\n          return 1;\n        }\n        goto LAB_00016b67;\n      }\n    }\n    else {\n      iVar5 = strcmp((char *)param_1,"-2");\n      if (iVar5 == 0) goto LAB_000175ad;\n    }\n    uVar7 = 1;\n  }\n  iVar5 = strcmp((char *)param_1,"-i");\n  if (iVar5 == 0) {\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n    if (param_3 != 0) goto LAB_00016123;\n    FUN_00041790();\n    FUN_00018770();\n    FUN_00041820();\n    iVar5 = strcmp((char *)param_1,"-4");\n    if ((iVar5 == 0) || (iVar5 = strcmp((char *)param_1,"-ipv4"), iVar5 == 0)) goto LAB_00017485;\n    iVar5 = strcmp((char *)param_1,"-6");\n    if (iVar5 == 0) goto LAB_00016c88;\n    uVar7 = 2;\n    iVar5 = strcmp((char *)param_1,"-ipv6");\njoined_r0x000174dc:\n    if (iVar5 == 0) goto LAB_00016c88;\n  }\n  else {\n    iVar5 = strcmp((char *)param_1,"-4");\n    if ((iVar5 == 0) || (iVar5 = strcmp((char *)param_1,"-ipv4"), iVar5 == 0)) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\nLAB_00017091:\n        FUN_00015950();\n        return 1;\n      }\nLAB_00017485:\n      FUN_000183f0();\n      iVar5 = strcmp((char *)param_1,"-6");\n      if (iVar5 != 0) {\n        uVar7 = 1;\n        iVar5 = strcmp((char *)param_1,"-ipv6");\n        goto joined_r0x000174dc;\n      }\n    }\n    else {\n      iVar5 = strcmp((char *)param_1,"-6");\n      if ((iVar5 != 0) && (iVar5 = strcmp((char *)param_1,"-ipv6"), iVar5 != 0)) goto LAB_00016ca6;\n      if (param_3 < 0) {\n        return 1;\n      }\n      if (param_3 != 0) goto LAB_00017091;\n    }\nLAB_00016c88:\n    uVar7 = 1;\n    FUN_000183f0();\n  }\nLAB_00016ca6:\n  iVar5 = strcmp((char *)param_1,"-sercfg");\n  if (iVar5 == 0) {\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;\n    if (param_3 != 0) {\nLAB_00016723:\n      FUN_00015950();\n      return 2;\n    }\n    iVar5 = FUN_00017cd0();\n    pcVar8 = param_2;\n    if (iVar5 != 4) {\n      FUN_00044820();\n    }\n    for (; *pcVar8 != '\0'; pcVar8 = pcVar8 + iVar10 + iVar5) {\n      pcVar4 = strchr(pcVar8,0x2c);\n      if (pcVar4 == (char *)0x0) {\n        uVar6 = 0xffffffff;\n        iVar5 = 0;\n        pcVar4 = pcVar8;\n        do {\n          if (uVar6 == 0) break;\n          uVar6 = uVar6 - 1;\n          cVar1 = *pcVar4;\n          pcVar4 = pcVar4 + (uint)bVar17 * -2 + 1;\n        } while (cVar1 != '\0');\n        iVar10 = ~uVar6 - 1;\n      }\n      else {\n        *pcVar4 = '\0';\n        iVar5 = 1;\n        iVar10 = (int)pcVar4 - (int)pcVar8;\n      }\n      if (iVar10 == 1) {\n        switch(*pcVar8) {\n        case '1':\n        case '2':\n          FUN_000183f0();\n          break;\n        default:\n          FUN_00044820();\n          break;\n        case '5':\n        case '6':\n        case '7':\n        case '8':\n        case '9':\n          FUN_000183f0();\n          break;\n        case 'D':\n          FUN_000183f0();\n          break;\n        case 'N':\n          FUN_000183f0();\n          break;\n        case 'R':\n          FUN_000183f0();\n          break;\n        case 'X':\n          FUN_000183f0();\n          break;\n        case 'e':\n          FUN_000183f0();\n          break;\n        case 'm':\n          FUN_000183f0();\n          break;\n        case 'n':\n          FUN_000183f0();\n          break;\n        case 'o':\n          FUN_000183f0();\n          break;\n        case 's':\n          FUN_000183f0();\n        }\n      }\n      else if ((iVar10 == 3) && (iVar2 = strncmp(pcVar8,"1.5",3), iVar2 == 0)) {\n        FUN_000183f0();\n      }\n      else {\n        lVar3 = strtol(pcVar8,(char **)0x0,10);\n        if (lVar3 == 0) {\n          FUN_00044820();\n        }\n        else {\n          FUN_000183f0();\n        }\n      }\n    }\n    iVar5 = strcmp((char *)param_1,"-sessionlog");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 1) != 0) goto LAB_000161c3;\n      goto LAB_0001722b;\n    }\n    iVar5 = strcmp((char *)param_1,"-sshlog");\n    if (iVar5 != 0) goto LAB_000173ff;\nLAB_000173c4:\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n    if (param_3 != 0) {\nLAB_00016123:\n      FUN_00015950();\n      return 2;\n    }\n  }\n  else {\n    iVar5 = strcmp((char *)param_1,"-sessionlog");\n    if (iVar5 != 0) {\n      iVar5 = strcmp((char *)param_1,"-sshlog");\n      if (iVar5 != 0) goto LAB_00017404;\nLAB_000173b1:\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      goto LAB_000173c4;\n    }\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    if ((DAT_0006f0a0 & 1) != 0) goto LAB_000161c3;\n    if (param_3 != 0) goto LAB_00016123;\nLAB_0001722b:\n    FUN_00041790();\n    FUN_00018770();\n    FUN_000183f0();\n    FUN_00041820();\n    iVar5 = strcmp((char *)param_1,"-sshlog");\n    if (iVar5 != 0) {\nLAB_000173ff:\n      uVar7 = 2;\nLAB_00017404:\n      iVar5 = strcmp((char *)param_1,"-sshrawlog");\n      if (iVar5 != 0) {\n        iVar5 = strcmp((char *)param_1,"-proxycmd");\n        if (iVar5 != 0) {\n          return uVar7;\n        }\n        if (param_2 == (char *)0x0) {\n          return 0xfffffffe;\n        }\n        if (param_3 < 0) {\n          return 2;\n        }\n        if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n        if (param_3 != 0) goto LAB_00016123;\n        goto LAB_00017304;\n      }\n      goto LAB_000173b1;\n    }\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n  }\n  FUN_00041790();\n  FUN_00018770();\n  strcmp((char *)param_1,"-sshlog");\n  FUN_000183f0();\n  FUN_00041820();\n  iVar5 = strcmp((char *)param_1,"-proxycmd");\n  if (iVar5 != 0) {\n    return 2;\n  }\n  if ((DAT_0006f0a0 & 2) == 0) {\nLAB_00017304:\n    FUN_000183f0();\n    FUN_00018530();\n    return 2;\n  }\nLAB_000161c3:\n  FUN_00044820();\n  return 2;\n}" type_identifier (function_declarator "FUN_00015b60(byte *param_1,char *param_2,int param_3)" identifier (parameter_list "(byte *param_1,char *param_2,int param_3)" ( (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) ))) (compound_statement "{\n  char cVar1;\n  FILE *__stream;\n  int iVar2;\n  long lVar3;\n  char *pcVar4;\n  int iVar5;\n  uint uVar6;\n  undefined4 uVar7;\n  char *pcVar8;\n  byte *pbVar9;\n  int iVar10;\n  byte *pbVar11;\n  bool bVar12;\n  bool bVar13;\n  undefined1 uVar14;\n  bool bVar15;\n  undefined1 uVar16;\n  byte bVar17;\n  undefined1 auStack_2c [8];\n  int local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  bVar17 = 0;\n  iVar5 = 6;\n  uStack_14 = 0x15b6e;\n  bVar12 = &stack0xfffffff0 < (undefined1 *)0x1c;\n  bVar15 = &stack0x00000000 == (undefined1 *)0x2c;\n  pbVar9 = param_1;\n  pbVar11 = (byte *)"-load";\n  do {\n    if (iVar5 == 0) break;\n    iVar5 = iVar5 + -1;\n    bVar12 = *pbVar9 < *pbVar11;\n    bVar15 = *pbVar9 == *pbVar11;\n    pbVar9 = pbVar9 + 1;\n    pbVar11 = pbVar11 + 1;\n  } while (bVar15);\n  bVar13 = false;\n  bVar12 = (!bVar12 && !bVar15) == bVar12;\n  if (bVar12) {\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    thunk_FUN_000249b0();\n    DAT_0006f2f4 = 1;\n    DAT_0006f2f8 = FUN_00019990();\n    return 2;\n  }\n  iVar5 = 5;\n  pbVar9 = param_1;\n  pbVar11 = &DAT_0004b0b5;\n  do {\n    if (iVar5 == 0) break;\n    iVar5 = iVar5 + -1;\n    bVar13 = *pbVar9 < *pbVar11;\n    bVar12 = *pbVar9 == *pbVar11;\n    pbVar9 = pbVar9 + 1;\n    pbVar11 = pbVar11 + 1;\n  } while (bVar12);\n  bVar15 = false;\n  bVar12 = (!bVar13 && !bVar12) == bVar13;\n  if (bVar12) {\n    if (param_3 < 0) {\n      return 1;\n    }\n    if ((DAT_0006f0a0 & 3) == 0) {\n      if (param_3 == 0) {\n        DAT_0006f2dc = 3;\n        DAT_0006f2e4 = 0x16;\nLAB_00015c0d:\n        FUN_000183f0();\n        FUN_000183f0();\n        return 1;\n      }\n      goto LAB_00015c78;\n    }\n    goto LAB_00015d50;\n  }\n  iVar5 = 8;\n  pbVar9 = param_1;\n  pbVar11 = (byte *)"-telnet";\n  do {\n    if (iVar5 == 0) break;\n    iVar5 = iVar5 + -1;\n    bVar15 = *pbVar9 < *pbVar11;\n    bVar12 = *pbVar9 == *pbVar11;\n    pbVar9 = pbVar9 + 1;\n    pbVar11 = pbVar11 + 1;\n  } while (bVar12);\n  bVar13 = false;\n  bVar12 = (!bVar15 && !bVar12) == bVar15;\n  if (bVar12) {\n    if (param_3 < 0) {\n      return 1;\n    }\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n    if (param_3 == 0) {\n      DAT_0006f2dc = 1;\n      DAT_0006f2e4 = 0x17;\n      goto LAB_00015c0d;\n    }\n    goto LAB_00015c78;\n  }\n  iVar5 = 8;\n  pbVar9 = param_1;\n  pbVar11 = (byte *)"-rlogin";\n  do {\n    if (iVar5 == 0) break;\n    iVar5 = iVar5 + -1;\n    bVar13 = *pbVar9 < *pbVar11;\n    bVar12 = *pbVar9 == *pbVar11;\n    pbVar9 = pbVar9 + 1;\n    pbVar11 = pbVar11 + 1;\n  } while (bVar12);\n  bVar15 = false;\n  bVar12 = (!bVar13 && !bVar12) == bVar13;\n  if (bVar12) {\n    if (param_3 < 0) {\n      return 1;\n    }\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n    if (param_3 == 0) {\n      DAT_0006f2dc = 2;\n      DAT_0006f2e4 = 0x201;\n      goto LAB_00015c0d;\n    }\n    goto LAB_00015c78;\n  }\n  iVar5 = 5;\n  pbVar9 = param_1;\n  pbVar11 = &DAT_0004b0ca;\n  do {\n    if (iVar5 == 0) break;\n    iVar5 = iVar5 + -1;\n    bVar15 = *pbVar9 < *pbVar11;\n    bVar12 = *pbVar9 == *pbVar11;\n    pbVar9 = pbVar9 + 1;\n    pbVar11 = pbVar11 + 1;\n  } while (bVar12);\n  bVar13 = false;\n  bVar12 = (!bVar15 && !bVar12) == bVar15;\n  if (bVar12) {\n    if (param_3 < 0) {\n      return 1;\n    }\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n    if (param_3 != 0) goto LAB_00015c78;\n    uVar14 = auStack_2c < (undefined1 *)0x4;\n    uVar16 = &stack0x00000000 == (undefined1 *)0x30;\n    DAT_0006f2dc = 0;\n    FUN_000183f0();\n    iVar5 = 8;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)"-serial";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);\n    bVar12 = false;\n    bVar15 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n    if (bVar15) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      goto LAB_00015dd0;\n    }\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b0d7;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar12 = *pbVar9 < *pbVar11;\n      bVar15 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar15);\n    bVar12 = (!bVar12 && !bVar15) == bVar12;\n    if (bVar12) goto LAB_00015e28;\nLAB_00015e31:\n    uVar7 = 1;\n  }\n  else {\n    iVar5 = 8;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)"-serial";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar13 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + 1;\n      pbVar11 = pbVar11 + 1;\n    } while (bVar12);\n    bVar15 = false;\n    bVar12 = (!bVar13 && !bVar12) == bVar13;\n    if (bVar12) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\nLAB_00015dd0:\n      DAT_0006f2dc = 4;\n      FUN_000183f0();\n      FUN_00017e80();\n      uVar14 = (undefined1 *)0xfffffff3 < &stack0xffffffc4;\n      uVar16 = &stack0x00000000 == (undefined1 *)0x30;\n      FUN_00018530();\n      iVar5 = 3;\n      pbVar9 = param_1;\n      pbVar11 = &DAT_0004b0d7;\n      do {\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        uVar14 = *pbVar9 < *pbVar11;\n        uVar16 = *pbVar9 == *pbVar11;\n        pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n      } while ((bool)uVar16);\n      bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n      if (bVar12) goto LAB_00015e28;\n      goto LAB_00015e31;\n    }\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b0d7;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + 1;\n      pbVar11 = pbVar11 + 1;\n    } while (bVar12);\n    if ((!bVar15 && !bVar12) == bVar15) {\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_00015e28:\n      DAT_0006f2e8 = DAT_0006f2e8 | 1;\n      bVar12 = DAT_0006f2e8 == 0;\n      goto LAB_00015e31;\n    }\n    uVar7 = 0;\n    bVar12 = true;\n  }\n  bVar15 = false;\n  iVar5 = 3;\n  pbVar9 = param_1;\n  pbVar11 = (byte *)0x53a29;\n  do {\n    if (iVar5 == 0) break;\n    iVar5 = iVar5 + -1;\n    bVar15 = *pbVar9 < *pbVar11;\n    bVar12 = *pbVar9 == *pbVar11;\n    pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n    pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n  } while (bVar12);\n  bVar13 = false;\n  bVar12 = (!bVar15 && !bVar12) == bVar15;\n  if (bVar12) {\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n    if (param_3 != 0) goto LAB_00016123;\n    uVar14 = auStack_2c < (undefined1 *)0x4;\n    uVar16 = &stack0x00000000 == (undefined1 *)0x30;\n    FUN_00018530();\n    iVar5 = 9;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)"-loghost";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);\n    bVar12 = false;\n    bVar15 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n    if (bVar15) {\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n      goto LAB_00015ec5;\n    }\n    iVar5 = 9;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)"-hostkey";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar12 = *pbVar9 < *pbVar11;\n      bVar15 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar15);\n    bVar12 = (!bVar12 && !bVar15) == bVar12;\n    if (bVar12) goto LAB_00016218;\nLAB_00016248:\n    uVar7 = 2;\nLAB_0001624d:\n    bVar15 = false;\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b0ec;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar12 = (!bVar15 && !bVar12) == bVar15;\n    if (bVar12) {\nLAB_00016647:\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;\n      bVar12 = param_3 == 0;\n      if (!bVar12) goto LAB_00016123;\n      goto LAB_00015f8f;\n    }\nLAB_0001626b:\n    bVar15 = false;\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b0ef;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar13 = false;\n    bVar12 = (!bVar15 && !bVar12) == bVar15;\n    if (bVar12) goto LAB_00016647;\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)0x53a3b;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar13 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar15 = false;\n    bVar12 = (!bVar13 && !bVar12) == bVar13;\n    if (bVar12) goto LAB_00016647;\n    iVar5 = 4;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b0fd;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar12 = (!bVar15 && !bVar12) == bVar15;\n    if (!bVar12) goto LAB_00016698;\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;\n    if (param_3 != 0) goto LAB_00016123;\nLAB_000162ed:\n    iVar5 = FUN_00019140();\n    if (iVar5 == 0) {\n      FUN_00044820();\n      return 2;\n    }\n    uVar7 = 2;\n    FUN_00019ef0();\n    FUN_00018530();\n    strtol((char *)(iVar5 + 1),(char **)0x0,10);\n    uVar14 = (undefined1 *)0xfffffff3 < &stack0xffffffc4;\n    uVar16 = &stack0x00000000 == (undefined1 *)0x30;\n    FUN_000183f0();\n    FUN_0001a110();\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b101;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);\n    bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n    if (!bVar12) goto LAB_000166e0;\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;\nLAB_0001639b:\n    iVar10 = 0;\n    iVar5 = 0;\n    __stream = fopen64(param_2,"r");\n    local_24 = 0;\n    if (__stream == (FILE *)0x0) {\n      FUN_00044820();\n      return 2;\n    }\n    while (iVar2 = fgetc(__stream), iVar2 != -1) {\n      if (iVar10 < local_24) {\n        *(char *)(iVar5 + iVar10) = (char)iVar2;\n      }\n      else {\n        local_24 = iVar10 + 0x200;\n        local_20 = iVar2;\n        iVar5 = FUN_00019c80();\n        *(char *)(iVar5 + iVar10) = (char)local_20;\n      }\n      iVar10 = iVar10 + 1;\n    }\n    if (iVar10 < local_24) {\n      *(undefined1 *)(iVar5 + iVar10) = 0;\n    }\n    else {\n      iVar5 = FUN_00019c80();\n      *(undefined1 *)(iVar5 + iVar10) = 0;\n    }\n    uVar7 = 2;\n    fclose(__stream);\n    FUN_00018530();\n    FUN_00018530();\n    uVar14 = (undefined1 *)0xfffffff3 < &stack0xffffffc4;\n    uVar16 = &stack0x00000000 == (undefined1 *)0x30;\n    FUN_000183f0();\n    FUN_0001a110();\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b104;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);\n    bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n    if (!bVar12) goto LAB_00016777;\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\nLAB_000164a7:\n    strtol(param_2,(char **)0x0,10);\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-pw");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\nLAB_000164f6:\n      iVar5 = FUN_00017cd0();\n      if (iVar5 == 3) {\n        DAT_0006f0a8 = FUN_00019990();\n        iVar5 = -1;\n        pcVar8 = param_2;\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          cVar1 = *pcVar8;\n          pcVar8 = pcVar8 + (uint)bVar17 * -2 + 1;\n        } while (cVar1 != '\0');\n        FUN_0001a1f0();\n      }\n      else {\n        FUN_00044820();\n      }\n      iVar5 = strcmp((char *)param_1,"-agent");\n      if ((iVar5 == 0) || (iVar5 = strcmp((char *)param_1,"-pagent"), iVar5 == 0))\n      goto LAB_00015d3a;\n      uVar7 = 2;\n      iVar5 = strcmp((char *)param_1,"-pageant");\n      if (iVar5 == 0) goto LAB_0001688c;\n    }\n    else {\n      iVar5 = strcmp((char *)param_1,"-agent");\n      if (iVar5 == 0) {\nLAB_00015d3a:\n        if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n        goto LAB_000168a1;\n      }\n      uVar7 = 2;\n      iVar5 = strcmp((char *)param_1,"-pagent");\n      if (iVar5 == 0) goto LAB_0001688c;\nLAB_0001685f:\n      iVar5 = strcmp((char *)param_1,"-pageant");\n      if (iVar5 == 0) goto LAB_00016884;\n    }\n    iVar5 = strcmp((char *)param_1,"-noagent");\n    if ((iVar5 == 0) || (iVar5 = strcmp((char *)param_1,"-nopagent"), iVar5 == 0)) {\nLAB_00016e5e:\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_00016e44:\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\n      goto LAB_000168e1;\n    }\nLAB_000165eb:\n    iVar5 = strcmp((char *)param_1,"-nopageant");\n    if (iVar5 == 0) goto LAB_00016e5e;\n    iVar5 = strcmp((char *)param_1,"-A");\n    if (iVar5 != 0) {\n      iVar5 = strcmp((char *)param_1,"-a");\n      if (iVar5 != 0) goto LAB_00016f0f;\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_0001700b;\n    }\n    if (param_3 < 0) {\n      return 1;\n    }\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n    if (param_3 != 0) goto LAB_00015c78;\nLAB_00016921:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-a");\n    if (iVar5 != 0) {\n      uVar7 = 1;\n      iVar5 = strcmp((char *)param_1,"-X");\n      if (iVar5 == 0) goto LAB_00016f38;\nLAB_00016f97:\n      iVar5 = strcmp((char *)param_1,"-x");\n      if (iVar5 != 0) goto LAB_0001704f;\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_00016fc4:\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\n      goto LAB_000169e4;\n    }\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\nLAB_00016961:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-X");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      goto LAB_000169a1;\n    }\n    uVar7 = 1;\n    iVar5 = strcmp((char *)param_1,"-x");\n    if (iVar5 == 0) goto LAB_00016fc4;\nLAB_0001704f:\n    iVar5 = strcmp((char *)param_1,"-t");\n    if (iVar5 == 0) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_0001707c;\n    }\nLAB_000177b1:\n    iVar5 = strcmp((char *)param_1,"-T");\n    if (iVar5 != 0) goto LAB_00017759;\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_0001770d:\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n    if (param_3 != 0) goto LAB_00017091;\nLAB_00016a67:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-N");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\nLAB_00016aa7:\n      FUN_000183f0();\n      iVar5 = strcmp((char *)param_1,"-C");\n      if (iVar5 == 0) {\n        if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n        goto LAB_00016ae7;\n      }\n      uVar7 = 1;\n      iVar5 = strcmp((char *)param_1,"-1");\n      if (iVar5 != 0) goto LAB_00017647;\nLAB_000175ed:\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\n      goto LAB_00016b27;\n    }\n    uVar7 = 1;\n    iVar5 = strcmp((char *)param_1,"-C");\n    if (iVar5 == 0) goto LAB_0001762d;\nLAB_00017679:\n    iVar5 = strcmp((char *)param_1,"-1");\n    if (iVar5 == 0) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_000175ed;\n    }\nLAB_00017647:\n    iVar5 = strcmp((char *)param_1,"-2");\n    if (iVar5 == 0) {\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_000175ad:\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n      if (param_3 != 0) {\nLAB_00015c78:\n        FUN_00015950();\n        return 1;\n      }\nLAB_00016b67:\n      uVar7 = 1;\n      FUN_000183f0();\n    }\n  }\n  else {\n    iVar5 = 9;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)"-loghost";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar13 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar15 = false;\n    bVar12 = (!bVar13 && !bVar12) == bVar13;\n    if (!bVar12) {\n      iVar5 = 9;\n      pbVar9 = param_1;\n      pbVar11 = (byte *)"-hostkey";\n      do {\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        bVar15 = *pbVar9 < *pbVar11;\n        bVar12 = *pbVar9 == *pbVar11;\n        pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n      } while (bVar12);\n      bVar12 = (!bVar15 && !bVar12) == bVar15;\n      if (bVar12) {\n        if (param_2 == (char *)0x0) {\n          return 0xfffffffe;\n        }\n        if (param_3 < 0) {\n          return 2;\n        }\nLAB_00016218:\n        if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n        if (param_3 != 0) goto LAB_00016123;\n        goto LAB_00015f0d;\n      }\n      goto LAB_0001624d;\n    }\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n    if (param_3 != 0) goto LAB_00016123;\nLAB_00015ec5:\n    uVar14 = auStack_2c < (undefined1 *)0x4;\n    uVar16 = &stack0x00000000 == (undefined1 *)0x30;\n    FUN_00018530();\n    iVar5 = 9;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)"-hostkey";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);\n    bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n    if (!bVar12) goto LAB_00016248;\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\nLAB_00015f0d:\n    FUN_00019990();\n    iVar5 = FUN_0001a210();\n    uVar14 = 0;\n    uVar16 = iVar5 == 0;\n    if ((bool)uVar16) {\n      FUN_00044820();\n      FUN_0001a110();\n      return 2;\n    }\n    uVar7 = 2;\n    FUN_000185e0();\n    FUN_0001a110();\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b0ec;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);\n    bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n    if (!bVar12) goto LAB_0001626b;\n    bVar12 = (DAT_0006f0a0 & 3) == 0;\n    if (!bVar12) goto LAB_000161c3;\nLAB_00015f8f:\n    bVar15 = false;\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)0x53a3b;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    if ((!bVar15 && !bVar12) == bVar15) {\n      FUN_00019ef0();\n      FUN_00019990();\n    }\n    else {\n      iVar5 = FUN_00019140();\n      if (iVar5 == 0) {\n        FUN_00044820();\n        return 2;\n      }\n      do {\n        iVar5 = FUN_00019140();\n      } while (iVar5 != 0);\n      FUN_00019ef0();\n      FUN_00019990();\n    }\n    uVar14 = (undefined1 *)0xffffffef < &stack0xffffffc4;\n    uVar16 = &stack0x00000000 == (undefined1 *)0x2c;\n    uVar7 = 2;\n    FUN_000185e0();\n    FUN_0001a110();\n    FUN_0001a110();\n    iVar5 = 4;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b0fd;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);\n    bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n    if (bVar12) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;\n      goto LAB_000162ed;\n    }\nLAB_00016698:\n    bVar15 = false;\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b101;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar12 = (!bVar15 && !bVar12) == bVar15;\n    if (bVar12) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;\n      if (param_3 != 0) goto LAB_00016123;\n      goto LAB_0001639b;\n    }\nLAB_000166e0:\n    bVar15 = false;\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b104;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar12 = (!bVar15 && !bVar12) == bVar15;\n    if (bVar12) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n      if (param_3 != 0) goto LAB_00016723;\n      goto LAB_000164a7;\n    }\nLAB_00016777:\n    bVar15 = false;\n    iVar5 = 4;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b107;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    if ((!bVar15 && !bVar12) == bVar15) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n      if (param_3 != 0) goto LAB_00016723;\n      goto LAB_000164f6;\n    }\n    iVar5 = strcmp((char *)param_1,"-agent");\n    if ((iVar5 != 0) && (iVar5 = strcmp((char *)param_1,"-pagent"), iVar5 != 0)) goto LAB_0001685f;\nLAB_00016884:\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_0001688c:\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n    if (param_3 != 0) goto LAB_00015c78;\nLAB_000168a1:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-noagent");\n    if (iVar5 != 0) {\n      uVar7 = 1;\n      iVar5 = strcmp((char *)param_1,"-nopagent");\n      if (iVar5 != 0) goto LAB_000165eb;\n      goto LAB_00016e44;\n    }\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\nLAB_000168e1:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-A");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      goto LAB_00016921;\n    }\n    uVar7 = 1;\n    iVar5 = strcmp((char *)param_1,"-a");\n    if (iVar5 == 0) {\nLAB_0001700b:\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\n      goto LAB_00016961;\n    }\nLAB_00016f0f:\n    iVar5 = strcmp((char *)param_1,"-X");\n    if (iVar5 != 0) goto LAB_00016f97;\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_00016f38:\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n    if (param_3 != 0) goto LAB_00015c78;\nLAB_000169a1:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-x");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\nLAB_000169e4:\n      FUN_000183f0();\n      iVar5 = strcmp((char *)param_1,"-t");\n      if (iVar5 == 0) {\n        if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n        goto LAB_00016a27;\n      }\n      uVar7 = 1;\n      iVar5 = strcmp((char *)param_1,"-T");\n      if (iVar5 == 0) goto LAB_0001770d;\nLAB_00017759:\n      iVar5 = strcmp((char *)param_1,"-N");\n      if (iVar5 != 0) goto LAB_00017727;\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_000176cd:\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\n      goto LAB_00016aa7;\n    }\n    uVar7 = 1;\n    iVar5 = strcmp((char *)param_1,"-t");\n    if (iVar5 != 0) goto LAB_000177b1;\nLAB_0001707c:\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n    if (param_3 != 0) goto LAB_00017091;\nLAB_00016a27:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-T");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      goto LAB_00016a67;\n    }\n    uVar7 = 1;\n    iVar5 = strcmp((char *)param_1,"-N");\n    if (iVar5 == 0) goto LAB_000176cd;\nLAB_00017727:\n    iVar5 = strcmp((char *)param_1,"-C");\n    if (iVar5 != 0) goto LAB_00017679;\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_0001762d:\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n    if (param_3 != 0) goto LAB_00015c78;\nLAB_00016ae7:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-1");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\nLAB_00016b27:\n      FUN_000183f0();\n      iVar5 = strcmp((char *)param_1,"-2");\n      if (iVar5 == 0) {\n        if ((DAT_0006f0a0 & 2) != 0) {\nLAB_00015d50:\n          FUN_00044820();\n          return 1;\n        }\n        goto LAB_00016b67;\n      }\n    }\n    else {\n      iVar5 = strcmp((char *)param_1,"-2");\n      if (iVar5 == 0) goto LAB_000175ad;\n    }\n    uVar7 = 1;\n  }\n  iVar5 = strcmp((char *)param_1,"-i");\n  if (iVar5 == 0) {\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n    if (param_3 != 0) goto LAB_00016123;\n    FUN_00041790();\n    FUN_00018770();\n    FUN_00041820();\n    iVar5 = strcmp((char *)param_1,"-4");\n    if ((iVar5 == 0) || (iVar5 = strcmp((char *)param_1,"-ipv4"), iVar5 == 0)) goto LAB_00017485;\n    iVar5 = strcmp((char *)param_1,"-6");\n    if (iVar5 == 0) goto LAB_00016c88;\n    uVar7 = 2;\n    iVar5 = strcmp((char *)param_1,"-ipv6");\njoined_r0x000174dc:\n    if (iVar5 == 0) goto LAB_00016c88;\n  }\n  else {\n    iVar5 = strcmp((char *)param_1,"-4");\n    if ((iVar5 == 0) || (iVar5 = strcmp((char *)param_1,"-ipv4"), iVar5 == 0)) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\nLAB_00017091:\n        FUN_00015950();\n        return 1;\n      }\nLAB_00017485:\n      FUN_000183f0();\n      iVar5 = strcmp((char *)param_1,"-6");\n      if (iVar5 != 0) {\n        uVar7 = 1;\n        iVar5 = strcmp((char *)param_1,"-ipv6");\n        goto joined_r0x000174dc;\n      }\n    }\n    else {\n      iVar5 = strcmp((char *)param_1,"-6");\n      if ((iVar5 != 0) && (iVar5 = strcmp((char *)param_1,"-ipv6"), iVar5 != 0)) goto LAB_00016ca6;\n      if (param_3 < 0) {\n        return 1;\n      }\n      if (param_3 != 0) goto LAB_00017091;\n    }\nLAB_00016c88:\n    uVar7 = 1;\n    FUN_000183f0();\n  }\nLAB_00016ca6:\n  iVar5 = strcmp((char *)param_1,"-sercfg");\n  if (iVar5 == 0) {\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;\n    if (param_3 != 0) {\nLAB_00016723:\n      FUN_00015950();\n      return 2;\n    }\n    iVar5 = FUN_00017cd0();\n    pcVar8 = param_2;\n    if (iVar5 != 4) {\n      FUN_00044820();\n    }\n    for (; *pcVar8 != '\0'; pcVar8 = pcVar8 + iVar10 + iVar5) {\n      pcVar4 = strchr(pcVar8,0x2c);\n      if (pcVar4 == (char *)0x0) {\n        uVar6 = 0xffffffff;\n        iVar5 = 0;\n        pcVar4 = pcVar8;\n        do {\n          if (uVar6 == 0) break;\n          uVar6 = uVar6 - 1;\n          cVar1 = *pcVar4;\n          pcVar4 = pcVar4 + (uint)bVar17 * -2 + 1;\n        } while (cVar1 != '\0');\n        iVar10 = ~uVar6 - 1;\n      }\n      else {\n        *pcVar4 = '\0';\n        iVar5 = 1;\n        iVar10 = (int)pcVar4 - (int)pcVar8;\n      }\n      if (iVar10 == 1) {\n        switch(*pcVar8) {\n        case '1':\n        case '2':\n          FUN_000183f0();\n          break;\n        default:\n          FUN_00044820();\n          break;\n        case '5':\n        case '6':\n        case '7':\n        case '8':\n        case '9':\n          FUN_000183f0();\n          break;\n        case 'D':\n          FUN_000183f0();\n          break;\n        case 'N':\n          FUN_000183f0();\n          break;\n        case 'R':\n          FUN_000183f0();\n          break;\n        case 'X':\n          FUN_000183f0();\n          break;\n        case 'e':\n          FUN_000183f0();\n          break;\n        case 'm':\n          FUN_000183f0();\n          break;\n        case 'n':\n          FUN_000183f0();\n          break;\n        case 'o':\n          FUN_000183f0();\n          break;\n        case 's':\n          FUN_000183f0();\n        }\n      }\n      else if ((iVar10 == 3) && (iVar2 = strncmp(pcVar8,"1.5",3), iVar2 == 0)) {\n        FUN_000183f0();\n      }\n      else {\n        lVar3 = strtol(pcVar8,(char **)0x0,10);\n        if (lVar3 == 0) {\n          FUN_00044820();\n        }\n        else {\n          FUN_000183f0();\n        }\n      }\n    }\n    iVar5 = strcmp((char *)param_1,"-sessionlog");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 1) != 0) goto LAB_000161c3;\n      goto LAB_0001722b;\n    }\n    iVar5 = strcmp((char *)param_1,"-sshlog");\n    if (iVar5 != 0) goto LAB_000173ff;\nLAB_000173c4:\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n    if (param_3 != 0) {\nLAB_00016123:\n      FUN_00015950();\n      return 2;\n    }\n  }\n  else {\n    iVar5 = strcmp((char *)param_1,"-sessionlog");\n    if (iVar5 != 0) {\n      iVar5 = strcmp((char *)param_1,"-sshlog");\n      if (iVar5 != 0) goto LAB_00017404;\nLAB_000173b1:\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      goto LAB_000173c4;\n    }\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    if ((DAT_0006f0a0 & 1) != 0) goto LAB_000161c3;\n    if (param_3 != 0) goto LAB_00016123;\nLAB_0001722b:\n    FUN_00041790();\n    FUN_00018770();\n    FUN_000183f0();\n    FUN_00041820();\n    iVar5 = strcmp((char *)param_1,"-sshlog");\n    if (iVar5 != 0) {\nLAB_000173ff:\n      uVar7 = 2;\nLAB_00017404:\n      iVar5 = strcmp((char *)param_1,"-sshrawlog");\n      if (iVar5 != 0) {\n        iVar5 = strcmp((char *)param_1,"-proxycmd");\n        if (iVar5 != 0) {\n          return uVar7;\n        }\n        if (param_2 == (char *)0x0) {\n          return 0xfffffffe;\n        }\n        if (param_3 < 0) {\n          return 2;\n        }\n        if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n        if (param_3 != 0) goto LAB_00016123;\n        goto LAB_00017304;\n      }\n      goto LAB_000173b1;\n    }\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n  }\n  FUN_00041790();\n  FUN_00018770();\n  strcmp((char *)param_1,"-sshlog");\n  FUN_000183f0();\n  FUN_00041820();\n  iVar5 = strcmp((char *)param_1,"-proxycmd");\n  if (iVar5 != 0) {\n    return 2;\n  }\n  if ((DAT_0006f0a0 & 2) == 0) {\nLAB_00017304:\n    FUN_000183f0();\n    FUN_00018530();\n    return 2;\n  }\nLAB_000161c3:\n  FUN_00044820();\n  return 2;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "FILE *__stream;" type_identifier (pointer_declarator "*__stream" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "long lVar3;" (sized_type_specifier "long" long) identifier ;) (declaration "char *pcVar4;" primitive_type (pointer_declarator "*pcVar4" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "char *pcVar8;" primitive_type (pointer_declarator "*pcVar8" * identifier) ;) (declaration "byte *pbVar9;" type_identifier (pointer_declarator "*pbVar9" * identifier) ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "byte *pbVar11;" type_identifier (pointer_declarator "*pbVar11" * 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 "undefined1 auStack_2c [8];" type_identifier (array_declarator "auStack_2c [8]" identifier [ number_literal ]) ;) (declaration "int local_24;" primitive_type identifier ;) (declaration "int local_20;" primitive_type identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "bVar17 = 0;" (assignment_expression "bVar17 = 0" identifier = number_literal) ;) (expression_statement "iVar5 = 6;" (assignment_expression "iVar5 = 6" identifier = number_literal) ;) (expression_statement "uStack_14 = 0x15b6e;" (assignment_expression "uStack_14 = 0x15b6e" identifier = number_literal) ;) (expression_statement "bVar12 = &stack0xfffffff0 < (undefined1 *)0x1c;" (assignment_expression "bVar12 = &stack0xfffffff0 < (undefined1 *)0x1c" identifier = (binary_expression "&stack0xfffffff0 < (undefined1 *)0x1c" (pointer_expression "&stack0xfffffff0" & identifier) < (cast_expression "(undefined1 *)0x1c" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "bVar15 = &stack0x00000000 == (undefined1 *)0x2c;" (assignment_expression "bVar15 = &stack0x00000000 == (undefined1 *)0x2c" identifier = (binary_expression "&stack0x00000000 == (undefined1 *)0x2c" (pointer_expression "&stack0x00000000" & identifier) == (cast_expression "(undefined1 *)0x2c" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "pbVar9 = param_1;" (assignment_expression "pbVar9 = param_1" identifier = identifier) ;) (expression_statement "pbVar11 = (byte *)"-load";" (assignment_expression "pbVar11 = (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 (iVar5 == 0) break;\n    iVar5 = iVar5 + -1;\n    bVar12 = *pbVar9 < *pbVar11;\n    bVar15 = *pbVar9 == *pbVar11;\n    pbVar9 = pbVar9 + 1;\n    pbVar11 = pbVar11 + 1;\n  } while (bVar15);" do (compound_statement "{\n    if (iVar5 == 0) break;\n    iVar5 = iVar5 + -1;\n    bVar12 = *pbVar9 < *pbVar11;\n    bVar15 = *pbVar9 == *pbVar11;\n    pbVar9 = pbVar9 + 1;\n    pbVar11 = pbVar11 + 1;\n  }" { (if_statement "if (iVar5 == 0) break;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) (expression_statement "bVar12 = *pbVar9 < *pbVar11;" (assignment_expression "bVar12 = *pbVar9 < *pbVar11" identifier = (binary_expression "*pbVar9 < *pbVar11" (pointer_expression "*pbVar9" * identifier) < (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "bVar15 = *pbVar9 == *pbVar11;" (assignment_expression "bVar15 = *pbVar9 == *pbVar11" identifier = (binary_expression "*pbVar9 == *pbVar11" (pointer_expression "*pbVar9" * identifier) == (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "pbVar9 = pbVar9 + 1;" (assignment_expression "pbVar9 = pbVar9 + 1" identifier = (binary_expression "pbVar9 + 1" identifier + number_literal)) ;) (expression_statement "pbVar11 = pbVar11 + 1;" (assignment_expression "pbVar11 = pbVar11 + 1" identifier = (binary_expression "pbVar11 + 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 (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    thunk_FUN_000249b0();\n    DAT_0006f2f4 = 1;\n    DAT_0006f2f8 = FUN_00019990();\n    return 2;\n  }" if (parenthesized_expression "(bVar12)" ( identifier )) (compound_statement "{\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    thunk_FUN_000249b0();\n    DAT_0006f2f4 = 1;\n    DAT_0006f2f8 = FUN_00019990();\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 (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 "thunk_FUN_000249b0();" (call_expression "thunk_FUN_000249b0()" identifier (argument_list "()" ( ))) ;) (expression_statement "DAT_0006f2f4 = 1;" (assignment_expression "DAT_0006f2f4 = 1" identifier = number_literal) ;) (expression_statement "DAT_0006f2f8 = FUN_00019990();" (assignment_expression "DAT_0006f2f8 = FUN_00019990()" identifier = (call_expression "FUN_00019990()" identifier (argument_list "()" ( )))) ;) (return_statement "return 2;" return number_literal ;) })) (expression_statement "iVar5 = 5;" (assignment_expression "iVar5 = 5" identifier = number_literal) ;) (expression_statement "pbVar9 = param_1;" (assignment_expression "pbVar9 = param_1" identifier = identifier) ;) (expression_statement "pbVar11 = &DAT_0004b0b5;" (assignment_expression "pbVar11 = &DAT_0004b0b5" identifier = (pointer_expression "&DAT_0004b0b5" & identifier)) ;) (do_statement "do {\n    if (iVar5 == 0) break;\n    iVar5 = iVar5 + -1;\n    bVar13 = *pbVar9 < *pbVar11;\n    bVar12 = *pbVar9 == *pbVar11;\n    pbVar9 = pbVar9 + 1;\n    pbVar11 = pbVar11 + 1;\n  } while (bVar12);" do (compound_statement "{\n    if (iVar5 == 0) break;\n    iVar5 = iVar5 + -1;\n    bVar13 = *pbVar9 < *pbVar11;\n    bVar12 = *pbVar9 == *pbVar11;\n    pbVar9 = pbVar9 + 1;\n    pbVar11 = pbVar11 + 1;\n  }" { (if_statement "if (iVar5 == 0) break;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) (expression_statement "bVar13 = *pbVar9 < *pbVar11;" (assignment_expression "bVar13 = *pbVar9 < *pbVar11" identifier = (binary_expression "*pbVar9 < *pbVar11" (pointer_expression "*pbVar9" * identifier) < (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "bVar12 = *pbVar9 == *pbVar11;" (assignment_expression "bVar12 = *pbVar9 == *pbVar11" identifier = (binary_expression "*pbVar9 == *pbVar11" (pointer_expression "*pbVar9" * identifier) == (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "pbVar9 = pbVar9 + 1;" (assignment_expression "pbVar9 = pbVar9 + 1" identifier = (binary_expression "pbVar9 + 1" identifier + number_literal)) ;) (expression_statement "pbVar11 = pbVar11 + 1;" (assignment_expression "pbVar11 = pbVar11 + 1" identifier = (binary_expression "pbVar11 + 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 (param_3 < 0) {\n      return 1;\n    }\n    if ((DAT_0006f0a0 & 3) == 0) {\n      if (param_3 == 0) {\n        DAT_0006f2dc = 3;\n        DAT_0006f2e4 = 0x16;\nLAB_00015c0d:\n        FUN_000183f0();\n        FUN_000183f0();\n        return 1;\n      }\n      goto LAB_00015c78;\n    }\n    goto LAB_00015d50;\n  }" if (parenthesized_expression "(bVar12)" ( identifier )) (compound_statement "{\n    if (param_3 < 0) {\n      return 1;\n    }\n    if ((DAT_0006f0a0 & 3) == 0) {\n      if (param_3 == 0) {\n        DAT_0006f2dc = 3;\n        DAT_0006f2e4 = 0x16;\nLAB_00015c0d:\n        FUN_000183f0();\n        FUN_000183f0();\n        return 1;\n      }\n      goto LAB_00015c78;\n    }\n    goto LAB_00015d50;\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 ((DAT_0006f0a0 & 3) == 0) {\n      if (param_3 == 0) {\n        DAT_0006f2dc = 3;\n        DAT_0006f2e4 = 0x16;\nLAB_00015c0d:\n        FUN_000183f0();\n        FUN_000183f0();\n        return 1;\n      }\n      goto LAB_00015c78;\n    }" if (parenthesized_expression "((DAT_0006f0a0 & 3) == 0)" ( (binary_expression "(DAT_0006f0a0 & 3) == 0" (parenthesized_expression "(DAT_0006f0a0 & 3)" ( (binary_expression "DAT_0006f0a0 & 3" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      if (param_3 == 0) {\n        DAT_0006f2dc = 3;\n        DAT_0006f2e4 = 0x16;\nLAB_00015c0d:\n        FUN_000183f0();\n        FUN_000183f0();\n        return 1;\n      }\n      goto LAB_00015c78;\n    }" { (if_statement "if (param_3 == 0) {\n        DAT_0006f2dc = 3;\n        DAT_0006f2e4 = 0x16;\nLAB_00015c0d:\n        FUN_000183f0();\n        FUN_000183f0();\n        return 1;\n      }" if (parenthesized_expression "(param_3 == 0)" ( (binary_expression "param_3 == 0" identifier == number_literal) )) (compound_statement "{\n        DAT_0006f2dc = 3;\n        DAT_0006f2e4 = 0x16;\nLAB_00015c0d:\n        FUN_000183f0();\n        FUN_000183f0();\n        return 1;\n      }" { (expression_statement "DAT_0006f2dc = 3;" (assignment_expression "DAT_0006f2dc = 3" identifier = number_literal) ;) (expression_statement "DAT_0006f2e4 = 0x16;" (assignment_expression "DAT_0006f2e4 = 0x16" identifier = number_literal) ;) (labeled_statement "LAB_00015c0d:\n        FUN_000183f0();" statement_identifier : (expression_statement "FUN_000183f0();" (call_expression "FUN_000183f0()" identifier (argument_list "()" ( ))) ;)) (expression_statement "FUN_000183f0();" (call_expression "FUN_000183f0()" identifier (argument_list "()" ( ))) ;) (return_statement "return 1;" return number_literal ;) })) (goto_statement "goto LAB_00015c78;" goto statement_identifier ;) })) (goto_statement "goto LAB_00015d50;" goto statement_identifier ;) })) (expression_statement "iVar5 = 8;" (assignment_expression "iVar5 = 8" identifier = number_literal) ;) (expression_statement "pbVar9 = param_1;" (assignment_expression "pbVar9 = param_1" identifier = identifier) ;) (expression_statement "pbVar11 = (byte *)"-telnet";" (assignment_expression "pbVar11 = (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 (iVar5 == 0) break;\n    iVar5 = iVar5 + -1;\n    bVar15 = *pbVar9 < *pbVar11;\n    bVar12 = *pbVar9 == *pbVar11;\n    pbVar9 = pbVar9 + 1;\n    pbVar11 = pbVar11 + 1;\n  } while (bVar12);" do (compound_statement "{\n    if (iVar5 == 0) break;\n    iVar5 = iVar5 + -1;\n    bVar15 = *pbVar9 < *pbVar11;\n    bVar12 = *pbVar9 == *pbVar11;\n    pbVar9 = pbVar9 + 1;\n    pbVar11 = pbVar11 + 1;\n  }" { (if_statement "if (iVar5 == 0) break;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) (expression_statement "bVar15 = *pbVar9 < *pbVar11;" (assignment_expression "bVar15 = *pbVar9 < *pbVar11" identifier = (binary_expression "*pbVar9 < *pbVar11" (pointer_expression "*pbVar9" * identifier) < (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "bVar12 = *pbVar9 == *pbVar11;" (assignment_expression "bVar12 = *pbVar9 == *pbVar11" identifier = (binary_expression "*pbVar9 == *pbVar11" (pointer_expression "*pbVar9" * identifier) == (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "pbVar9 = pbVar9 + 1;" (assignment_expression "pbVar9 = pbVar9 + 1" identifier = (binary_expression "pbVar9 + 1" identifier + number_literal)) ;) (expression_statement "pbVar11 = pbVar11 + 1;" (assignment_expression "pbVar11 = pbVar11 + 1" identifier = (binary_expression "pbVar11 + 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 (param_3 < 0) {\n      return 1;\n    }\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n    if (param_3 == 0) {\n      DAT_0006f2dc = 1;\n      DAT_0006f2e4 = 0x17;\n      goto LAB_00015c0d;\n    }\n    goto LAB_00015c78;\n  }" if (parenthesized_expression "(bVar12)" ( identifier )) (compound_statement "{\n    if (param_3 < 0) {\n      return 1;\n    }\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n    if (param_3 == 0) {\n      DAT_0006f2dc = 1;\n      DAT_0006f2e4 = 0x17;\n      goto LAB_00015c0d;\n    }\n    goto LAB_00015c78;\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 ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;" if (parenthesized_expression "((DAT_0006f0a0 & 3) != 0)" ( (binary_expression "(DAT_0006f0a0 & 3) != 0" (parenthesized_expression "(DAT_0006f0a0 & 3)" ( (binary_expression "DAT_0006f0a0 & 3" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00015d50;" goto statement_identifier ;)) (if_statement "if (param_3 == 0) {\n      DAT_0006f2dc = 1;\n      DAT_0006f2e4 = 0x17;\n      goto LAB_00015c0d;\n    }" if (parenthesized_expression "(param_3 == 0)" ( (binary_expression "param_3 == 0" identifier == number_literal) )) (compound_statement "{\n      DAT_0006f2dc = 1;\n      DAT_0006f2e4 = 0x17;\n      goto LAB_00015c0d;\n    }" { (expression_statement "DAT_0006f2dc = 1;" (assignment_expression "DAT_0006f2dc = 1" identifier = number_literal) ;) (expression_statement "DAT_0006f2e4 = 0x17;" (assignment_expression "DAT_0006f2e4 = 0x17" identifier = number_literal) ;) (goto_statement "goto LAB_00015c0d;" goto statement_identifier ;) })) (goto_statement "goto LAB_00015c78;" goto statement_identifier ;) })) (expression_statement "iVar5 = 8;" (assignment_expression "iVar5 = 8" identifier = number_literal) ;) (expression_statement "pbVar9 = param_1;" (assignment_expression "pbVar9 = param_1" identifier = identifier) ;) (expression_statement "pbVar11 = (byte *)"-rlogin";" (assignment_expression "pbVar11 = (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 (iVar5 == 0) break;\n    iVar5 = iVar5 + -1;\n    bVar13 = *pbVar9 < *pbVar11;\n    bVar12 = *pbVar9 == *pbVar11;\n    pbVar9 = pbVar9 + 1;\n    pbVar11 = pbVar11 + 1;\n  } while (bVar12);" do (compound_statement "{\n    if (iVar5 == 0) break;\n    iVar5 = iVar5 + -1;\n    bVar13 = *pbVar9 < *pbVar11;\n    bVar12 = *pbVar9 == *pbVar11;\n    pbVar9 = pbVar9 + 1;\n    pbVar11 = pbVar11 + 1;\n  }" { (if_statement "if (iVar5 == 0) break;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) (expression_statement "bVar13 = *pbVar9 < *pbVar11;" (assignment_expression "bVar13 = *pbVar9 < *pbVar11" identifier = (binary_expression "*pbVar9 < *pbVar11" (pointer_expression "*pbVar9" * identifier) < (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "bVar12 = *pbVar9 == *pbVar11;" (assignment_expression "bVar12 = *pbVar9 == *pbVar11" identifier = (binary_expression "*pbVar9 == *pbVar11" (pointer_expression "*pbVar9" * identifier) == (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "pbVar9 = pbVar9 + 1;" (assignment_expression "pbVar9 = pbVar9 + 1" identifier = (binary_expression "pbVar9 + 1" identifier + number_literal)) ;) (expression_statement "pbVar11 = pbVar11 + 1;" (assignment_expression "pbVar11 = pbVar11 + 1" identifier = (binary_expression "pbVar11 + 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 (param_3 < 0) {\n      return 1;\n    }\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n    if (param_3 == 0) {\n      DAT_0006f2dc = 2;\n      DAT_0006f2e4 = 0x201;\n      goto LAB_00015c0d;\n    }\n    goto LAB_00015c78;\n  }" if (parenthesized_expression "(bVar12)" ( identifier )) (compound_statement "{\n    if (param_3 < 0) {\n      return 1;\n    }\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n    if (param_3 == 0) {\n      DAT_0006f2dc = 2;\n      DAT_0006f2e4 = 0x201;\n      goto LAB_00015c0d;\n    }\n    goto LAB_00015c78;\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 ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;" if (parenthesized_expression "((DAT_0006f0a0 & 3) != 0)" ( (binary_expression "(DAT_0006f0a0 & 3) != 0" (parenthesized_expression "(DAT_0006f0a0 & 3)" ( (binary_expression "DAT_0006f0a0 & 3" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00015d50;" goto statement_identifier ;)) (if_statement "if (param_3 == 0) {\n      DAT_0006f2dc = 2;\n      DAT_0006f2e4 = 0x201;\n      goto LAB_00015c0d;\n    }" if (parenthesized_expression "(param_3 == 0)" ( (binary_expression "param_3 == 0" identifier == number_literal) )) (compound_statement "{\n      DAT_0006f2dc = 2;\n      DAT_0006f2e4 = 0x201;\n      goto LAB_00015c0d;\n    }" { (expression_statement "DAT_0006f2dc = 2;" (assignment_expression "DAT_0006f2dc = 2" identifier = number_literal) ;) (expression_statement "DAT_0006f2e4 = 0x201;" (assignment_expression "DAT_0006f2e4 = 0x201" identifier = number_literal) ;) (goto_statement "goto LAB_00015c0d;" goto statement_identifier ;) })) (goto_statement "goto LAB_00015c78;" goto statement_identifier ;) })) (expression_statement "iVar5 = 5;" (assignment_expression "iVar5 = 5" identifier = number_literal) ;) (expression_statement "pbVar9 = param_1;" (assignment_expression "pbVar9 = param_1" identifier = identifier) ;) (expression_statement "pbVar11 = &DAT_0004b0ca;" (assignment_expression "pbVar11 = &DAT_0004b0ca" identifier = (pointer_expression "&DAT_0004b0ca" & identifier)) ;) (do_statement "do {\n    if (iVar5 == 0) break;\n    iVar5 = iVar5 + -1;\n    bVar15 = *pbVar9 < *pbVar11;\n    bVar12 = *pbVar9 == *pbVar11;\n    pbVar9 = pbVar9 + 1;\n    pbVar11 = pbVar11 + 1;\n  } while (bVar12);" do (compound_statement "{\n    if (iVar5 == 0) break;\n    iVar5 = iVar5 + -1;\n    bVar15 = *pbVar9 < *pbVar11;\n    bVar12 = *pbVar9 == *pbVar11;\n    pbVar9 = pbVar9 + 1;\n    pbVar11 = pbVar11 + 1;\n  }" { (if_statement "if (iVar5 == 0) break;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) (expression_statement "bVar15 = *pbVar9 < *pbVar11;" (assignment_expression "bVar15 = *pbVar9 < *pbVar11" identifier = (binary_expression "*pbVar9 < *pbVar11" (pointer_expression "*pbVar9" * identifier) < (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "bVar12 = *pbVar9 == *pbVar11;" (assignment_expression "bVar12 = *pbVar9 == *pbVar11" identifier = (binary_expression "*pbVar9 == *pbVar11" (pointer_expression "*pbVar9" * identifier) == (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "pbVar9 = pbVar9 + 1;" (assignment_expression "pbVar9 = pbVar9 + 1" identifier = (binary_expression "pbVar9 + 1" identifier + number_literal)) ;) (expression_statement "pbVar11 = pbVar11 + 1;" (assignment_expression "pbVar11 = pbVar11 + 1" identifier = (binary_expression "pbVar11 + 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 (param_3 < 0) {\n      return 1;\n    }\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n    if (param_3 != 0) goto LAB_00015c78;\n    uVar14 = auStack_2c < (undefined1 *)0x4;\n    uVar16 = &stack0x00000000 == (undefined1 *)0x30;\n    DAT_0006f2dc = 0;\n    FUN_000183f0();\n    iVar5 = 8;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)"-serial";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);\n    bVar12 = false;\n    bVar15 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n    if (bVar15) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      goto LAB_00015dd0;\n    }\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b0d7;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar12 = *pbVar9 < *pbVar11;\n      bVar15 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar15);\n    bVar12 = (!bVar12 && !bVar15) == bVar12;\n    if (bVar12) goto LAB_00015e28;\nLAB_00015e31:\n    uVar7 = 1;\n  }\n  else {\n    iVar5 = 8;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)"-serial";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar13 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + 1;\n      pbVar11 = pbVar11 + 1;\n    } while (bVar12);\n    bVar15 = false;\n    bVar12 = (!bVar13 && !bVar12) == bVar13;\n    if (bVar12) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\nLAB_00015dd0:\n      DAT_0006f2dc = 4;\n      FUN_000183f0();\n      FUN_00017e80();\n      uVar14 = (undefined1 *)0xfffffff3 < &stack0xffffffc4;\n      uVar16 = &stack0x00000000 == (undefined1 *)0x30;\n      FUN_00018530();\n      iVar5 = 3;\n      pbVar9 = param_1;\n      pbVar11 = &DAT_0004b0d7;\n      do {\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        uVar14 = *pbVar9 < *pbVar11;\n        uVar16 = *pbVar9 == *pbVar11;\n        pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n      } while ((bool)uVar16);\n      bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n      if (bVar12) goto LAB_00015e28;\n      goto LAB_00015e31;\n    }\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b0d7;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + 1;\n      pbVar11 = pbVar11 + 1;\n    } while (bVar12);\n    if ((!bVar15 && !bVar12) == bVar15) {\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_00015e28:\n      DAT_0006f2e8 = DAT_0006f2e8 | 1;\n      bVar12 = DAT_0006f2e8 == 0;\n      goto LAB_00015e31;\n    }\n    uVar7 = 0;\n    bVar12 = true;\n  }" if (parenthesized_expression "(bVar12)" ( identifier )) (compound_statement "{\n    if (param_3 < 0) {\n      return 1;\n    }\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n    if (param_3 != 0) goto LAB_00015c78;\n    uVar14 = auStack_2c < (undefined1 *)0x4;\n    uVar16 = &stack0x00000000 == (undefined1 *)0x30;\n    DAT_0006f2dc = 0;\n    FUN_000183f0();\n    iVar5 = 8;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)"-serial";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);\n    bVar12 = false;\n    bVar15 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n    if (bVar15) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      goto LAB_00015dd0;\n    }\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b0d7;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar12 = *pbVar9 < *pbVar11;\n      bVar15 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar15);\n    bVar12 = (!bVar12 && !bVar15) == bVar12;\n    if (bVar12) goto LAB_00015e28;\nLAB_00015e31:\n    uVar7 = 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 ;) })) (if_statement "if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;" if (parenthesized_expression "((DAT_0006f0a0 & 3) != 0)" ( (binary_expression "(DAT_0006f0a0 & 3) != 0" (parenthesized_expression "(DAT_0006f0a0 & 3)" ( (binary_expression "DAT_0006f0a0 & 3" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00015d50;" goto statement_identifier ;)) (if_statement "if (param_3 != 0) goto LAB_00015c78;" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00015c78;" goto statement_identifier ;)) (expression_statement "uVar14 = auStack_2c < (undefined1 *)0x4;" (assignment_expression "uVar14 = auStack_2c < (undefined1 *)0x4" identifier = (binary_expression "auStack_2c < (undefined1 *)0x4" identifier < (cast_expression "(undefined1 *)0x4" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "uVar16 = &stack0x00000000 == (undefined1 *)0x30;" (assignment_expression "uVar16 = &stack0x00000000 == (undefined1 *)0x30" identifier = (binary_expression "&stack0x00000000 == (undefined1 *)0x30" (pointer_expression "&stack0x00000000" & identifier) == (cast_expression "(undefined1 *)0x30" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "DAT_0006f2dc = 0;" (assignment_expression "DAT_0006f2dc = 0" identifier = number_literal) ;) (expression_statement "FUN_000183f0();" (call_expression "FUN_000183f0()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar5 = 8;" (assignment_expression "iVar5 = 8" identifier = number_literal) ;) (expression_statement "pbVar9 = param_1;" (assignment_expression "pbVar9 = param_1" identifier = identifier) ;) (expression_statement "pbVar11 = (byte *)"-serial";" (assignment_expression "pbVar11 = (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 (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);" do (compound_statement "{\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    }" { (if_statement "if (iVar5 == 0) break;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) (expression_statement "uVar14 = *pbVar9 < *pbVar11;" (assignment_expression "uVar14 = *pbVar9 < *pbVar11" identifier = (binary_expression "*pbVar9 < *pbVar11" (pointer_expression "*pbVar9" * identifier) < (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "uVar16 = *pbVar9 == *pbVar11;" (assignment_expression "uVar16 = *pbVar9 == *pbVar11" identifier = (binary_expression "*pbVar9 == *pbVar11" (pointer_expression "*pbVar9" * identifier) == (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar9 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar11 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" 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      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      goto LAB_00015dd0;\n    }" if (parenthesized_expression "(bVar15)" ( identifier )) (compound_statement "{\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      goto LAB_00015dd0;\n    }" { (if_statement "if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;" if (parenthesized_expression "((DAT_0006f0a0 & 3) != 0)" ( (binary_expression "(DAT_0006f0a0 & 3) != 0" (parenthesized_expression "(DAT_0006f0a0 & 3)" ( (binary_expression "DAT_0006f0a0 & 3" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00015d50;" goto statement_identifier ;)) (goto_statement "goto LAB_00015dd0;" goto statement_identifier ;) })) (expression_statement "iVar5 = 3;" (assignment_expression "iVar5 = 3" identifier = number_literal) ;) (expression_statement "pbVar9 = param_1;" (assignment_expression "pbVar9 = param_1" identifier = identifier) ;) (expression_statement "pbVar11 = &DAT_0004b0d7;" (assignment_expression "pbVar11 = &DAT_0004b0d7" identifier = (pointer_expression "&DAT_0004b0d7" & identifier)) ;) (do_statement "do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar12 = *pbVar9 < *pbVar11;\n      bVar15 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar15);" do (compound_statement "{\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar12 = *pbVar9 < *pbVar11;\n      bVar15 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    }" { (if_statement "if (iVar5 == 0) break;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) (expression_statement "bVar12 = *pbVar9 < *pbVar11;" (assignment_expression "bVar12 = *pbVar9 < *pbVar11" identifier = (binary_expression "*pbVar9 < *pbVar11" (pointer_expression "*pbVar9" * identifier) < (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "bVar15 = *pbVar9 == *pbVar11;" (assignment_expression "bVar15 = *pbVar9 == *pbVar11" identifier = (binary_expression "*pbVar9 == *pbVar11" (pointer_expression "*pbVar9" * identifier) == (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar9 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar11 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" 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)) ;) (if_statement "if (bVar12) goto LAB_00015e28;" if (parenthesized_expression "(bVar12)" ( identifier )) (goto_statement "goto LAB_00015e28;" goto statement_identifier ;)) (labeled_statement "LAB_00015e31:\n    uVar7 = 1;" statement_identifier : (expression_statement "uVar7 = 1;" (assignment_expression "uVar7 = 1" identifier = number_literal) ;)) }) (else_clause "else {\n    iVar5 = 8;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)"-serial";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar13 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + 1;\n      pbVar11 = pbVar11 + 1;\n    } while (bVar12);\n    bVar15 = false;\n    bVar12 = (!bVar13 && !bVar12) == bVar13;\n    if (bVar12) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\nLAB_00015dd0:\n      DAT_0006f2dc = 4;\n      FUN_000183f0();\n      FUN_00017e80();\n      uVar14 = (undefined1 *)0xfffffff3 < &stack0xffffffc4;\n      uVar16 = &stack0x00000000 == (undefined1 *)0x30;\n      FUN_00018530();\n      iVar5 = 3;\n      pbVar9 = param_1;\n      pbVar11 = &DAT_0004b0d7;\n      do {\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        uVar14 = *pbVar9 < *pbVar11;\n        uVar16 = *pbVar9 == *pbVar11;\n        pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n      } while ((bool)uVar16);\n      bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n      if (bVar12) goto LAB_00015e28;\n      goto LAB_00015e31;\n    }\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b0d7;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + 1;\n      pbVar11 = pbVar11 + 1;\n    } while (bVar12);\n    if ((!bVar15 && !bVar12) == bVar15) {\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_00015e28:\n      DAT_0006f2e8 = DAT_0006f2e8 | 1;\n      bVar12 = DAT_0006f2e8 == 0;\n      goto LAB_00015e31;\n    }\n    uVar7 = 0;\n    bVar12 = true;\n  }" else (compound_statement "{\n    iVar5 = 8;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)"-serial";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar13 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + 1;\n      pbVar11 = pbVar11 + 1;\n    } while (bVar12);\n    bVar15 = false;\n    bVar12 = (!bVar13 && !bVar12) == bVar13;\n    if (bVar12) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\nLAB_00015dd0:\n      DAT_0006f2dc = 4;\n      FUN_000183f0();\n      FUN_00017e80();\n      uVar14 = (undefined1 *)0xfffffff3 < &stack0xffffffc4;\n      uVar16 = &stack0x00000000 == (undefined1 *)0x30;\n      FUN_00018530();\n      iVar5 = 3;\n      pbVar9 = param_1;\n      pbVar11 = &DAT_0004b0d7;\n      do {\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        uVar14 = *pbVar9 < *pbVar11;\n        uVar16 = *pbVar9 == *pbVar11;\n        pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n      } while ((bool)uVar16);\n      bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n      if (bVar12) goto LAB_00015e28;\n      goto LAB_00015e31;\n    }\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b0d7;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + 1;\n      pbVar11 = pbVar11 + 1;\n    } while (bVar12);\n    if ((!bVar15 && !bVar12) == bVar15) {\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_00015e28:\n      DAT_0006f2e8 = DAT_0006f2e8 | 1;\n      bVar12 = DAT_0006f2e8 == 0;\n      goto LAB_00015e31;\n    }\n    uVar7 = 0;\n    bVar12 = true;\n  }" { (expression_statement "iVar5 = 8;" (assignment_expression "iVar5 = 8" identifier = number_literal) ;) (expression_statement "pbVar9 = param_1;" (assignment_expression "pbVar9 = param_1" identifier = identifier) ;) (expression_statement "pbVar11 = (byte *)"-serial";" (assignment_expression "pbVar11 = (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 (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar13 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + 1;\n      pbVar11 = pbVar11 + 1;\n    } while (bVar12);" do (compound_statement "{\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar13 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + 1;\n      pbVar11 = pbVar11 + 1;\n    }" { (if_statement "if (iVar5 == 0) break;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) (expression_statement "bVar13 = *pbVar9 < *pbVar11;" (assignment_expression "bVar13 = *pbVar9 < *pbVar11" identifier = (binary_expression "*pbVar9 < *pbVar11" (pointer_expression "*pbVar9" * identifier) < (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "bVar12 = *pbVar9 == *pbVar11;" (assignment_expression "bVar12 = *pbVar9 == *pbVar11" identifier = (binary_expression "*pbVar9 == *pbVar11" (pointer_expression "*pbVar9" * identifier) == (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "pbVar9 = pbVar9 + 1;" (assignment_expression "pbVar9 = pbVar9 + 1" identifier = (binary_expression "pbVar9 + 1" identifier + number_literal)) ;) (expression_statement "pbVar11 = pbVar11 + 1;" (assignment_expression "pbVar11 = pbVar11 + 1" identifier = (binary_expression "pbVar11 + 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 (param_3 < 0) {\n        return 1;\n      }\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\nLAB_00015dd0:\n      DAT_0006f2dc = 4;\n      FUN_000183f0();\n      FUN_00017e80();\n      uVar14 = (undefined1 *)0xfffffff3 < &stack0xffffffc4;\n      uVar16 = &stack0x00000000 == (undefined1 *)0x30;\n      FUN_00018530();\n      iVar5 = 3;\n      pbVar9 = param_1;\n      pbVar11 = &DAT_0004b0d7;\n      do {\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        uVar14 = *pbVar9 < *pbVar11;\n        uVar16 = *pbVar9 == *pbVar11;\n        pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n      } while ((bool)uVar16);\n      bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n      if (bVar12) goto LAB_00015e28;\n      goto LAB_00015e31;\n    }" if (parenthesized_expression "(bVar12)" ( identifier )) (compound_statement "{\n      if (param_3 < 0) {\n        return 1;\n      }\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\nLAB_00015dd0:\n      DAT_0006f2dc = 4;\n      FUN_000183f0();\n      FUN_00017e80();\n      uVar14 = (undefined1 *)0xfffffff3 < &stack0xffffffc4;\n      uVar16 = &stack0x00000000 == (undefined1 *)0x30;\n      FUN_00018530();\n      iVar5 = 3;\n      pbVar9 = param_1;\n      pbVar11 = &DAT_0004b0d7;\n      do {\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        uVar14 = *pbVar9 < *pbVar11;\n        uVar16 = *pbVar9 == *pbVar11;\n        pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n      } while ((bool)uVar16);\n      bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n      if (bVar12) goto LAB_00015e28;\n      goto LAB_00015e31;\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 ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;" if (parenthesized_expression "((DAT_0006f0a0 & 3) != 0)" ( (binary_expression "(DAT_0006f0a0 & 3) != 0" (parenthesized_expression "(DAT_0006f0a0 & 3)" ( (binary_expression "DAT_0006f0a0 & 3" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00015d50;" goto statement_identifier ;)) (if_statement "if (param_3 != 0) goto LAB_00015c78;" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00015c78;" goto statement_identifier ;)) (labeled_statement "LAB_00015dd0:\n      DAT_0006f2dc = 4;" statement_identifier : (expression_statement "DAT_0006f2dc = 4;" (assignment_expression "DAT_0006f2dc = 4" identifier = number_literal) ;)) (expression_statement "FUN_000183f0();" (call_expression "FUN_000183f0()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00017e80();" (call_expression "FUN_00017e80()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar14 = (undefined1 *)0xfffffff3 < &stack0xffffffc4;" (assignment_expression "uVar14 = (undefined1 *)0xfffffff3 < &stack0xffffffc4" identifier = (binary_expression "(undefined1 *)0xfffffff3 < &stack0xffffffc4" (cast_expression "(undefined1 *)0xfffffff3" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < (pointer_expression "&stack0xffffffc4" & identifier))) ;) (expression_statement "uVar16 = &stack0x00000000 == (undefined1 *)0x30;" (assignment_expression "uVar16 = &stack0x00000000 == (undefined1 *)0x30" identifier = (binary_expression "&stack0x00000000 == (undefined1 *)0x30" (pointer_expression "&stack0x00000000" & identifier) == (cast_expression "(undefined1 *)0x30" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "FUN_00018530();" (call_expression "FUN_00018530()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar5 = 3;" (assignment_expression "iVar5 = 3" identifier = number_literal) ;) (expression_statement "pbVar9 = param_1;" (assignment_expression "pbVar9 = param_1" identifier = identifier) ;) (expression_statement "pbVar11 = &DAT_0004b0d7;" (assignment_expression "pbVar11 = &DAT_0004b0d7" identifier = (pointer_expression "&DAT_0004b0d7" & identifier)) ;) (do_statement "do {\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        uVar14 = *pbVar9 < *pbVar11;\n        uVar16 = *pbVar9 == *pbVar11;\n        pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n      } while ((bool)uVar16);" do (compound_statement "{\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        uVar14 = *pbVar9 < *pbVar11;\n        uVar16 = *pbVar9 == *pbVar11;\n        pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n      }" { (if_statement "if (iVar5 == 0) break;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) (expression_statement "uVar14 = *pbVar9 < *pbVar11;" (assignment_expression "uVar14 = *pbVar9 < *pbVar11" identifier = (binary_expression "*pbVar9 < *pbVar11" (pointer_expression "*pbVar9" * identifier) < (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "uVar16 = *pbVar9 == *pbVar11;" (assignment_expression "uVar16 = *pbVar9 == *pbVar11" identifier = (binary_expression "*pbVar9 == *pbVar11" (pointer_expression "*pbVar9" * identifier) == (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar9 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar11 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" 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 = (!(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_00015e28;" if (parenthesized_expression "(bVar12)" ( identifier )) (goto_statement "goto LAB_00015e28;" goto statement_identifier ;)) (goto_statement "goto LAB_00015e31;" goto statement_identifier ;) })) (expression_statement "iVar5 = 3;" (assignment_expression "iVar5 = 3" identifier = number_literal) ;) (expression_statement "pbVar9 = param_1;" (assignment_expression "pbVar9 = param_1" identifier = identifier) ;) (expression_statement "pbVar11 = &DAT_0004b0d7;" (assignment_expression "pbVar11 = &DAT_0004b0d7" identifier = (pointer_expression "&DAT_0004b0d7" & identifier)) ;) (do_statement "do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + 1;\n      pbVar11 = pbVar11 + 1;\n    } while (bVar12);" do (compound_statement "{\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + 1;\n      pbVar11 = pbVar11 + 1;\n    }" { (if_statement "if (iVar5 == 0) break;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) (expression_statement "bVar15 = *pbVar9 < *pbVar11;" (assignment_expression "bVar15 = *pbVar9 < *pbVar11" identifier = (binary_expression "*pbVar9 < *pbVar11" (pointer_expression "*pbVar9" * identifier) < (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "bVar12 = *pbVar9 == *pbVar11;" (assignment_expression "bVar12 = *pbVar9 == *pbVar11" identifier = (binary_expression "*pbVar9 == *pbVar11" (pointer_expression "*pbVar9" * identifier) == (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "pbVar9 = pbVar9 + 1;" (assignment_expression "pbVar9 = pbVar9 + 1" identifier = (binary_expression "pbVar9 + 1" identifier + number_literal)) ;) (expression_statement "pbVar11 = pbVar11 + 1;" (assignment_expression "pbVar11 = pbVar11 + 1" identifier = (binary_expression "pbVar11 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar12)" ( identifier )) ;) (if_statement "if ((!bVar15 && !bVar12) == bVar15) {\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_00015e28:\n      DAT_0006f2e8 = DAT_0006f2e8 | 1;\n      bVar12 = DAT_0006f2e8 == 0;\n      goto LAB_00015e31;\n    }" 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) )) (compound_statement "{\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_00015e28:\n      DAT_0006f2e8 = DAT_0006f2e8 | 1;\n      bVar12 = DAT_0006f2e8 == 0;\n      goto LAB_00015e31;\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_00015e28:\n      DAT_0006f2e8 = DAT_0006f2e8 | 1;" statement_identifier : (expression_statement "DAT_0006f2e8 = DAT_0006f2e8 | 1;" (assignment_expression "DAT_0006f2e8 = DAT_0006f2e8 | 1" identifier = (binary_expression "DAT_0006f2e8 | 1" identifier | number_literal)) ;)) (expression_statement "bVar12 = DAT_0006f2e8 == 0;" (assignment_expression "bVar12 = DAT_0006f2e8 == 0" identifier = (binary_expression "DAT_0006f2e8 == 0" identifier == number_literal)) ;) (goto_statement "goto LAB_00015e31;" goto statement_identifier ;) })) (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) (expression_statement "bVar12 = true;" (assignment_expression "bVar12 = true" identifier = true) ;) }))) (expression_statement "bVar15 = false;" (assignment_expression "bVar15 = false" identifier = false) ;) (expression_statement "iVar5 = 3;" (assignment_expression "iVar5 = 3" identifier = number_literal) ;) (expression_statement "pbVar9 = param_1;" (assignment_expression "pbVar9 = param_1" identifier = identifier) ;) (expression_statement "pbVar11 = (byte *)0x53a29;" (assignment_expression "pbVar11 = (byte *)0x53a29" identifier = (cast_expression "(byte *)0x53a29" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n    if (iVar5 == 0) break;\n    iVar5 = iVar5 + -1;\n    bVar15 = *pbVar9 < *pbVar11;\n    bVar12 = *pbVar9 == *pbVar11;\n    pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n    pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n  } while (bVar12);" do (compound_statement "{\n    if (iVar5 == 0) break;\n    iVar5 = iVar5 + -1;\n    bVar15 = *pbVar9 < *pbVar11;\n    bVar12 = *pbVar9 == *pbVar11;\n    pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n    pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n  }" { (if_statement "if (iVar5 == 0) break;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) (expression_statement "bVar15 = *pbVar9 < *pbVar11;" (assignment_expression "bVar15 = *pbVar9 < *pbVar11" identifier = (binary_expression "*pbVar9 < *pbVar11" (pointer_expression "*pbVar9" * identifier) < (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "bVar12 = *pbVar9 == *pbVar11;" (assignment_expression "bVar12 = *pbVar9 == *pbVar11" identifier = (binary_expression "*pbVar9 == *pbVar11" (pointer_expression "*pbVar9" * identifier) == (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar9 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar11 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" 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 (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n    if (param_3 != 0) goto LAB_00016123;\n    uVar14 = auStack_2c < (undefined1 *)0x4;\n    uVar16 = &stack0x00000000 == (undefined1 *)0x30;\n    FUN_00018530();\n    iVar5 = 9;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)"-loghost";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);\n    bVar12 = false;\n    bVar15 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n    if (bVar15) {\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n      goto LAB_00015ec5;\n    }\n    iVar5 = 9;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)"-hostkey";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar12 = *pbVar9 < *pbVar11;\n      bVar15 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar15);\n    bVar12 = (!bVar12 && !bVar15) == bVar12;\n    if (bVar12) goto LAB_00016218;\nLAB_00016248:\n    uVar7 = 2;\nLAB_0001624d:\n    bVar15 = false;\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b0ec;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar12 = (!bVar15 && !bVar12) == bVar15;\n    if (bVar12) {\nLAB_00016647:\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;\n      bVar12 = param_3 == 0;\n      if (!bVar12) goto LAB_00016123;\n      goto LAB_00015f8f;\n    }\nLAB_0001626b:\n    bVar15 = false;\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b0ef;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar13 = false;\n    bVar12 = (!bVar15 && !bVar12) == bVar15;\n    if (bVar12) goto LAB_00016647;\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)0x53a3b;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar13 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar15 = false;\n    bVar12 = (!bVar13 && !bVar12) == bVar13;\n    if (bVar12) goto LAB_00016647;\n    iVar5 = 4;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b0fd;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar12 = (!bVar15 && !bVar12) == bVar15;\n    if (!bVar12) goto LAB_00016698;\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;\n    if (param_3 != 0) goto LAB_00016123;\nLAB_000162ed:\n    iVar5 = FUN_00019140();\n    if (iVar5 == 0) {\n      FUN_00044820();\n      return 2;\n    }\n    uVar7 = 2;\n    FUN_00019ef0();\n    FUN_00018530();\n    strtol((char *)(iVar5 + 1),(char **)0x0,10);\n    uVar14 = (undefined1 *)0xfffffff3 < &stack0xffffffc4;\n    uVar16 = &stack0x00000000 == (undefined1 *)0x30;\n    FUN_000183f0();\n    FUN_0001a110();\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b101;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);\n    bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n    if (!bVar12) goto LAB_000166e0;\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;\nLAB_0001639b:\n    iVar10 = 0;\n    iVar5 = 0;\n    __stream = fopen64(param_2,"r");\n    local_24 = 0;\n    if (__stream == (FILE *)0x0) {\n      FUN_00044820();\n      return 2;\n    }\n    while (iVar2 = fgetc(__stream), iVar2 != -1) {\n      if (iVar10 < local_24) {\n        *(char *)(iVar5 + iVar10) = (char)iVar2;\n      }\n      else {\n        local_24 = iVar10 + 0x200;\n        local_20 = iVar2;\n        iVar5 = FUN_00019c80();\n        *(char *)(iVar5 + iVar10) = (char)local_20;\n      }\n      iVar10 = iVar10 + 1;\n    }\n    if (iVar10 < local_24) {\n      *(undefined1 *)(iVar5 + iVar10) = 0;\n    }\n    else {\n      iVar5 = FUN_00019c80();\n      *(undefined1 *)(iVar5 + iVar10) = 0;\n    }\n    uVar7 = 2;\n    fclose(__stream);\n    FUN_00018530();\n    FUN_00018530();\n    uVar14 = (undefined1 *)0xfffffff3 < &stack0xffffffc4;\n    uVar16 = &stack0x00000000 == (undefined1 *)0x30;\n    FUN_000183f0();\n    FUN_0001a110();\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b104;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);\n    bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n    if (!bVar12) goto LAB_00016777;\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\nLAB_000164a7:\n    strtol(param_2,(char **)0x0,10);\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-pw");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\nLAB_000164f6:\n      iVar5 = FUN_00017cd0();\n      if (iVar5 == 3) {\n        DAT_0006f0a8 = FUN_00019990();\n        iVar5 = -1;\n        pcVar8 = param_2;\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          cVar1 = *pcVar8;\n          pcVar8 = pcVar8 + (uint)bVar17 * -2 + 1;\n        } while (cVar1 != '\0');\n        FUN_0001a1f0();\n      }\n      else {\n        FUN_00044820();\n      }\n      iVar5 = strcmp((char *)param_1,"-agent");\n      if ((iVar5 == 0) || (iVar5 = strcmp((char *)param_1,"-pagent"), iVar5 == 0))\n      goto LAB_00015d3a;\n      uVar7 = 2;\n      iVar5 = strcmp((char *)param_1,"-pageant");\n      if (iVar5 == 0) goto LAB_0001688c;\n    }\n    else {\n      iVar5 = strcmp((char *)param_1,"-agent");\n      if (iVar5 == 0) {\nLAB_00015d3a:\n        if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n        goto LAB_000168a1;\n      }\n      uVar7 = 2;\n      iVar5 = strcmp((char *)param_1,"-pagent");\n      if (iVar5 == 0) goto LAB_0001688c;\nLAB_0001685f:\n      iVar5 = strcmp((char *)param_1,"-pageant");\n      if (iVar5 == 0) goto LAB_00016884;\n    }\n    iVar5 = strcmp((char *)param_1,"-noagent");\n    if ((iVar5 == 0) || (iVar5 = strcmp((char *)param_1,"-nopagent"), iVar5 == 0)) {\nLAB_00016e5e:\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_00016e44:\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\n      goto LAB_000168e1;\n    }\nLAB_000165eb:\n    iVar5 = strcmp((char *)param_1,"-nopageant");\n    if (iVar5 == 0) goto LAB_00016e5e;\n    iVar5 = strcmp((char *)param_1,"-A");\n    if (iVar5 != 0) {\n      iVar5 = strcmp((char *)param_1,"-a");\n      if (iVar5 != 0) goto LAB_00016f0f;\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_0001700b;\n    }\n    if (param_3 < 0) {\n      return 1;\n    }\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n    if (param_3 != 0) goto LAB_00015c78;\nLAB_00016921:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-a");\n    if (iVar5 != 0) {\n      uVar7 = 1;\n      iVar5 = strcmp((char *)param_1,"-X");\n      if (iVar5 == 0) goto LAB_00016f38;\nLAB_00016f97:\n      iVar5 = strcmp((char *)param_1,"-x");\n      if (iVar5 != 0) goto LAB_0001704f;\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_00016fc4:\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\n      goto LAB_000169e4;\n    }\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\nLAB_00016961:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-X");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      goto LAB_000169a1;\n    }\n    uVar7 = 1;\n    iVar5 = strcmp((char *)param_1,"-x");\n    if (iVar5 == 0) goto LAB_00016fc4;\nLAB_0001704f:\n    iVar5 = strcmp((char *)param_1,"-t");\n    if (iVar5 == 0) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_0001707c;\n    }\nLAB_000177b1:\n    iVar5 = strcmp((char *)param_1,"-T");\n    if (iVar5 != 0) goto LAB_00017759;\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_0001770d:\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n    if (param_3 != 0) goto LAB_00017091;\nLAB_00016a67:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-N");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\nLAB_00016aa7:\n      FUN_000183f0();\n      iVar5 = strcmp((char *)param_1,"-C");\n      if (iVar5 == 0) {\n        if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n        goto LAB_00016ae7;\n      }\n      uVar7 = 1;\n      iVar5 = strcmp((char *)param_1,"-1");\n      if (iVar5 != 0) goto LAB_00017647;\nLAB_000175ed:\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\n      goto LAB_00016b27;\n    }\n    uVar7 = 1;\n    iVar5 = strcmp((char *)param_1,"-C");\n    if (iVar5 == 0) goto LAB_0001762d;\nLAB_00017679:\n    iVar5 = strcmp((char *)param_1,"-1");\n    if (iVar5 == 0) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_000175ed;\n    }\nLAB_00017647:\n    iVar5 = strcmp((char *)param_1,"-2");\n    if (iVar5 == 0) {\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_000175ad:\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n      if (param_3 != 0) {\nLAB_00015c78:\n        FUN_00015950();\n        return 1;\n      }\nLAB_00016b67:\n      uVar7 = 1;\n      FUN_000183f0();\n    }\n  }\n  else {\n    iVar5 = 9;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)"-loghost";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar13 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar15 = false;\n    bVar12 = (!bVar13 && !bVar12) == bVar13;\n    if (!bVar12) {\n      iVar5 = 9;\n      pbVar9 = param_1;\n      pbVar11 = (byte *)"-hostkey";\n      do {\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        bVar15 = *pbVar9 < *pbVar11;\n        bVar12 = *pbVar9 == *pbVar11;\n        pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n      } while (bVar12);\n      bVar12 = (!bVar15 && !bVar12) == bVar15;\n      if (bVar12) {\n        if (param_2 == (char *)0x0) {\n          return 0xfffffffe;\n        }\n        if (param_3 < 0) {\n          return 2;\n        }\nLAB_00016218:\n        if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n        if (param_3 != 0) goto LAB_00016123;\n        goto LAB_00015f0d;\n      }\n      goto LAB_0001624d;\n    }\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n    if (param_3 != 0) goto LAB_00016123;\nLAB_00015ec5:\n    uVar14 = auStack_2c < (undefined1 *)0x4;\n    uVar16 = &stack0x00000000 == (undefined1 *)0x30;\n    FUN_00018530();\n    iVar5 = 9;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)"-hostkey";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);\n    bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n    if (!bVar12) goto LAB_00016248;\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\nLAB_00015f0d:\n    FUN_00019990();\n    iVar5 = FUN_0001a210();\n    uVar14 = 0;\n    uVar16 = iVar5 == 0;\n    if ((bool)uVar16) {\n      FUN_00044820();\n      FUN_0001a110();\n      return 2;\n    }\n    uVar7 = 2;\n    FUN_000185e0();\n    FUN_0001a110();\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b0ec;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);\n    bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n    if (!bVar12) goto LAB_0001626b;\n    bVar12 = (DAT_0006f0a0 & 3) == 0;\n    if (!bVar12) goto LAB_000161c3;\nLAB_00015f8f:\n    bVar15 = false;\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)0x53a3b;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    if ((!bVar15 && !bVar12) == bVar15) {\n      FUN_00019ef0();\n      FUN_00019990();\n    }\n    else {\n      iVar5 = FUN_00019140();\n      if (iVar5 == 0) {\n        FUN_00044820();\n        return 2;\n      }\n      do {\n        iVar5 = FUN_00019140();\n      } while (iVar5 != 0);\n      FUN_00019ef0();\n      FUN_00019990();\n    }\n    uVar14 = (undefined1 *)0xffffffef < &stack0xffffffc4;\n    uVar16 = &stack0x00000000 == (undefined1 *)0x2c;\n    uVar7 = 2;\n    FUN_000185e0();\n    FUN_0001a110();\n    FUN_0001a110();\n    iVar5 = 4;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b0fd;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);\n    bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n    if (bVar12) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;\n      goto LAB_000162ed;\n    }\nLAB_00016698:\n    bVar15 = false;\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b101;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar12 = (!bVar15 && !bVar12) == bVar15;\n    if (bVar12) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;\n      if (param_3 != 0) goto LAB_00016123;\n      goto LAB_0001639b;\n    }\nLAB_000166e0:\n    bVar15 = false;\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b104;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar12 = (!bVar15 && !bVar12) == bVar15;\n    if (bVar12) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n      if (param_3 != 0) goto LAB_00016723;\n      goto LAB_000164a7;\n    }\nLAB_00016777:\n    bVar15 = false;\n    iVar5 = 4;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b107;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    if ((!bVar15 && !bVar12) == bVar15) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n      if (param_3 != 0) goto LAB_00016723;\n      goto LAB_000164f6;\n    }\n    iVar5 = strcmp((char *)param_1,"-agent");\n    if ((iVar5 != 0) && (iVar5 = strcmp((char *)param_1,"-pagent"), iVar5 != 0)) goto LAB_0001685f;\nLAB_00016884:\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_0001688c:\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n    if (param_3 != 0) goto LAB_00015c78;\nLAB_000168a1:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-noagent");\n    if (iVar5 != 0) {\n      uVar7 = 1;\n      iVar5 = strcmp((char *)param_1,"-nopagent");\n      if (iVar5 != 0) goto LAB_000165eb;\n      goto LAB_00016e44;\n    }\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\nLAB_000168e1:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-A");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      goto LAB_00016921;\n    }\n    uVar7 = 1;\n    iVar5 = strcmp((char *)param_1,"-a");\n    if (iVar5 == 0) {\nLAB_0001700b:\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\n      goto LAB_00016961;\n    }\nLAB_00016f0f:\n    iVar5 = strcmp((char *)param_1,"-X");\n    if (iVar5 != 0) goto LAB_00016f97;\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_00016f38:\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n    if (param_3 != 0) goto LAB_00015c78;\nLAB_000169a1:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-x");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\nLAB_000169e4:\n      FUN_000183f0();\n      iVar5 = strcmp((char *)param_1,"-t");\n      if (iVar5 == 0) {\n        if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n        goto LAB_00016a27;\n      }\n      uVar7 = 1;\n      iVar5 = strcmp((char *)param_1,"-T");\n      if (iVar5 == 0) goto LAB_0001770d;\nLAB_00017759:\n      iVar5 = strcmp((char *)param_1,"-N");\n      if (iVar5 != 0) goto LAB_00017727;\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_000176cd:\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\n      goto LAB_00016aa7;\n    }\n    uVar7 = 1;\n    iVar5 = strcmp((char *)param_1,"-t");\n    if (iVar5 != 0) goto LAB_000177b1;\nLAB_0001707c:\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n    if (param_3 != 0) goto LAB_00017091;\nLAB_00016a27:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-T");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      goto LAB_00016a67;\n    }\n    uVar7 = 1;\n    iVar5 = strcmp((char *)param_1,"-N");\n    if (iVar5 == 0) goto LAB_000176cd;\nLAB_00017727:\n    iVar5 = strcmp((char *)param_1,"-C");\n    if (iVar5 != 0) goto LAB_00017679;\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_0001762d:\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n    if (param_3 != 0) goto LAB_00015c78;\nLAB_00016ae7:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-1");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\nLAB_00016b27:\n      FUN_000183f0();\n      iVar5 = strcmp((char *)param_1,"-2");\n      if (iVar5 == 0) {\n        if ((DAT_0006f0a0 & 2) != 0) {\nLAB_00015d50:\n          FUN_00044820();\n          return 1;\n        }\n        goto LAB_00016b67;\n      }\n    }\n    else {\n      iVar5 = strcmp((char *)param_1,"-2");\n      if (iVar5 == 0) goto LAB_000175ad;\n    }\n    uVar7 = 1;\n  }" if (parenthesized_expression "(bVar12)" ( identifier )) (compound_statement "{\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n    if (param_3 != 0) goto LAB_00016123;\n    uVar14 = auStack_2c < (undefined1 *)0x4;\n    uVar16 = &stack0x00000000 == (undefined1 *)0x30;\n    FUN_00018530();\n    iVar5 = 9;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)"-loghost";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);\n    bVar12 = false;\n    bVar15 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n    if (bVar15) {\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n      goto LAB_00015ec5;\n    }\n    iVar5 = 9;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)"-hostkey";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar12 = *pbVar9 < *pbVar11;\n      bVar15 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar15);\n    bVar12 = (!bVar12 && !bVar15) == bVar12;\n    if (bVar12) goto LAB_00016218;\nLAB_00016248:\n    uVar7 = 2;\nLAB_0001624d:\n    bVar15 = false;\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b0ec;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar12 = (!bVar15 && !bVar12) == bVar15;\n    if (bVar12) {\nLAB_00016647:\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;\n      bVar12 = param_3 == 0;\n      if (!bVar12) goto LAB_00016123;\n      goto LAB_00015f8f;\n    }\nLAB_0001626b:\n    bVar15 = false;\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b0ef;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar13 = false;\n    bVar12 = (!bVar15 && !bVar12) == bVar15;\n    if (bVar12) goto LAB_00016647;\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)0x53a3b;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar13 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar15 = false;\n    bVar12 = (!bVar13 && !bVar12) == bVar13;\n    if (bVar12) goto LAB_00016647;\n    iVar5 = 4;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b0fd;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar12 = (!bVar15 && !bVar12) == bVar15;\n    if (!bVar12) goto LAB_00016698;\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;\n    if (param_3 != 0) goto LAB_00016123;\nLAB_000162ed:\n    iVar5 = FUN_00019140();\n    if (iVar5 == 0) {\n      FUN_00044820();\n      return 2;\n    }\n    uVar7 = 2;\n    FUN_00019ef0();\n    FUN_00018530();\n    strtol((char *)(iVar5 + 1),(char **)0x0,10);\n    uVar14 = (undefined1 *)0xfffffff3 < &stack0xffffffc4;\n    uVar16 = &stack0x00000000 == (undefined1 *)0x30;\n    FUN_000183f0();\n    FUN_0001a110();\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b101;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);\n    bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n    if (!bVar12) goto LAB_000166e0;\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;\nLAB_0001639b:\n    iVar10 = 0;\n    iVar5 = 0;\n    __stream = fopen64(param_2,"r");\n    local_24 = 0;\n    if (__stream == (FILE *)0x0) {\n      FUN_00044820();\n      return 2;\n    }\n    while (iVar2 = fgetc(__stream), iVar2 != -1) {\n      if (iVar10 < local_24) {\n        *(char *)(iVar5 + iVar10) = (char)iVar2;\n      }\n      else {\n        local_24 = iVar10 + 0x200;\n        local_20 = iVar2;\n        iVar5 = FUN_00019c80();\n        *(char *)(iVar5 + iVar10) = (char)local_20;\n      }\n      iVar10 = iVar10 + 1;\n    }\n    if (iVar10 < local_24) {\n      *(undefined1 *)(iVar5 + iVar10) = 0;\n    }\n    else {\n      iVar5 = FUN_00019c80();\n      *(undefined1 *)(iVar5 + iVar10) = 0;\n    }\n    uVar7 = 2;\n    fclose(__stream);\n    FUN_00018530();\n    FUN_00018530();\n    uVar14 = (undefined1 *)0xfffffff3 < &stack0xffffffc4;\n    uVar16 = &stack0x00000000 == (undefined1 *)0x30;\n    FUN_000183f0();\n    FUN_0001a110();\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b104;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);\n    bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n    if (!bVar12) goto LAB_00016777;\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\nLAB_000164a7:\n    strtol(param_2,(char **)0x0,10);\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-pw");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\nLAB_000164f6:\n      iVar5 = FUN_00017cd0();\n      if (iVar5 == 3) {\n        DAT_0006f0a8 = FUN_00019990();\n        iVar5 = -1;\n        pcVar8 = param_2;\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          cVar1 = *pcVar8;\n          pcVar8 = pcVar8 + (uint)bVar17 * -2 + 1;\n        } while (cVar1 != '\0');\n        FUN_0001a1f0();\n      }\n      else {\n        FUN_00044820();\n      }\n      iVar5 = strcmp((char *)param_1,"-agent");\n      if ((iVar5 == 0) || (iVar5 = strcmp((char *)param_1,"-pagent"), iVar5 == 0))\n      goto LAB_00015d3a;\n      uVar7 = 2;\n      iVar5 = strcmp((char *)param_1,"-pageant");\n      if (iVar5 == 0) goto LAB_0001688c;\n    }\n    else {\n      iVar5 = strcmp((char *)param_1,"-agent");\n      if (iVar5 == 0) {\nLAB_00015d3a:\n        if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n        goto LAB_000168a1;\n      }\n      uVar7 = 2;\n      iVar5 = strcmp((char *)param_1,"-pagent");\n      if (iVar5 == 0) goto LAB_0001688c;\nLAB_0001685f:\n      iVar5 = strcmp((char *)param_1,"-pageant");\n      if (iVar5 == 0) goto LAB_00016884;\n    }\n    iVar5 = strcmp((char *)param_1,"-noagent");\n    if ((iVar5 == 0) || (iVar5 = strcmp((char *)param_1,"-nopagent"), iVar5 == 0)) {\nLAB_00016e5e:\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_00016e44:\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\n      goto LAB_000168e1;\n    }\nLAB_000165eb:\n    iVar5 = strcmp((char *)param_1,"-nopageant");\n    if (iVar5 == 0) goto LAB_00016e5e;\n    iVar5 = strcmp((char *)param_1,"-A");\n    if (iVar5 != 0) {\n      iVar5 = strcmp((char *)param_1,"-a");\n      if (iVar5 != 0) goto LAB_00016f0f;\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_0001700b;\n    }\n    if (param_3 < 0) {\n      return 1;\n    }\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n    if (param_3 != 0) goto LAB_00015c78;\nLAB_00016921:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-a");\n    if (iVar5 != 0) {\n      uVar7 = 1;\n      iVar5 = strcmp((char *)param_1,"-X");\n      if (iVar5 == 0) goto LAB_00016f38;\nLAB_00016f97:\n      iVar5 = strcmp((char *)param_1,"-x");\n      if (iVar5 != 0) goto LAB_0001704f;\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_00016fc4:\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\n      goto LAB_000169e4;\n    }\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\nLAB_00016961:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-X");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      goto LAB_000169a1;\n    }\n    uVar7 = 1;\n    iVar5 = strcmp((char *)param_1,"-x");\n    if (iVar5 == 0) goto LAB_00016fc4;\nLAB_0001704f:\n    iVar5 = strcmp((char *)param_1,"-t");\n    if (iVar5 == 0) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_0001707c;\n    }\nLAB_000177b1:\n    iVar5 = strcmp((char *)param_1,"-T");\n    if (iVar5 != 0) goto LAB_00017759;\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_0001770d:\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n    if (param_3 != 0) goto LAB_00017091;\nLAB_00016a67:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-N");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\nLAB_00016aa7:\n      FUN_000183f0();\n      iVar5 = strcmp((char *)param_1,"-C");\n      if (iVar5 == 0) {\n        if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n        goto LAB_00016ae7;\n      }\n      uVar7 = 1;\n      iVar5 = strcmp((char *)param_1,"-1");\n      if (iVar5 != 0) goto LAB_00017647;\nLAB_000175ed:\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\n      goto LAB_00016b27;\n    }\n    uVar7 = 1;\n    iVar5 = strcmp((char *)param_1,"-C");\n    if (iVar5 == 0) goto LAB_0001762d;\nLAB_00017679:\n    iVar5 = strcmp((char *)param_1,"-1");\n    if (iVar5 == 0) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_000175ed;\n    }\nLAB_00017647:\n    iVar5 = strcmp((char *)param_1,"-2");\n    if (iVar5 == 0) {\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_000175ad:\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n      if (param_3 != 0) {\nLAB_00015c78:\n        FUN_00015950();\n        return 1;\n      }\nLAB_00016b67:\n      uVar7 = 1;\n      FUN_000183f0();\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 ;) })) (if_statement "if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;" if (parenthesized_expression "((DAT_0006f0a0 & 2) != 0)" ( (binary_expression "(DAT_0006f0a0 & 2) != 0" (parenthesized_expression "(DAT_0006f0a0 & 2)" ( (binary_expression "DAT_0006f0a0 & 2" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_000161c3;" goto statement_identifier ;)) (if_statement "if (param_3 != 0) goto LAB_00016123;" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00016123;" goto statement_identifier ;)) (expression_statement "uVar14 = auStack_2c < (undefined1 *)0x4;" (assignment_expression "uVar14 = auStack_2c < (undefined1 *)0x4" identifier = (binary_expression "auStack_2c < (undefined1 *)0x4" identifier < (cast_expression "(undefined1 *)0x4" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "uVar16 = &stack0x00000000 == (undefined1 *)0x30;" (assignment_expression "uVar16 = &stack0x00000000 == (undefined1 *)0x30" identifier = (binary_expression "&stack0x00000000 == (undefined1 *)0x30" (pointer_expression "&stack0x00000000" & identifier) == (cast_expression "(undefined1 *)0x30" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "FUN_00018530();" (call_expression "FUN_00018530()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar5 = 9;" (assignment_expression "iVar5 = 9" identifier = number_literal) ;) (expression_statement "pbVar9 = param_1;" (assignment_expression "pbVar9 = param_1" identifier = identifier) ;) (expression_statement "pbVar11 = (byte *)"-loghost";" (assignment_expression "pbVar11 = (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 (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);" do (compound_statement "{\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    }" { (if_statement "if (iVar5 == 0) break;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) (expression_statement "uVar14 = *pbVar9 < *pbVar11;" (assignment_expression "uVar14 = *pbVar9 < *pbVar11" identifier = (binary_expression "*pbVar9 < *pbVar11" (pointer_expression "*pbVar9" * identifier) < (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "uVar16 = *pbVar9 == *pbVar11;" (assignment_expression "uVar16 = *pbVar9 == *pbVar11" identifier = (binary_expression "*pbVar9 == *pbVar11" (pointer_expression "*pbVar9" * identifier) == (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar9 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar11 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" 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      if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n      goto LAB_00015ec5;\n    }" if (parenthesized_expression "(bVar15)" ( identifier )) (compound_statement "{\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n      goto LAB_00015ec5;\n    }" { (if_statement "if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;" if (parenthesized_expression "((DAT_0006f0a0 & 2) != 0)" ( (binary_expression "(DAT_0006f0a0 & 2) != 0" (parenthesized_expression "(DAT_0006f0a0 & 2)" ( (binary_expression "DAT_0006f0a0 & 2" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_000161c3;" goto statement_identifier ;)) (goto_statement "goto LAB_00015ec5;" goto statement_identifier ;) })) (expression_statement "iVar5 = 9;" (assignment_expression "iVar5 = 9" identifier = number_literal) ;) (expression_statement "pbVar9 = param_1;" (assignment_expression "pbVar9 = param_1" identifier = identifier) ;) (expression_statement "pbVar11 = (byte *)"-hostkey";" (assignment_expression "pbVar11 = (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 (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar12 = *pbVar9 < *pbVar11;\n      bVar15 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar15);" do (compound_statement "{\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar12 = *pbVar9 < *pbVar11;\n      bVar15 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    }" { (if_statement "if (iVar5 == 0) break;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) (expression_statement "bVar12 = *pbVar9 < *pbVar11;" (assignment_expression "bVar12 = *pbVar9 < *pbVar11" identifier = (binary_expression "*pbVar9 < *pbVar11" (pointer_expression "*pbVar9" * identifier) < (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "bVar15 = *pbVar9 == *pbVar11;" (assignment_expression "bVar15 = *pbVar9 == *pbVar11" identifier = (binary_expression "*pbVar9 == *pbVar11" (pointer_expression "*pbVar9" * identifier) == (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar9 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar11 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" 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)) ;) (if_statement "if (bVar12) goto LAB_00016218;" if (parenthesized_expression "(bVar12)" ( identifier )) (goto_statement "goto LAB_00016218;" goto statement_identifier ;)) (labeled_statement "LAB_00016248:\n    uVar7 = 2;" statement_identifier : (expression_statement "uVar7 = 2;" (assignment_expression "uVar7 = 2" identifier = number_literal) ;)) (labeled_statement "LAB_0001624d:\n    bVar15 = false;" statement_identifier : (expression_statement "bVar15 = false;" (assignment_expression "bVar15 = false" identifier = false) ;)) (expression_statement "iVar5 = 3;" (assignment_expression "iVar5 = 3" identifier = number_literal) ;) (expression_statement "pbVar9 = param_1;" (assignment_expression "pbVar9 = param_1" identifier = identifier) ;) (expression_statement "pbVar11 = &DAT_0004b0ec;" (assignment_expression "pbVar11 = &DAT_0004b0ec" identifier = (pointer_expression "&DAT_0004b0ec" & identifier)) ;) (do_statement "do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);" do (compound_statement "{\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    }" { (if_statement "if (iVar5 == 0) break;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) (expression_statement "bVar15 = *pbVar9 < *pbVar11;" (assignment_expression "bVar15 = *pbVar9 < *pbVar11" identifier = (binary_expression "*pbVar9 < *pbVar11" (pointer_expression "*pbVar9" * identifier) < (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "bVar12 = *pbVar9 == *pbVar11;" (assignment_expression "bVar12 = *pbVar9 == *pbVar11" identifier = (binary_expression "*pbVar9 == *pbVar11" (pointer_expression "*pbVar9" * identifier) == (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar9 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar11 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" 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) {\nLAB_00016647:\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;\n      bVar12 = param_3 == 0;\n      if (!bVar12) goto LAB_00016123;\n      goto LAB_00015f8f;\n    }" if (parenthesized_expression "(bVar12)" ( identifier )) (compound_statement "{\nLAB_00016647:\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;\n      bVar12 = param_3 == 0;\n      if (!bVar12) goto LAB_00016123;\n      goto LAB_00015f8f;\n    }" { (labeled_statement "LAB_00016647:\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 ;) })) (if_statement "if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;" if (parenthesized_expression "((DAT_0006f0a0 & 3) != 0)" ( (binary_expression "(DAT_0006f0a0 & 3) != 0" (parenthesized_expression "(DAT_0006f0a0 & 3)" ( (binary_expression "DAT_0006f0a0 & 3" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_000161c3;" goto statement_identifier ;)) (expression_statement "bVar12 = param_3 == 0;" (assignment_expression "bVar12 = param_3 == 0" identifier = (binary_expression "param_3 == 0" identifier == number_literal)) ;) (if_statement "if (!bVar12) goto LAB_00016123;" if (parenthesized_expression "(!bVar12)" ( (unary_expression "!bVar12" ! identifier) )) (goto_statement "goto LAB_00016123;" goto statement_identifier ;)) (goto_statement "goto LAB_00015f8f;" goto statement_identifier ;) })) (labeled_statement "LAB_0001626b:\n    bVar15 = false;" statement_identifier : (expression_statement "bVar15 = false;" (assignment_expression "bVar15 = false" identifier = false) ;)) (expression_statement "iVar5 = 3;" (assignment_expression "iVar5 = 3" identifier = number_literal) ;) (expression_statement "pbVar9 = param_1;" (assignment_expression "pbVar9 = param_1" identifier = identifier) ;) (expression_statement "pbVar11 = &DAT_0004b0ef;" (assignment_expression "pbVar11 = &DAT_0004b0ef" identifier = (pointer_expression "&DAT_0004b0ef" & identifier)) ;) (do_statement "do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);" do (compound_statement "{\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    }" { (if_statement "if (iVar5 == 0) break;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) (expression_statement "bVar15 = *pbVar9 < *pbVar11;" (assignment_expression "bVar15 = *pbVar9 < *pbVar11" identifier = (binary_expression "*pbVar9 < *pbVar11" (pointer_expression "*pbVar9" * identifier) < (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "bVar12 = *pbVar9 == *pbVar11;" (assignment_expression "bVar12 = *pbVar9 == *pbVar11" identifier = (binary_expression "*pbVar9 == *pbVar11" (pointer_expression "*pbVar9" * identifier) == (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar9 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar11 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" 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) goto LAB_00016647;" if (parenthesized_expression "(bVar12)" ( identifier )) (goto_statement "goto LAB_00016647;" goto statement_identifier ;)) (expression_statement "iVar5 = 3;" (assignment_expression "iVar5 = 3" identifier = number_literal) ;) (expression_statement "pbVar9 = param_1;" (assignment_expression "pbVar9 = param_1" identifier = identifier) ;) (expression_statement "pbVar11 = (byte *)0x53a3b;" (assignment_expression "pbVar11 = (byte *)0x53a3b" identifier = (cast_expression "(byte *)0x53a3b" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar13 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);" do (compound_statement "{\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar13 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    }" { (if_statement "if (iVar5 == 0) break;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) (expression_statement "bVar13 = *pbVar9 < *pbVar11;" (assignment_expression "bVar13 = *pbVar9 < *pbVar11" identifier = (binary_expression "*pbVar9 < *pbVar11" (pointer_expression "*pbVar9" * identifier) < (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "bVar12 = *pbVar9 == *pbVar11;" (assignment_expression "bVar12 = *pbVar9 == *pbVar11" identifier = (binary_expression "*pbVar9 == *pbVar11" (pointer_expression "*pbVar9" * identifier) == (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar9 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar11 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" 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) goto LAB_00016647;" if (parenthesized_expression "(bVar12)" ( identifier )) (goto_statement "goto LAB_00016647;" goto statement_identifier ;)) (expression_statement "iVar5 = 4;" (assignment_expression "iVar5 = 4" identifier = number_literal) ;) (expression_statement "pbVar9 = param_1;" (assignment_expression "pbVar9 = param_1" identifier = identifier) ;) (expression_statement "pbVar11 = &DAT_0004b0fd;" (assignment_expression "pbVar11 = &DAT_0004b0fd" identifier = (pointer_expression "&DAT_0004b0fd" & identifier)) ;) (do_statement "do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);" do (compound_statement "{\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    }" { (if_statement "if (iVar5 == 0) break;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) (expression_statement "bVar15 = *pbVar9 < *pbVar11;" (assignment_expression "bVar15 = *pbVar9 < *pbVar11" identifier = (binary_expression "*pbVar9 < *pbVar11" (pointer_expression "*pbVar9" * identifier) < (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "bVar12 = *pbVar9 == *pbVar11;" (assignment_expression "bVar12 = *pbVar9 == *pbVar11" identifier = (binary_expression "*pbVar9 == *pbVar11" (pointer_expression "*pbVar9" * identifier) == (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar9 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar11 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" 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_00016698;" if (parenthesized_expression "(!bVar12)" ( (unary_expression "!bVar12" ! identifier) )) (goto_statement "goto LAB_00016698;" 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 ;) })) (if_statement "if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;" if (parenthesized_expression "((DAT_0006f0a0 & 3) != 0)" ( (binary_expression "(DAT_0006f0a0 & 3) != 0" (parenthesized_expression "(DAT_0006f0a0 & 3)" ( (binary_expression "DAT_0006f0a0 & 3" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_000161c3;" goto statement_identifier ;)) (if_statement "if (param_3 != 0) goto LAB_00016123;" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00016123;" goto statement_identifier ;)) (labeled_statement "LAB_000162ed:\n    iVar5 = FUN_00019140();" statement_identifier : (expression_statement "iVar5 = FUN_00019140();" (assignment_expression "iVar5 = FUN_00019140()" identifier = (call_expression "FUN_00019140()" identifier (argument_list "()" ( )))) ;)) (if_statement "if (iVar5 == 0) {\n      FUN_00044820();\n      return 2;\n    }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n      FUN_00044820();\n      return 2;\n    }" { (expression_statement "FUN_00044820();" (call_expression "FUN_00044820()" identifier (argument_list "()" ( ))) ;) (return_statement "return 2;" return number_literal ;) })) (expression_statement "uVar7 = 2;" (assignment_expression "uVar7 = 2" identifier = number_literal) ;) (expression_statement "FUN_00019ef0();" (call_expression "FUN_00019ef0()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00018530();" (call_expression "FUN_00018530()" identifier (argument_list "()" ( ))) ;) (expression_statement "strtol((char *)(iVar5 + 1),(char **)0x0,10);" (call_expression "strtol((char *)(iVar5 + 1),(char **)0x0,10)" identifier (argument_list "((char *)(iVar5 + 1),(char **)0x0,10)" ( (cast_expression "(char *)(iVar5 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 1)" ( (binary_expression "iVar5 + 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 "uVar14 = (undefined1 *)0xfffffff3 < &stack0xffffffc4;" (assignment_expression "uVar14 = (undefined1 *)0xfffffff3 < &stack0xffffffc4" identifier = (binary_expression "(undefined1 *)0xfffffff3 < &stack0xffffffc4" (cast_expression "(undefined1 *)0xfffffff3" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < (pointer_expression "&stack0xffffffc4" & identifier))) ;) (expression_statement "uVar16 = &stack0x00000000 == (undefined1 *)0x30;" (assignment_expression "uVar16 = &stack0x00000000 == (undefined1 *)0x30" identifier = (binary_expression "&stack0x00000000 == (undefined1 *)0x30" (pointer_expression "&stack0x00000000" & identifier) == (cast_expression "(undefined1 *)0x30" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "FUN_000183f0();" (call_expression "FUN_000183f0()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_0001a110();" (call_expression "FUN_0001a110()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar5 = 3;" (assignment_expression "iVar5 = 3" identifier = number_literal) ;) (expression_statement "pbVar9 = param_1;" (assignment_expression "pbVar9 = param_1" identifier = identifier) ;) (expression_statement "pbVar11 = &DAT_0004b101;" (assignment_expression "pbVar11 = &DAT_0004b101" identifier = (pointer_expression "&DAT_0004b101" & identifier)) ;) (do_statement "do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);" do (compound_statement "{\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    }" { (if_statement "if (iVar5 == 0) break;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) (expression_statement "uVar14 = *pbVar9 < *pbVar11;" (assignment_expression "uVar14 = *pbVar9 < *pbVar11" identifier = (binary_expression "*pbVar9 < *pbVar11" (pointer_expression "*pbVar9" * identifier) < (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "uVar16 = *pbVar9 == *pbVar11;" (assignment_expression "uVar16 = *pbVar9 == *pbVar11" identifier = (binary_expression "*pbVar9 == *pbVar11" (pointer_expression "*pbVar9" * identifier) == (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar9 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar11 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" 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 = (!(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_000166e0;" if (parenthesized_expression "(!bVar12)" ( (unary_expression "!bVar12" ! identifier) )) (goto_statement "goto LAB_000166e0;" goto statement_identifier ;)) (if_statement "if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;" if (parenthesized_expression "((DAT_0006f0a0 & 3) != 0)" ( (binary_expression "(DAT_0006f0a0 & 3) != 0" (parenthesized_expression "(DAT_0006f0a0 & 3)" ( (binary_expression "DAT_0006f0a0 & 3" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_000161c3;" goto statement_identifier ;)) (labeled_statement "LAB_0001639b:\n    iVar10 = 0;" statement_identifier : (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;)) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (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 ") )))) ;) (expression_statement "local_24 = 0;" (assignment_expression "local_24 = 0" identifier = number_literal) ;) (if_statement "if (__stream == (FILE *)0x0) {\n      FUN_00044820();\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_00044820();\n      return 2;\n    }" { (expression_statement "FUN_00044820();" (call_expression "FUN_00044820()" identifier (argument_list "()" ( ))) ;) (return_statement "return 2;" return number_literal ;) })) (while_statement "while (iVar2 = fgetc(__stream), iVar2 != -1) {\n      if (iVar10 < local_24) {\n        *(char *)(iVar5 + iVar10) = (char)iVar2;\n      }\n      else {\n        local_24 = iVar10 + 0x200;\n        local_20 = iVar2;\n        iVar5 = FUN_00019c80();\n        *(char *)(iVar5 + iVar10) = (char)local_20;\n      }\n      iVar10 = iVar10 + 1;\n    }" while (parenthesized_expression "(iVar2 = fgetc(__stream), iVar2 != -1)" ( (comma_expression "iVar2 = fgetc(__stream), iVar2 != -1" (assignment_expression "iVar2 = fgetc(__stream)" identifier = (call_expression "fgetc(__stream)" identifier (argument_list "(__stream)" ( identifier )))) , (binary_expression "iVar2 != -1" identifier != number_literal)) )) (compound_statement "{\n      if (iVar10 < local_24) {\n        *(char *)(iVar5 + iVar10) = (char)iVar2;\n      }\n      else {\n        local_24 = iVar10 + 0x200;\n        local_20 = iVar2;\n        iVar5 = FUN_00019c80();\n        *(char *)(iVar5 + iVar10) = (char)local_20;\n      }\n      iVar10 = iVar10 + 1;\n    }" { (if_statement "if (iVar10 < local_24) {\n        *(char *)(iVar5 + iVar10) = (char)iVar2;\n      }\n      else {\n        local_24 = iVar10 + 0x200;\n        local_20 = iVar2;\n        iVar5 = FUN_00019c80();\n        *(char *)(iVar5 + iVar10) = (char)local_20;\n      }" if (parenthesized_expression "(iVar10 < local_24)" ( (binary_expression "iVar10 < local_24" identifier < identifier) )) (compound_statement "{\n        *(char *)(iVar5 + iVar10) = (char)iVar2;\n      }" { (expression_statement "*(char *)(iVar5 + iVar10) = (char)iVar2;" (assignment_expression "*(char *)(iVar5 + iVar10) = (char)iVar2" (pointer_expression "*(char *)(iVar5 + iVar10)" * (cast_expression "(char *)(iVar5 + iVar10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + iVar10)" ( (binary_expression "iVar5 + iVar10" identifier + identifier) )))) = (cast_expression "(char)iVar2" ( (type_descriptor "char" primitive_type) ) identifier)) ;) }) (else_clause "else {\n        local_24 = iVar10 + 0x200;\n        local_20 = iVar2;\n        iVar5 = FUN_00019c80();\n        *(char *)(iVar5 + iVar10) = (char)local_20;\n      }" else (compound_statement "{\n        local_24 = iVar10 + 0x200;\n        local_20 = iVar2;\n        iVar5 = FUN_00019c80();\n        *(char *)(iVar5 + iVar10) = (char)local_20;\n      }" { (expression_statement "local_24 = iVar10 + 0x200;" (assignment_expression "local_24 = iVar10 + 0x200" identifier = (binary_expression "iVar10 + 0x200" identifier + number_literal)) ;) (expression_statement "local_20 = iVar2;" (assignment_expression "local_20 = iVar2" identifier = identifier) ;) (expression_statement "iVar5 = FUN_00019c80();" (assignment_expression "iVar5 = FUN_00019c80()" identifier = (call_expression "FUN_00019c80()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(char *)(iVar5 + iVar10) = (char)local_20;" (assignment_expression "*(char *)(iVar5 + iVar10) = (char)local_20" (pointer_expression "*(char *)(iVar5 + iVar10)" * (cast_expression "(char *)(iVar5 + iVar10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + iVar10)" ( (binary_expression "iVar5 + iVar10" identifier + identifier) )))) = (cast_expression "(char)local_20" ( (type_descriptor "char" primitive_type) ) identifier)) ;) }))) (expression_statement "iVar10 = iVar10 + 1;" (assignment_expression "iVar10 = iVar10 + 1" identifier = (binary_expression "iVar10 + 1" identifier + number_literal)) ;) })) (if_statement "if (iVar10 < local_24) {\n      *(undefined1 *)(iVar5 + iVar10) = 0;\n    }\n    else {\n      iVar5 = FUN_00019c80();\n      *(undefined1 *)(iVar5 + iVar10) = 0;\n    }" if (parenthesized_expression "(iVar10 < local_24)" ( (binary_expression "iVar10 < local_24" identifier < identifier) )) (compound_statement "{\n      *(undefined1 *)(iVar5 + iVar10) = 0;\n    }" { (expression_statement "*(undefined1 *)(iVar5 + iVar10) = 0;" (assignment_expression "*(undefined1 *)(iVar5 + iVar10) = 0" (pointer_expression "*(undefined1 *)(iVar5 + iVar10)" * (cast_expression "(undefined1 *)(iVar5 + iVar10)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + iVar10)" ( (binary_expression "iVar5 + iVar10" identifier + identifier) )))) = number_literal) ;) }) (else_clause "else {\n      iVar5 = FUN_00019c80();\n      *(undefined1 *)(iVar5 + iVar10) = 0;\n    }" else (compound_statement "{\n      iVar5 = FUN_00019c80();\n      *(undefined1 *)(iVar5 + iVar10) = 0;\n    }" { (expression_statement "iVar5 = FUN_00019c80();" (assignment_expression "iVar5 = FUN_00019c80()" identifier = (call_expression "FUN_00019c80()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(undefined1 *)(iVar5 + iVar10) = 0;" (assignment_expression "*(undefined1 *)(iVar5 + iVar10) = 0" (pointer_expression "*(undefined1 *)(iVar5 + iVar10)" * (cast_expression "(undefined1 *)(iVar5 + iVar10)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + iVar10)" ( (binary_expression "iVar5 + iVar10" identifier + identifier) )))) = number_literal) ;) }))) (expression_statement "uVar7 = 2;" (assignment_expression "uVar7 = 2" identifier = number_literal) ;) (expression_statement "fclose(__stream);" (call_expression "fclose(__stream)" identifier (argument_list "(__stream)" ( identifier ))) ;) (expression_statement "FUN_00018530();" (call_expression "FUN_00018530()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00018530();" (call_expression "FUN_00018530()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar14 = (undefined1 *)0xfffffff3 < &stack0xffffffc4;" (assignment_expression "uVar14 = (undefined1 *)0xfffffff3 < &stack0xffffffc4" identifier = (binary_expression "(undefined1 *)0xfffffff3 < &stack0xffffffc4" (cast_expression "(undefined1 *)0xfffffff3" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < (pointer_expression "&stack0xffffffc4" & identifier))) ;) (expression_statement "uVar16 = &stack0x00000000 == (undefined1 *)0x30;" (assignment_expression "uVar16 = &stack0x00000000 == (undefined1 *)0x30" identifier = (binary_expression "&stack0x00000000 == (undefined1 *)0x30" (pointer_expression "&stack0x00000000" & identifier) == (cast_expression "(undefined1 *)0x30" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "FUN_000183f0();" (call_expression "FUN_000183f0()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_0001a110();" (call_expression "FUN_0001a110()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar5 = 3;" (assignment_expression "iVar5 = 3" identifier = number_literal) ;) (expression_statement "pbVar9 = param_1;" (assignment_expression "pbVar9 = param_1" identifier = identifier) ;) (expression_statement "pbVar11 = &DAT_0004b104;" (assignment_expression "pbVar11 = &DAT_0004b104" identifier = (pointer_expression "&DAT_0004b104" & identifier)) ;) (do_statement "do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);" do (compound_statement "{\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    }" { (if_statement "if (iVar5 == 0) break;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) (expression_statement "uVar14 = *pbVar9 < *pbVar11;" (assignment_expression "uVar14 = *pbVar9 < *pbVar11" identifier = (binary_expression "*pbVar9 < *pbVar11" (pointer_expression "*pbVar9" * identifier) < (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "uVar16 = *pbVar9 == *pbVar11;" (assignment_expression "uVar16 = *pbVar9 == *pbVar11" identifier = (binary_expression "*pbVar9 == *pbVar11" (pointer_expression "*pbVar9" * identifier) == (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar9 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar11 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" 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 = (!(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_00016777;" if (parenthesized_expression "(!bVar12)" ( (unary_expression "!bVar12" ! identifier) )) (goto_statement "goto LAB_00016777;" goto statement_identifier ;)) (if_statement "if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;" if (parenthesized_expression "((DAT_0006f0a0 & 2) != 0)" ( (binary_expression "(DAT_0006f0a0 & 2) != 0" (parenthesized_expression "(DAT_0006f0a0 & 2)" ( (binary_expression "DAT_0006f0a0 & 2" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_000161c3;" goto statement_identifier ;)) (labeled_statement "LAB_000164a7:\n    strtol(param_2,(char **)0x0,10);" statement_identifier : (expression_statement "strtol(param_2,(char **)0x0,10);" (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_000183f0();" (call_expression "FUN_000183f0()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar5 = strcmp((char *)param_1,"-pw");" (assignment_expression "iVar5 = 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 (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\nLAB_000164f6:\n      iVar5 = FUN_00017cd0();\n      if (iVar5 == 3) {\n        DAT_0006f0a8 = FUN_00019990();\n        iVar5 = -1;\n        pcVar8 = param_2;\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          cVar1 = *pcVar8;\n          pcVar8 = pcVar8 + (uint)bVar17 * -2 + 1;\n        } while (cVar1 != '\0');\n        FUN_0001a1f0();\n      }\n      else {\n        FUN_00044820();\n      }\n      iVar5 = strcmp((char *)param_1,"-agent");\n      if ((iVar5 == 0) || (iVar5 = strcmp((char *)param_1,"-pagent"), iVar5 == 0))\n      goto LAB_00015d3a;\n      uVar7 = 2;\n      iVar5 = strcmp((char *)param_1,"-pageant");\n      if (iVar5 == 0) goto LAB_0001688c;\n    }\n    else {\n      iVar5 = strcmp((char *)param_1,"-agent");\n      if (iVar5 == 0) {\nLAB_00015d3a:\n        if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n        goto LAB_000168a1;\n      }\n      uVar7 = 2;\n      iVar5 = strcmp((char *)param_1,"-pagent");\n      if (iVar5 == 0) goto LAB_0001688c;\nLAB_0001685f:\n      iVar5 = strcmp((char *)param_1,"-pageant");\n      if (iVar5 == 0) goto LAB_00016884;\n    }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\nLAB_000164f6:\n      iVar5 = FUN_00017cd0();\n      if (iVar5 == 3) {\n        DAT_0006f0a8 = FUN_00019990();\n        iVar5 = -1;\n        pcVar8 = param_2;\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          cVar1 = *pcVar8;\n          pcVar8 = pcVar8 + (uint)bVar17 * -2 + 1;\n        } while (cVar1 != '\0');\n        FUN_0001a1f0();\n      }\n      else {\n        FUN_00044820();\n      }\n      iVar5 = strcmp((char *)param_1,"-agent");\n      if ((iVar5 == 0) || (iVar5 = strcmp((char *)param_1,"-pagent"), iVar5 == 0))\n      goto LAB_00015d3a;\n      uVar7 = 2;\n      iVar5 = strcmp((char *)param_1,"-pageant");\n      if (iVar5 == 0) goto LAB_0001688c;\n    }" { (if_statement "if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;" if (parenthesized_expression "((DAT_0006f0a0 & 2) != 0)" ( (binary_expression "(DAT_0006f0a0 & 2) != 0" (parenthesized_expression "(DAT_0006f0a0 & 2)" ( (binary_expression "DAT_0006f0a0 & 2" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_000161c3;" goto statement_identifier ;)) (labeled_statement "LAB_000164f6:\n      iVar5 = FUN_00017cd0();" statement_identifier : (expression_statement "iVar5 = FUN_00017cd0();" (assignment_expression "iVar5 = FUN_00017cd0()" identifier = (call_expression "FUN_00017cd0()" identifier (argument_list "()" ( )))) ;)) (if_statement "if (iVar5 == 3) {\n        DAT_0006f0a8 = FUN_00019990();\n        iVar5 = -1;\n        pcVar8 = param_2;\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          cVar1 = *pcVar8;\n          pcVar8 = pcVar8 + (uint)bVar17 * -2 + 1;\n        } while (cVar1 != '\0');\n        FUN_0001a1f0();\n      }\n      else {\n        FUN_00044820();\n      }" if (parenthesized_expression "(iVar5 == 3)" ( (binary_expression "iVar5 == 3" identifier == number_literal) )) (compound_statement "{\n        DAT_0006f0a8 = FUN_00019990();\n        iVar5 = -1;\n        pcVar8 = param_2;\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          cVar1 = *pcVar8;\n          pcVar8 = pcVar8 + (uint)bVar17 * -2 + 1;\n        } while (cVar1 != '\0');\n        FUN_0001a1f0();\n      }" { (expression_statement "DAT_0006f0a8 = FUN_00019990();" (assignment_expression "DAT_0006f0a8 = FUN_00019990()" identifier = (call_expression "FUN_00019990()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar5 = -1;" (assignment_expression "iVar5 = -1" identifier = number_literal) ;) (expression_statement "pcVar8 = param_2;" (assignment_expression "pcVar8 = param_2" identifier = identifier) ;) (do_statement "do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          cVar1 = *pcVar8;\n          pcVar8 = pcVar8 + (uint)bVar17 * -2 + 1;\n        } while (cVar1 != '\0');" do (compound_statement "{\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          cVar1 = *pcVar8;\n          pcVar8 = pcVar8 + (uint)bVar17 * -2 + 1;\n        }" { (if_statement "if (iVar5 == 0) break;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) (expression_statement "cVar1 = *pcVar8;" (assignment_expression "cVar1 = *pcVar8" identifier = (pointer_expression "*pcVar8" * identifier)) ;) (expression_statement "pcVar8 = pcVar8 + (uint)bVar17 * -2 + 1;" (assignment_expression "pcVar8 = pcVar8 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pcVar8 + (uint)bVar17 * -2 + 1" (binary_expression "pcVar8 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar1 != '\0')" ( (binary_expression "cVar1 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "FUN_0001a1f0();" (call_expression "FUN_0001a1f0()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n        FUN_00044820();\n      }" else (compound_statement "{\n        FUN_00044820();\n      }" { (expression_statement "FUN_00044820();" (call_expression "FUN_00044820()" identifier (argument_list "()" ( ))) ;) }))) (expression_statement "iVar5 = strcmp((char *)param_1,"-agent");" (assignment_expression "iVar5 = 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 ((iVar5 == 0) || (iVar5 = strcmp((char *)param_1,"-pagent"), iVar5 == 0))\n      goto LAB_00015d3a;" if (parenthesized_expression "((iVar5 == 0) || (iVar5 = strcmp((char *)param_1,"-pagent"), iVar5 == 0))" ( (binary_expression "(iVar5 == 0) || (iVar5 = strcmp((char *)param_1,"-pagent"), iVar5 == 0)" (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar5 = strcmp((char *)param_1,"-pagent"), iVar5 == 0)" ( (comma_expression "iVar5 = strcmp((char *)param_1,"-pagent"), iVar5 == 0" (assignment_expression "iVar5 = 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 ") )))) , (binary_expression "iVar5 == 0" identifier == number_literal)) ))) )) (goto_statement "goto LAB_00015d3a;" goto statement_identifier ;)) (expression_statement "uVar7 = 2;" (assignment_expression "uVar7 = 2" identifier = number_literal) ;) (expression_statement "iVar5 = strcmp((char *)param_1,"-pageant");" (assignment_expression "iVar5 = 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 (iVar5 == 0) goto LAB_0001688c;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001688c;" goto statement_identifier ;)) }) (else_clause "else {\n      iVar5 = strcmp((char *)param_1,"-agent");\n      if (iVar5 == 0) {\nLAB_00015d3a:\n        if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n        goto LAB_000168a1;\n      }\n      uVar7 = 2;\n      iVar5 = strcmp((char *)param_1,"-pagent");\n      if (iVar5 == 0) goto LAB_0001688c;\nLAB_0001685f:\n      iVar5 = strcmp((char *)param_1,"-pageant");\n      if (iVar5 == 0) goto LAB_00016884;\n    }" else (compound_statement "{\n      iVar5 = strcmp((char *)param_1,"-agent");\n      if (iVar5 == 0) {\nLAB_00015d3a:\n        if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n        goto LAB_000168a1;\n      }\n      uVar7 = 2;\n      iVar5 = strcmp((char *)param_1,"-pagent");\n      if (iVar5 == 0) goto LAB_0001688c;\nLAB_0001685f:\n      iVar5 = strcmp((char *)param_1,"-pageant");\n      if (iVar5 == 0) goto LAB_00016884;\n    }" { (expression_statement "iVar5 = strcmp((char *)param_1,"-agent");" (assignment_expression "iVar5 = 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 (iVar5 == 0) {\nLAB_00015d3a:\n        if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n        goto LAB_000168a1;\n      }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_00015d3a:\n        if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n        goto LAB_000168a1;\n      }" { (labeled_statement "LAB_00015d3a:\n        if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;" statement_identifier : (if_statement "if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;" if (parenthesized_expression "((DAT_0006f0a0 & 2) != 0)" ( (binary_expression "(DAT_0006f0a0 & 2) != 0" (parenthesized_expression "(DAT_0006f0a0 & 2)" ( (binary_expression "DAT_0006f0a0 & 2" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00015d50;" goto statement_identifier ;))) (goto_statement "goto LAB_000168a1;" goto statement_identifier ;) })) (expression_statement "uVar7 = 2;" (assignment_expression "uVar7 = 2" identifier = number_literal) ;) (expression_statement "iVar5 = strcmp((char *)param_1,"-pagent");" (assignment_expression "iVar5 = 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 (iVar5 == 0) goto LAB_0001688c;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001688c;" goto statement_identifier ;)) (labeled_statement "LAB_0001685f:\n      iVar5 = strcmp((char *)param_1,"-pageant");" statement_identifier : (expression_statement "iVar5 = strcmp((char *)param_1,"-pageant");" (assignment_expression "iVar5 = 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 (iVar5 == 0) goto LAB_00016884;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00016884;" goto statement_identifier ;)) }))) (expression_statement "iVar5 = strcmp((char *)param_1,"-noagent");" (assignment_expression "iVar5 = 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 ((iVar5 == 0) || (iVar5 = strcmp((char *)param_1,"-nopagent"), iVar5 == 0)) {\nLAB_00016e5e:\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_00016e44:\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\n      goto LAB_000168e1;\n    }" if (parenthesized_expression "((iVar5 == 0) || (iVar5 = strcmp((char *)param_1,"-nopagent"), iVar5 == 0))" ( (binary_expression "(iVar5 == 0) || (iVar5 = strcmp((char *)param_1,"-nopagent"), iVar5 == 0)" (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar5 = strcmp((char *)param_1,"-nopagent"), iVar5 == 0)" ( (comma_expression "iVar5 = strcmp((char *)param_1,"-nopagent"), iVar5 == 0" (assignment_expression "iVar5 = 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 "iVar5 == 0" identifier == number_literal)) ))) )) (compound_statement "{\nLAB_00016e5e:\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_00016e44:\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\n      goto LAB_000168e1;\n    }" { (labeled_statement "LAB_00016e5e:\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_00016e44:\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;" statement_identifier : (if_statement "if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;" if (parenthesized_expression "((DAT_0006f0a0 & 2) != 0)" ( (binary_expression "(DAT_0006f0a0 & 2) != 0" (parenthesized_expression "(DAT_0006f0a0 & 2)" ( (binary_expression "DAT_0006f0a0 & 2" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00015d50;" goto statement_identifier ;))) (if_statement "if (param_3 != 0) goto LAB_00015c78;" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00015c78;" goto statement_identifier ;)) (goto_statement "goto LAB_000168e1;" goto statement_identifier ;) })) (labeled_statement "LAB_000165eb:\n    iVar5 = strcmp((char *)param_1,"-nopageant");" statement_identifier : (expression_statement "iVar5 = strcmp((char *)param_1,"-nopageant");" (assignment_expression "iVar5 = 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 (iVar5 == 0) goto LAB_00016e5e;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00016e5e;" goto statement_identifier ;)) (expression_statement "iVar5 = strcmp((char *)param_1,"-A");" (assignment_expression "iVar5 = 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 (iVar5 != 0) {\n      iVar5 = strcmp((char *)param_1,"-a");\n      if (iVar5 != 0) goto LAB_00016f0f;\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_0001700b;\n    }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar5 = strcmp((char *)param_1,"-a");\n      if (iVar5 != 0) goto LAB_00016f0f;\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_0001700b;\n    }" { (expression_statement "iVar5 = strcmp((char *)param_1,"-a");" (assignment_expression "iVar5 = 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 (iVar5 != 0) goto LAB_00016f0f;" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00016f0f;" 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_0001700b;" 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 ;) })) (if_statement "if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;" if (parenthesized_expression "((DAT_0006f0a0 & 3) != 0)" ( (binary_expression "(DAT_0006f0a0 & 3) != 0" (parenthesized_expression "(DAT_0006f0a0 & 3)" ( (binary_expression "DAT_0006f0a0 & 3" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00015d50;" goto statement_identifier ;)) (if_statement "if (param_3 != 0) goto LAB_00015c78;" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00015c78;" goto statement_identifier ;)) (labeled_statement "LAB_00016921:\n    FUN_000183f0();" statement_identifier : (expression_statement "FUN_000183f0();" (call_expression "FUN_000183f0()" identifier (argument_list "()" ( ))) ;)) (expression_statement "iVar5 = strcmp((char *)param_1,"-a");" (assignment_expression "iVar5 = 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 (iVar5 != 0) {\n      uVar7 = 1;\n      iVar5 = strcmp((char *)param_1,"-X");\n      if (iVar5 == 0) goto LAB_00016f38;\nLAB_00016f97:\n      iVar5 = strcmp((char *)param_1,"-x");\n      if (iVar5 != 0) goto LAB_0001704f;\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_00016fc4:\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\n      goto LAB_000169e4;\n    }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n      uVar7 = 1;\n      iVar5 = strcmp((char *)param_1,"-X");\n      if (iVar5 == 0) goto LAB_00016f38;\nLAB_00016f97:\n      iVar5 = strcmp((char *)param_1,"-x");\n      if (iVar5 != 0) goto LAB_0001704f;\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_00016fc4:\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\n      goto LAB_000169e4;\n    }" { (expression_statement "uVar7 = 1;" (assignment_expression "uVar7 = 1" identifier = number_literal) ;) (expression_statement "iVar5 = strcmp((char *)param_1,"-X");" (assignment_expression "iVar5 = 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 (iVar5 == 0) goto LAB_00016f38;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00016f38;" goto statement_identifier ;)) (labeled_statement "LAB_00016f97:\n      iVar5 = strcmp((char *)param_1,"-x");" statement_identifier : (expression_statement "iVar5 = strcmp((char *)param_1,"-x");" (assignment_expression "iVar5 = 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 (iVar5 != 0) goto LAB_0001704f;" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0001704f;" 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_00016fc4:\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;" statement_identifier : (if_statement "if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;" if (parenthesized_expression "((DAT_0006f0a0 & 3) != 0)" ( (binary_expression "(DAT_0006f0a0 & 3) != 0" (parenthesized_expression "(DAT_0006f0a0 & 3)" ( (binary_expression "DAT_0006f0a0 & 3" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00015d50;" goto statement_identifier ;))) (if_statement "if (param_3 != 0) goto LAB_00015c78;" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00015c78;" goto statement_identifier ;)) (goto_statement "goto LAB_000169e4;" goto statement_identifier ;) })) (if_statement "if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;" if (parenthesized_expression "((DAT_0006f0a0 & 3) != 0)" ( (binary_expression "(DAT_0006f0a0 & 3) != 0" (parenthesized_expression "(DAT_0006f0a0 & 3)" ( (binary_expression "DAT_0006f0a0 & 3" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00015d50;" goto statement_identifier ;)) (labeled_statement "LAB_00016961:\n    FUN_000183f0();" statement_identifier : (expression_statement "FUN_000183f0();" (call_expression "FUN_000183f0()" identifier (argument_list "()" ( ))) ;)) (expression_statement "iVar5 = strcmp((char *)param_1,"-X");" (assignment_expression "iVar5 = 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 (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      goto LAB_000169a1;\n    }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      goto LAB_000169a1;\n    }" { (if_statement "if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;" if (parenthesized_expression "((DAT_0006f0a0 & 3) != 0)" ( (binary_expression "(DAT_0006f0a0 & 3) != 0" (parenthesized_expression "(DAT_0006f0a0 & 3)" ( (binary_expression "DAT_0006f0a0 & 3" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00015d50;" goto statement_identifier ;)) (goto_statement "goto LAB_000169a1;" goto statement_identifier ;) })) (expression_statement "uVar7 = 1;" (assignment_expression "uVar7 = 1" identifier = number_literal) ;) (expression_statement "iVar5 = strcmp((char *)param_1,"-x");" (assignment_expression "iVar5 = 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 (iVar5 == 0) goto LAB_00016fc4;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00016fc4;" goto statement_identifier ;)) (labeled_statement "LAB_0001704f:\n    iVar5 = strcmp((char *)param_1,"-t");" statement_identifier : (expression_statement "iVar5 = strcmp((char *)param_1,"-t");" (assignment_expression "iVar5 = 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 (iVar5 == 0) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_0001707c;\n    }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_0001707c;\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_0001707c;" goto statement_identifier ;) })) (labeled_statement "LAB_000177b1:\n    iVar5 = strcmp((char *)param_1,"-T");" statement_identifier : (expression_statement "iVar5 = strcmp((char *)param_1,"-T");" (assignment_expression "iVar5 = 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 (iVar5 != 0) goto LAB_00017759;" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00017759;" 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_0001770d:\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;" statement_identifier : (if_statement "if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;" if (parenthesized_expression "((DAT_0006f0a0 & 3) != 0)" ( (binary_expression "(DAT_0006f0a0 & 3) != 0" (parenthesized_expression "(DAT_0006f0a0 & 3)" ( (binary_expression "DAT_0006f0a0 & 3" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00015d50;" goto statement_identifier ;))) (if_statement "if (param_3 != 0) goto LAB_00017091;" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00017091;" goto statement_identifier ;)) (labeled_statement "LAB_00016a67:\n    FUN_000183f0();" statement_identifier : (expression_statement "FUN_000183f0();" (call_expression "FUN_000183f0()" identifier (argument_list "()" ( ))) ;)) (expression_statement "iVar5 = strcmp((char *)param_1,"-N");" (assignment_expression "iVar5 = 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 (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\nLAB_00016aa7:\n      FUN_000183f0();\n      iVar5 = strcmp((char *)param_1,"-C");\n      if (iVar5 == 0) {\n        if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n        goto LAB_00016ae7;\n      }\n      uVar7 = 1;\n      iVar5 = strcmp((char *)param_1,"-1");\n      if (iVar5 != 0) goto LAB_00017647;\nLAB_000175ed:\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\n      goto LAB_00016b27;\n    }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\nLAB_00016aa7:\n      FUN_000183f0();\n      iVar5 = strcmp((char *)param_1,"-C");\n      if (iVar5 == 0) {\n        if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n        goto LAB_00016ae7;\n      }\n      uVar7 = 1;\n      iVar5 = strcmp((char *)param_1,"-1");\n      if (iVar5 != 0) goto LAB_00017647;\nLAB_000175ed:\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\n      goto LAB_00016b27;\n    }" { (if_statement "if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;" if (parenthesized_expression "((DAT_0006f0a0 & 3) != 0)" ( (binary_expression "(DAT_0006f0a0 & 3) != 0" (parenthesized_expression "(DAT_0006f0a0 & 3)" ( (binary_expression "DAT_0006f0a0 & 3" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00015d50;" goto statement_identifier ;)) (labeled_statement "LAB_00016aa7:\n      FUN_000183f0();" statement_identifier : (expression_statement "FUN_000183f0();" (call_expression "FUN_000183f0()" identifier (argument_list "()" ( ))) ;)) (expression_statement "iVar5 = strcmp((char *)param_1,"-C");" (assignment_expression "iVar5 = 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 (iVar5 == 0) {\n        if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n        goto LAB_00016ae7;\n      }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n        if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n        goto LAB_00016ae7;\n      }" { (if_statement "if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;" if (parenthesized_expression "((DAT_0006f0a0 & 2) != 0)" ( (binary_expression "(DAT_0006f0a0 & 2) != 0" (parenthesized_expression "(DAT_0006f0a0 & 2)" ( (binary_expression "DAT_0006f0a0 & 2" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00015d50;" goto statement_identifier ;)) (goto_statement "goto LAB_00016ae7;" goto statement_identifier ;) })) (expression_statement "uVar7 = 1;" (assignment_expression "uVar7 = 1" identifier = number_literal) ;) (expression_statement "iVar5 = strcmp((char *)param_1,"-1");" (assignment_expression "iVar5 = 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 (iVar5 != 0) goto LAB_00017647;" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00017647;" goto statement_identifier ;)) (labeled_statement "LAB_000175ed:\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;" statement_identifier : (if_statement "if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;" if (parenthesized_expression "((DAT_0006f0a0 & 2) != 0)" ( (binary_expression "(DAT_0006f0a0 & 2) != 0" (parenthesized_expression "(DAT_0006f0a0 & 2)" ( (binary_expression "DAT_0006f0a0 & 2" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00015d50;" goto statement_identifier ;))) (if_statement "if (param_3 != 0) goto LAB_00015c78;" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00015c78;" goto statement_identifier ;)) (goto_statement "goto LAB_00016b27;" goto statement_identifier ;) })) (expression_statement "uVar7 = 1;" (assignment_expression "uVar7 = 1" identifier = number_literal) ;) (expression_statement "iVar5 = strcmp((char *)param_1,"-C");" (assignment_expression "iVar5 = 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 (iVar5 == 0) goto LAB_0001762d;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001762d;" goto statement_identifier ;)) (labeled_statement "LAB_00017679:\n    iVar5 = strcmp((char *)param_1,"-1");" statement_identifier : (expression_statement "iVar5 = strcmp((char *)param_1,"-1");" (assignment_expression "iVar5 = 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 (iVar5 == 0) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_000175ed;\n    }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_000175ed;\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_000175ed;" goto statement_identifier ;) })) (labeled_statement "LAB_00017647:\n    iVar5 = strcmp((char *)param_1,"-2");" statement_identifier : (expression_statement "iVar5 = strcmp((char *)param_1,"-2");" (assignment_expression "iVar5 = 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 (iVar5 == 0) {\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_000175ad:\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n      if (param_3 != 0) {\nLAB_00015c78:\n        FUN_00015950();\n        return 1;\n      }\nLAB_00016b67:\n      uVar7 = 1;\n      FUN_000183f0();\n    }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_000175ad:\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n      if (param_3 != 0) {\nLAB_00015c78:\n        FUN_00015950();\n        return 1;\n      }\nLAB_00016b67:\n      uVar7 = 1;\n      FUN_000183f0();\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_000175ad:\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;" statement_identifier : (if_statement "if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;" if (parenthesized_expression "((DAT_0006f0a0 & 2) != 0)" ( (binary_expression "(DAT_0006f0a0 & 2) != 0" (parenthesized_expression "(DAT_0006f0a0 & 2)" ( (binary_expression "DAT_0006f0a0 & 2" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00015d50;" goto statement_identifier ;))) (if_statement "if (param_3 != 0) {\nLAB_00015c78:\n        FUN_00015950();\n        return 1;\n      }" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_00015c78:\n        FUN_00015950();\n        return 1;\n      }" { (labeled_statement "LAB_00015c78:\n        FUN_00015950();" statement_identifier : (expression_statement "FUN_00015950();" (call_expression "FUN_00015950()" identifier (argument_list "()" ( ))) ;)) (return_statement "return 1;" return number_literal ;) })) (labeled_statement "LAB_00016b67:\n      uVar7 = 1;" statement_identifier : (expression_statement "uVar7 = 1;" (assignment_expression "uVar7 = 1" identifier = number_literal) ;)) (expression_statement "FUN_000183f0();" (call_expression "FUN_000183f0()" identifier (argument_list "()" ( ))) ;) })) }) (else_clause "else {\n    iVar5 = 9;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)"-loghost";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar13 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar15 = false;\n    bVar12 = (!bVar13 && !bVar12) == bVar13;\n    if (!bVar12) {\n      iVar5 = 9;\n      pbVar9 = param_1;\n      pbVar11 = (byte *)"-hostkey";\n      do {\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        bVar15 = *pbVar9 < *pbVar11;\n        bVar12 = *pbVar9 == *pbVar11;\n        pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n      } while (bVar12);\n      bVar12 = (!bVar15 && !bVar12) == bVar15;\n      if (bVar12) {\n        if (param_2 == (char *)0x0) {\n          return 0xfffffffe;\n        }\n        if (param_3 < 0) {\n          return 2;\n        }\nLAB_00016218:\n        if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n        if (param_3 != 0) goto LAB_00016123;\n        goto LAB_00015f0d;\n      }\n      goto LAB_0001624d;\n    }\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n    if (param_3 != 0) goto LAB_00016123;\nLAB_00015ec5:\n    uVar14 = auStack_2c < (undefined1 *)0x4;\n    uVar16 = &stack0x00000000 == (undefined1 *)0x30;\n    FUN_00018530();\n    iVar5 = 9;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)"-hostkey";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);\n    bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n    if (!bVar12) goto LAB_00016248;\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\nLAB_00015f0d:\n    FUN_00019990();\n    iVar5 = FUN_0001a210();\n    uVar14 = 0;\n    uVar16 = iVar5 == 0;\n    if ((bool)uVar16) {\n      FUN_00044820();\n      FUN_0001a110();\n      return 2;\n    }\n    uVar7 = 2;\n    FUN_000185e0();\n    FUN_0001a110();\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b0ec;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);\n    bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n    if (!bVar12) goto LAB_0001626b;\n    bVar12 = (DAT_0006f0a0 & 3) == 0;\n    if (!bVar12) goto LAB_000161c3;\nLAB_00015f8f:\n    bVar15 = false;\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)0x53a3b;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    if ((!bVar15 && !bVar12) == bVar15) {\n      FUN_00019ef0();\n      FUN_00019990();\n    }\n    else {\n      iVar5 = FUN_00019140();\n      if (iVar5 == 0) {\n        FUN_00044820();\n        return 2;\n      }\n      do {\n        iVar5 = FUN_00019140();\n      } while (iVar5 != 0);\n      FUN_00019ef0();\n      FUN_00019990();\n    }\n    uVar14 = (undefined1 *)0xffffffef < &stack0xffffffc4;\n    uVar16 = &stack0x00000000 == (undefined1 *)0x2c;\n    uVar7 = 2;\n    FUN_000185e0();\n    FUN_0001a110();\n    FUN_0001a110();\n    iVar5 = 4;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b0fd;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);\n    bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n    if (bVar12) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;\n      goto LAB_000162ed;\n    }\nLAB_00016698:\n    bVar15 = false;\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b101;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar12 = (!bVar15 && !bVar12) == bVar15;\n    if (bVar12) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;\n      if (param_3 != 0) goto LAB_00016123;\n      goto LAB_0001639b;\n    }\nLAB_000166e0:\n    bVar15 = false;\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b104;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar12 = (!bVar15 && !bVar12) == bVar15;\n    if (bVar12) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n      if (param_3 != 0) goto LAB_00016723;\n      goto LAB_000164a7;\n    }\nLAB_00016777:\n    bVar15 = false;\n    iVar5 = 4;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b107;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    if ((!bVar15 && !bVar12) == bVar15) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n      if (param_3 != 0) goto LAB_00016723;\n      goto LAB_000164f6;\n    }\n    iVar5 = strcmp((char *)param_1,"-agent");\n    if ((iVar5 != 0) && (iVar5 = strcmp((char *)param_1,"-pagent"), iVar5 != 0)) goto LAB_0001685f;\nLAB_00016884:\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_0001688c:\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n    if (param_3 != 0) goto LAB_00015c78;\nLAB_000168a1:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-noagent");\n    if (iVar5 != 0) {\n      uVar7 = 1;\n      iVar5 = strcmp((char *)param_1,"-nopagent");\n      if (iVar5 != 0) goto LAB_000165eb;\n      goto LAB_00016e44;\n    }\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\nLAB_000168e1:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-A");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      goto LAB_00016921;\n    }\n    uVar7 = 1;\n    iVar5 = strcmp((char *)param_1,"-a");\n    if (iVar5 == 0) {\nLAB_0001700b:\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\n      goto LAB_00016961;\n    }\nLAB_00016f0f:\n    iVar5 = strcmp((char *)param_1,"-X");\n    if (iVar5 != 0) goto LAB_00016f97;\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_00016f38:\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n    if (param_3 != 0) goto LAB_00015c78;\nLAB_000169a1:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-x");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\nLAB_000169e4:\n      FUN_000183f0();\n      iVar5 = strcmp((char *)param_1,"-t");\n      if (iVar5 == 0) {\n        if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n        goto LAB_00016a27;\n      }\n      uVar7 = 1;\n      iVar5 = strcmp((char *)param_1,"-T");\n      if (iVar5 == 0) goto LAB_0001770d;\nLAB_00017759:\n      iVar5 = strcmp((char *)param_1,"-N");\n      if (iVar5 != 0) goto LAB_00017727;\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_000176cd:\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\n      goto LAB_00016aa7;\n    }\n    uVar7 = 1;\n    iVar5 = strcmp((char *)param_1,"-t");\n    if (iVar5 != 0) goto LAB_000177b1;\nLAB_0001707c:\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n    if (param_3 != 0) goto LAB_00017091;\nLAB_00016a27:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-T");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      goto LAB_00016a67;\n    }\n    uVar7 = 1;\n    iVar5 = strcmp((char *)param_1,"-N");\n    if (iVar5 == 0) goto LAB_000176cd;\nLAB_00017727:\n    iVar5 = strcmp((char *)param_1,"-C");\n    if (iVar5 != 0) goto LAB_00017679;\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_0001762d:\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n    if (param_3 != 0) goto LAB_00015c78;\nLAB_00016ae7:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-1");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\nLAB_00016b27:\n      FUN_000183f0();\n      iVar5 = strcmp((char *)param_1,"-2");\n      if (iVar5 == 0) {\n        if ((DAT_0006f0a0 & 2) != 0) {\nLAB_00015d50:\n          FUN_00044820();\n          return 1;\n        }\n        goto LAB_00016b67;\n      }\n    }\n    else {\n      iVar5 = strcmp((char *)param_1,"-2");\n      if (iVar5 == 0) goto LAB_000175ad;\n    }\n    uVar7 = 1;\n  }" else (compound_statement "{\n    iVar5 = 9;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)"-loghost";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar13 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar15 = false;\n    bVar12 = (!bVar13 && !bVar12) == bVar13;\n    if (!bVar12) {\n      iVar5 = 9;\n      pbVar9 = param_1;\n      pbVar11 = (byte *)"-hostkey";\n      do {\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        bVar15 = *pbVar9 < *pbVar11;\n        bVar12 = *pbVar9 == *pbVar11;\n        pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n      } while (bVar12);\n      bVar12 = (!bVar15 && !bVar12) == bVar15;\n      if (bVar12) {\n        if (param_2 == (char *)0x0) {\n          return 0xfffffffe;\n        }\n        if (param_3 < 0) {\n          return 2;\n        }\nLAB_00016218:\n        if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n        if (param_3 != 0) goto LAB_00016123;\n        goto LAB_00015f0d;\n      }\n      goto LAB_0001624d;\n    }\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n    if (param_3 != 0) goto LAB_00016123;\nLAB_00015ec5:\n    uVar14 = auStack_2c < (undefined1 *)0x4;\n    uVar16 = &stack0x00000000 == (undefined1 *)0x30;\n    FUN_00018530();\n    iVar5 = 9;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)"-hostkey";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);\n    bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n    if (!bVar12) goto LAB_00016248;\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\nLAB_00015f0d:\n    FUN_00019990();\n    iVar5 = FUN_0001a210();\n    uVar14 = 0;\n    uVar16 = iVar5 == 0;\n    if ((bool)uVar16) {\n      FUN_00044820();\n      FUN_0001a110();\n      return 2;\n    }\n    uVar7 = 2;\n    FUN_000185e0();\n    FUN_0001a110();\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b0ec;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);\n    bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n    if (!bVar12) goto LAB_0001626b;\n    bVar12 = (DAT_0006f0a0 & 3) == 0;\n    if (!bVar12) goto LAB_000161c3;\nLAB_00015f8f:\n    bVar15 = false;\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)0x53a3b;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    if ((!bVar15 && !bVar12) == bVar15) {\n      FUN_00019ef0();\n      FUN_00019990();\n    }\n    else {\n      iVar5 = FUN_00019140();\n      if (iVar5 == 0) {\n        FUN_00044820();\n        return 2;\n      }\n      do {\n        iVar5 = FUN_00019140();\n      } while (iVar5 != 0);\n      FUN_00019ef0();\n      FUN_00019990();\n    }\n    uVar14 = (undefined1 *)0xffffffef < &stack0xffffffc4;\n    uVar16 = &stack0x00000000 == (undefined1 *)0x2c;\n    uVar7 = 2;\n    FUN_000185e0();\n    FUN_0001a110();\n    FUN_0001a110();\n    iVar5 = 4;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b0fd;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);\n    bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n    if (bVar12) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;\n      goto LAB_000162ed;\n    }\nLAB_00016698:\n    bVar15 = false;\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b101;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar12 = (!bVar15 && !bVar12) == bVar15;\n    if (bVar12) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;\n      if (param_3 != 0) goto LAB_00016123;\n      goto LAB_0001639b;\n    }\nLAB_000166e0:\n    bVar15 = false;\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b104;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar12 = (!bVar15 && !bVar12) == bVar15;\n    if (bVar12) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n      if (param_3 != 0) goto LAB_00016723;\n      goto LAB_000164a7;\n    }\nLAB_00016777:\n    bVar15 = false;\n    iVar5 = 4;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b107;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    if ((!bVar15 && !bVar12) == bVar15) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n      if (param_3 != 0) goto LAB_00016723;\n      goto LAB_000164f6;\n    }\n    iVar5 = strcmp((char *)param_1,"-agent");\n    if ((iVar5 != 0) && (iVar5 = strcmp((char *)param_1,"-pagent"), iVar5 != 0)) goto LAB_0001685f;\nLAB_00016884:\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_0001688c:\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n    if (param_3 != 0) goto LAB_00015c78;\nLAB_000168a1:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-noagent");\n    if (iVar5 != 0) {\n      uVar7 = 1;\n      iVar5 = strcmp((char *)param_1,"-nopagent");\n      if (iVar5 != 0) goto LAB_000165eb;\n      goto LAB_00016e44;\n    }\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\nLAB_000168e1:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-A");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      goto LAB_00016921;\n    }\n    uVar7 = 1;\n    iVar5 = strcmp((char *)param_1,"-a");\n    if (iVar5 == 0) {\nLAB_0001700b:\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\n      goto LAB_00016961;\n    }\nLAB_00016f0f:\n    iVar5 = strcmp((char *)param_1,"-X");\n    if (iVar5 != 0) goto LAB_00016f97;\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_00016f38:\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n    if (param_3 != 0) goto LAB_00015c78;\nLAB_000169a1:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-x");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\nLAB_000169e4:\n      FUN_000183f0();\n      iVar5 = strcmp((char *)param_1,"-t");\n      if (iVar5 == 0) {\n        if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n        goto LAB_00016a27;\n      }\n      uVar7 = 1;\n      iVar5 = strcmp((char *)param_1,"-T");\n      if (iVar5 == 0) goto LAB_0001770d;\nLAB_00017759:\n      iVar5 = strcmp((char *)param_1,"-N");\n      if (iVar5 != 0) goto LAB_00017727;\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_000176cd:\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\n      goto LAB_00016aa7;\n    }\n    uVar7 = 1;\n    iVar5 = strcmp((char *)param_1,"-t");\n    if (iVar5 != 0) goto LAB_000177b1;\nLAB_0001707c:\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n    if (param_3 != 0) goto LAB_00017091;\nLAB_00016a27:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-T");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      goto LAB_00016a67;\n    }\n    uVar7 = 1;\n    iVar5 = strcmp((char *)param_1,"-N");\n    if (iVar5 == 0) goto LAB_000176cd;\nLAB_00017727:\n    iVar5 = strcmp((char *)param_1,"-C");\n    if (iVar5 != 0) goto LAB_00017679;\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_0001762d:\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n    if (param_3 != 0) goto LAB_00015c78;\nLAB_00016ae7:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-1");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\nLAB_00016b27:\n      FUN_000183f0();\n      iVar5 = strcmp((char *)param_1,"-2");\n      if (iVar5 == 0) {\n        if ((DAT_0006f0a0 & 2) != 0) {\nLAB_00015d50:\n          FUN_00044820();\n          return 1;\n        }\n        goto LAB_00016b67;\n      }\n    }\n    else {\n      iVar5 = strcmp((char *)param_1,"-2");\n      if (iVar5 == 0) goto LAB_000175ad;\n    }\n    uVar7 = 1;\n  }" { (expression_statement "iVar5 = 9;" (assignment_expression "iVar5 = 9" identifier = number_literal) ;) (expression_statement "pbVar9 = param_1;" (assignment_expression "pbVar9 = param_1" identifier = identifier) ;) (expression_statement "pbVar11 = (byte *)"-loghost";" (assignment_expression "pbVar11 = (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 (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar13 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);" do (compound_statement "{\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar13 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    }" { (if_statement "if (iVar5 == 0) break;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) (expression_statement "bVar13 = *pbVar9 < *pbVar11;" (assignment_expression "bVar13 = *pbVar9 < *pbVar11" identifier = (binary_expression "*pbVar9 < *pbVar11" (pointer_expression "*pbVar9" * identifier) < (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "bVar12 = *pbVar9 == *pbVar11;" (assignment_expression "bVar12 = *pbVar9 == *pbVar11" identifier = (binary_expression "*pbVar9 == *pbVar11" (pointer_expression "*pbVar9" * identifier) == (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar9 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar11 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" 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      iVar5 = 9;\n      pbVar9 = param_1;\n      pbVar11 = (byte *)"-hostkey";\n      do {\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        bVar15 = *pbVar9 < *pbVar11;\n        bVar12 = *pbVar9 == *pbVar11;\n        pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n      } while (bVar12);\n      bVar12 = (!bVar15 && !bVar12) == bVar15;\n      if (bVar12) {\n        if (param_2 == (char *)0x0) {\n          return 0xfffffffe;\n        }\n        if (param_3 < 0) {\n          return 2;\n        }\nLAB_00016218:\n        if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n        if (param_3 != 0) goto LAB_00016123;\n        goto LAB_00015f0d;\n      }\n      goto LAB_0001624d;\n    }" if (parenthesized_expression "(!bVar12)" ( (unary_expression "!bVar12" ! identifier) )) (compound_statement "{\n      iVar5 = 9;\n      pbVar9 = param_1;\n      pbVar11 = (byte *)"-hostkey";\n      do {\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        bVar15 = *pbVar9 < *pbVar11;\n        bVar12 = *pbVar9 == *pbVar11;\n        pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n      } while (bVar12);\n      bVar12 = (!bVar15 && !bVar12) == bVar15;\n      if (bVar12) {\n        if (param_2 == (char *)0x0) {\n          return 0xfffffffe;\n        }\n        if (param_3 < 0) {\n          return 2;\n        }\nLAB_00016218:\n        if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n        if (param_3 != 0) goto LAB_00016123;\n        goto LAB_00015f0d;\n      }\n      goto LAB_0001624d;\n    }" { (expression_statement "iVar5 = 9;" (assignment_expression "iVar5 = 9" identifier = number_literal) ;) (expression_statement "pbVar9 = param_1;" (assignment_expression "pbVar9 = param_1" identifier = identifier) ;) (expression_statement "pbVar11 = (byte *)"-hostkey";" (assignment_expression "pbVar11 = (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 (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        bVar15 = *pbVar9 < *pbVar11;\n        bVar12 = *pbVar9 == *pbVar11;\n        pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n      } while (bVar12);" do (compound_statement "{\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        bVar15 = *pbVar9 < *pbVar11;\n        bVar12 = *pbVar9 == *pbVar11;\n        pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n      }" { (if_statement "if (iVar5 == 0) break;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) (expression_statement "bVar15 = *pbVar9 < *pbVar11;" (assignment_expression "bVar15 = *pbVar9 < *pbVar11" identifier = (binary_expression "*pbVar9 < *pbVar11" (pointer_expression "*pbVar9" * identifier) < (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "bVar12 = *pbVar9 == *pbVar11;" (assignment_expression "bVar12 = *pbVar9 == *pbVar11" identifier = (binary_expression "*pbVar9 == *pbVar11" (pointer_expression "*pbVar9" * identifier) == (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar9 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar11 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" 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 (param_2 == (char *)0x0) {\n          return 0xfffffffe;\n        }\n        if (param_3 < 0) {\n          return 2;\n        }\nLAB_00016218:\n        if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n        if (param_3 != 0) goto LAB_00016123;\n        goto LAB_00015f0d;\n      }" if (parenthesized_expression "(bVar12)" ( identifier )) (compound_statement "{\n        if (param_2 == (char *)0x0) {\n          return 0xfffffffe;\n        }\n        if (param_3 < 0) {\n          return 2;\n        }\nLAB_00016218:\n        if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n        if (param_3 != 0) goto LAB_00016123;\n        goto LAB_00015f0d;\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 ;) })) (labeled_statement "LAB_00016218:\n        if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;" statement_identifier : (if_statement "if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;" if (parenthesized_expression "((DAT_0006f0a0 & 2) != 0)" ( (binary_expression "(DAT_0006f0a0 & 2) != 0" (parenthesized_expression "(DAT_0006f0a0 & 2)" ( (binary_expression "DAT_0006f0a0 & 2" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_000161c3;" goto statement_identifier ;))) (if_statement "if (param_3 != 0) goto LAB_00016123;" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00016123;" goto statement_identifier ;)) (goto_statement "goto LAB_00015f0d;" goto statement_identifier ;) })) (goto_statement "goto LAB_0001624d;" 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 ;) })) (if_statement "if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;" if (parenthesized_expression "((DAT_0006f0a0 & 2) != 0)" ( (binary_expression "(DAT_0006f0a0 & 2) != 0" (parenthesized_expression "(DAT_0006f0a0 & 2)" ( (binary_expression "DAT_0006f0a0 & 2" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_000161c3;" goto statement_identifier ;)) (if_statement "if (param_3 != 0) goto LAB_00016123;" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00016123;" goto statement_identifier ;)) (labeled_statement "LAB_00015ec5:\n    uVar14 = auStack_2c < (undefined1 *)0x4;" statement_identifier : (expression_statement "uVar14 = auStack_2c < (undefined1 *)0x4;" (assignment_expression "uVar14 = auStack_2c < (undefined1 *)0x4" identifier = (binary_expression "auStack_2c < (undefined1 *)0x4" identifier < (cast_expression "(undefined1 *)0x4" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;)) (expression_statement "uVar16 = &stack0x00000000 == (undefined1 *)0x30;" (assignment_expression "uVar16 = &stack0x00000000 == (undefined1 *)0x30" identifier = (binary_expression "&stack0x00000000 == (undefined1 *)0x30" (pointer_expression "&stack0x00000000" & identifier) == (cast_expression "(undefined1 *)0x30" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "FUN_00018530();" (call_expression "FUN_00018530()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar5 = 9;" (assignment_expression "iVar5 = 9" identifier = number_literal) ;) (expression_statement "pbVar9 = param_1;" (assignment_expression "pbVar9 = param_1" identifier = identifier) ;) (expression_statement "pbVar11 = (byte *)"-hostkey";" (assignment_expression "pbVar11 = (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 (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);" do (compound_statement "{\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    }" { (if_statement "if (iVar5 == 0) break;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) (expression_statement "uVar14 = *pbVar9 < *pbVar11;" (assignment_expression "uVar14 = *pbVar9 < *pbVar11" identifier = (binary_expression "*pbVar9 < *pbVar11" (pointer_expression "*pbVar9" * identifier) < (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "uVar16 = *pbVar9 == *pbVar11;" (assignment_expression "uVar16 = *pbVar9 == *pbVar11" identifier = (binary_expression "*pbVar9 == *pbVar11" (pointer_expression "*pbVar9" * identifier) == (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar9 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar11 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" 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 = (!(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_00016248;" if (parenthesized_expression "(!bVar12)" ( (unary_expression "!bVar12" ! identifier) )) (goto_statement "goto LAB_00016248;" goto statement_identifier ;)) (if_statement "if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;" if (parenthesized_expression "((DAT_0006f0a0 & 2) != 0)" ( (binary_expression "(DAT_0006f0a0 & 2) != 0" (parenthesized_expression "(DAT_0006f0a0 & 2)" ( (binary_expression "DAT_0006f0a0 & 2" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_000161c3;" goto statement_identifier ;)) (labeled_statement "LAB_00015f0d:\n    FUN_00019990();" statement_identifier : (expression_statement "FUN_00019990();" (call_expression "FUN_00019990()" identifier (argument_list "()" ( ))) ;)) (expression_statement "iVar5 = FUN_0001a210();" (assignment_expression "iVar5 = FUN_0001a210()" identifier = (call_expression "FUN_0001a210()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) (expression_statement "uVar16 = iVar5 == 0;" (assignment_expression "uVar16 = iVar5 == 0" identifier = (binary_expression "iVar5 == 0" identifier == number_literal)) ;) (if_statement "if ((bool)uVar16) {\n      FUN_00044820();\n      FUN_0001a110();\n      return 2;\n    }" if (parenthesized_expression "((bool)uVar16)" ( (cast_expression "(bool)uVar16" ( (type_descriptor "bool" primitive_type) ) identifier) )) (compound_statement "{\n      FUN_00044820();\n      FUN_0001a110();\n      return 2;\n    }" { (expression_statement "FUN_00044820();" (call_expression "FUN_00044820()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_0001a110();" (call_expression "FUN_0001a110()" identifier (argument_list "()" ( ))) ;) (return_statement "return 2;" return number_literal ;) })) (expression_statement "uVar7 = 2;" (assignment_expression "uVar7 = 2" identifier = number_literal) ;) (expression_statement "FUN_000185e0();" (call_expression "FUN_000185e0()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_0001a110();" (call_expression "FUN_0001a110()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar5 = 3;" (assignment_expression "iVar5 = 3" identifier = number_literal) ;) (expression_statement "pbVar9 = param_1;" (assignment_expression "pbVar9 = param_1" identifier = identifier) ;) (expression_statement "pbVar11 = &DAT_0004b0ec;" (assignment_expression "pbVar11 = &DAT_0004b0ec" identifier = (pointer_expression "&DAT_0004b0ec" & identifier)) ;) (do_statement "do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);" do (compound_statement "{\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    }" { (if_statement "if (iVar5 == 0) break;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) (expression_statement "uVar14 = *pbVar9 < *pbVar11;" (assignment_expression "uVar14 = *pbVar9 < *pbVar11" identifier = (binary_expression "*pbVar9 < *pbVar11" (pointer_expression "*pbVar9" * identifier) < (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "uVar16 = *pbVar9 == *pbVar11;" (assignment_expression "uVar16 = *pbVar9 == *pbVar11" identifier = (binary_expression "*pbVar9 == *pbVar11" (pointer_expression "*pbVar9" * identifier) == (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar9 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar11 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" 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 = (!(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_0001626b;" if (parenthesized_expression "(!bVar12)" ( (unary_expression "!bVar12" ! identifier) )) (goto_statement "goto LAB_0001626b;" goto statement_identifier ;)) (expression_statement "bVar12 = (DAT_0006f0a0 & 3) == 0;" (assignment_expression "bVar12 = (DAT_0006f0a0 & 3) == 0" identifier = (binary_expression "(DAT_0006f0a0 & 3) == 0" (parenthesized_expression "(DAT_0006f0a0 & 3)" ( (binary_expression "DAT_0006f0a0 & 3" identifier & number_literal) )) == number_literal)) ;) (if_statement "if (!bVar12) goto LAB_000161c3;" if (parenthesized_expression "(!bVar12)" ( (unary_expression "!bVar12" ! identifier) )) (goto_statement "goto LAB_000161c3;" goto statement_identifier ;)) (labeled_statement "LAB_00015f8f:\n    bVar15 = false;" statement_identifier : (expression_statement "bVar15 = false;" (assignment_expression "bVar15 = false" identifier = false) ;)) (expression_statement "iVar5 = 3;" (assignment_expression "iVar5 = 3" identifier = number_literal) ;) (expression_statement "pbVar9 = param_1;" (assignment_expression "pbVar9 = param_1" identifier = identifier) ;) (expression_statement "pbVar11 = (byte *)0x53a3b;" (assignment_expression "pbVar11 = (byte *)0x53a3b" identifier = (cast_expression "(byte *)0x53a3b" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);" do (compound_statement "{\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    }" { (if_statement "if (iVar5 == 0) break;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) (expression_statement "bVar15 = *pbVar9 < *pbVar11;" (assignment_expression "bVar15 = *pbVar9 < *pbVar11" identifier = (binary_expression "*pbVar9 < *pbVar11" (pointer_expression "*pbVar9" * identifier) < (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "bVar12 = *pbVar9 == *pbVar11;" (assignment_expression "bVar12 = *pbVar9 == *pbVar11" identifier = (binary_expression "*pbVar9 == *pbVar11" (pointer_expression "*pbVar9" * identifier) == (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar9 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar11 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar12)" ( identifier )) ;) (if_statement "if ((!bVar15 && !bVar12) == bVar15) {\n      FUN_00019ef0();\n      FUN_00019990();\n    }\n    else {\n      iVar5 = FUN_00019140();\n      if (iVar5 == 0) {\n        FUN_00044820();\n        return 2;\n      }\n      do {\n        iVar5 = FUN_00019140();\n      } while (iVar5 != 0);\n      FUN_00019ef0();\n      FUN_00019990();\n    }" 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) )) (compound_statement "{\n      FUN_00019ef0();\n      FUN_00019990();\n    }" { (expression_statement "FUN_00019ef0();" (call_expression "FUN_00019ef0()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00019990();" (call_expression "FUN_00019990()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n      iVar5 = FUN_00019140();\n      if (iVar5 == 0) {\n        FUN_00044820();\n        return 2;\n      }\n      do {\n        iVar5 = FUN_00019140();\n      } while (iVar5 != 0);\n      FUN_00019ef0();\n      FUN_00019990();\n    }" else (compound_statement "{\n      iVar5 = FUN_00019140();\n      if (iVar5 == 0) {\n        FUN_00044820();\n        return 2;\n      }\n      do {\n        iVar5 = FUN_00019140();\n      } while (iVar5 != 0);\n      FUN_00019ef0();\n      FUN_00019990();\n    }" { (expression_statement "iVar5 = FUN_00019140();" (assignment_expression "iVar5 = FUN_00019140()" identifier = (call_expression "FUN_00019140()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar5 == 0) {\n        FUN_00044820();\n        return 2;\n      }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n        FUN_00044820();\n        return 2;\n      }" { (expression_statement "FUN_00044820();" (call_expression "FUN_00044820()" identifier (argument_list "()" ( ))) ;) (return_statement "return 2;" return number_literal ;) })) (do_statement "do {\n        iVar5 = FUN_00019140();\n      } while (iVar5 != 0);" do (compound_statement "{\n        iVar5 = FUN_00019140();\n      }" { (expression_statement "iVar5 = FUN_00019140();" (assignment_expression "iVar5 = FUN_00019140()" identifier = (call_expression "FUN_00019140()" identifier (argument_list "()" ( )))) ;) }) while (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) ;) (expression_statement "FUN_00019ef0();" (call_expression "FUN_00019ef0()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00019990();" (call_expression "FUN_00019990()" identifier (argument_list "()" ( ))) ;) }))) (expression_statement "uVar14 = (undefined1 *)0xffffffef < &stack0xffffffc4;" (assignment_expression "uVar14 = (undefined1 *)0xffffffef < &stack0xffffffc4" identifier = (binary_expression "(undefined1 *)0xffffffef < &stack0xffffffc4" (cast_expression "(undefined1 *)0xffffffef" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < (pointer_expression "&stack0xffffffc4" & identifier))) ;) (expression_statement "uVar16 = &stack0x00000000 == (undefined1 *)0x2c;" (assignment_expression "uVar16 = &stack0x00000000 == (undefined1 *)0x2c" identifier = (binary_expression "&stack0x00000000 == (undefined1 *)0x2c" (pointer_expression "&stack0x00000000" & identifier) == (cast_expression "(undefined1 *)0x2c" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "uVar7 = 2;" (assignment_expression "uVar7 = 2" identifier = number_literal) ;) (expression_statement "FUN_000185e0();" (call_expression "FUN_000185e0()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_0001a110();" (call_expression "FUN_0001a110()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_0001a110();" (call_expression "FUN_0001a110()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar5 = 4;" (assignment_expression "iVar5 = 4" identifier = number_literal) ;) (expression_statement "pbVar9 = param_1;" (assignment_expression "pbVar9 = param_1" identifier = identifier) ;) (expression_statement "pbVar11 = &DAT_0004b0fd;" (assignment_expression "pbVar11 = &DAT_0004b0fd" identifier = (pointer_expression "&DAT_0004b0fd" & identifier)) ;) (do_statement "do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);" do (compound_statement "{\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    }" { (if_statement "if (iVar5 == 0) break;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) (expression_statement "uVar14 = *pbVar9 < *pbVar11;" (assignment_expression "uVar14 = *pbVar9 < *pbVar11" identifier = (binary_expression "*pbVar9 < *pbVar11" (pointer_expression "*pbVar9" * identifier) < (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "uVar16 = *pbVar9 == *pbVar11;" (assignment_expression "uVar16 = *pbVar9 == *pbVar11" identifier = (binary_expression "*pbVar9 == *pbVar11" (pointer_expression "*pbVar9" * identifier) == (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar9 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar11 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" 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 = (!(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      if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;\n      goto LAB_000162ed;\n    }" if (parenthesized_expression "(bVar12)" ( identifier )) (compound_statement "{\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;\n      goto LAB_000162ed;\n    }" { (if_statement "if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;" if (parenthesized_expression "((DAT_0006f0a0 & 3) != 0)" ( (binary_expression "(DAT_0006f0a0 & 3) != 0" (parenthesized_expression "(DAT_0006f0a0 & 3)" ( (binary_expression "DAT_0006f0a0 & 3" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_000161c3;" goto statement_identifier ;)) (goto_statement "goto LAB_000162ed;" goto statement_identifier ;) })) (labeled_statement "LAB_00016698:\n    bVar15 = false;" statement_identifier : (expression_statement "bVar15 = false;" (assignment_expression "bVar15 = false" identifier = false) ;)) (expression_statement "iVar5 = 3;" (assignment_expression "iVar5 = 3" identifier = number_literal) ;) (expression_statement "pbVar9 = param_1;" (assignment_expression "pbVar9 = param_1" identifier = identifier) ;) (expression_statement "pbVar11 = &DAT_0004b101;" (assignment_expression "pbVar11 = &DAT_0004b101" identifier = (pointer_expression "&DAT_0004b101" & identifier)) ;) (do_statement "do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);" do (compound_statement "{\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    }" { (if_statement "if (iVar5 == 0) break;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) (expression_statement "bVar15 = *pbVar9 < *pbVar11;" (assignment_expression "bVar15 = *pbVar9 < *pbVar11" identifier = (binary_expression "*pbVar9 < *pbVar11" (pointer_expression "*pbVar9" * identifier) < (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "bVar12 = *pbVar9 == *pbVar11;" (assignment_expression "bVar12 = *pbVar9 == *pbVar11" identifier = (binary_expression "*pbVar9 == *pbVar11" (pointer_expression "*pbVar9" * identifier) == (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar9 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar11 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" 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 (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;\n      if (param_3 != 0) goto LAB_00016123;\n      goto LAB_0001639b;\n    }" if (parenthesized_expression "(bVar12)" ( identifier )) (compound_statement "{\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;\n      if (param_3 != 0) goto LAB_00016123;\n      goto LAB_0001639b;\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 ;) })) (if_statement "if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;" if (parenthesized_expression "((DAT_0006f0a0 & 3) != 0)" ( (binary_expression "(DAT_0006f0a0 & 3) != 0" (parenthesized_expression "(DAT_0006f0a0 & 3)" ( (binary_expression "DAT_0006f0a0 & 3" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_000161c3;" goto statement_identifier ;)) (if_statement "if (param_3 != 0) goto LAB_00016123;" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00016123;" goto statement_identifier ;)) (goto_statement "goto LAB_0001639b;" goto statement_identifier ;) })) (labeled_statement "LAB_000166e0:\n    bVar15 = false;" statement_identifier : (expression_statement "bVar15 = false;" (assignment_expression "bVar15 = false" identifier = false) ;)) (expression_statement "iVar5 = 3;" (assignment_expression "iVar5 = 3" identifier = number_literal) ;) (expression_statement "pbVar9 = param_1;" (assignment_expression "pbVar9 = param_1" identifier = identifier) ;) (expression_statement "pbVar11 = &DAT_0004b104;" (assignment_expression "pbVar11 = &DAT_0004b104" identifier = (pointer_expression "&DAT_0004b104" & identifier)) ;) (do_statement "do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);" do (compound_statement "{\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    }" { (if_statement "if (iVar5 == 0) break;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) (expression_statement "bVar15 = *pbVar9 < *pbVar11;" (assignment_expression "bVar15 = *pbVar9 < *pbVar11" identifier = (binary_expression "*pbVar9 < *pbVar11" (pointer_expression "*pbVar9" * identifier) < (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "bVar12 = *pbVar9 == *pbVar11;" (assignment_expression "bVar12 = *pbVar9 == *pbVar11" identifier = (binary_expression "*pbVar9 == *pbVar11" (pointer_expression "*pbVar9" * identifier) == (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar9 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar11 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" 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 (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n      if (param_3 != 0) goto LAB_00016723;\n      goto LAB_000164a7;\n    }" if (parenthesized_expression "(bVar12)" ( identifier )) (compound_statement "{\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n      if (param_3 != 0) goto LAB_00016723;\n      goto LAB_000164a7;\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 ;) })) (if_statement "if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;" if (parenthesized_expression "((DAT_0006f0a0 & 2) != 0)" ( (binary_expression "(DAT_0006f0a0 & 2) != 0" (parenthesized_expression "(DAT_0006f0a0 & 2)" ( (binary_expression "DAT_0006f0a0 & 2" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_000161c3;" goto statement_identifier ;)) (if_statement "if (param_3 != 0) goto LAB_00016723;" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00016723;" goto statement_identifier ;)) (goto_statement "goto LAB_000164a7;" goto statement_identifier ;) })) (labeled_statement "LAB_00016777:\n    bVar15 = false;" statement_identifier : (expression_statement "bVar15 = false;" (assignment_expression "bVar15 = false" identifier = false) ;)) (expression_statement "iVar5 = 4;" (assignment_expression "iVar5 = 4" identifier = number_literal) ;) (expression_statement "pbVar9 = param_1;" (assignment_expression "pbVar9 = param_1" identifier = identifier) ;) (expression_statement "pbVar11 = &DAT_0004b107;" (assignment_expression "pbVar11 = &DAT_0004b107" identifier = (pointer_expression "&DAT_0004b107" & identifier)) ;) (do_statement "do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);" do (compound_statement "{\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    }" { (if_statement "if (iVar5 == 0) break;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) (expression_statement "bVar15 = *pbVar9 < *pbVar11;" (assignment_expression "bVar15 = *pbVar9 < *pbVar11" identifier = (binary_expression "*pbVar9 < *pbVar11" (pointer_expression "*pbVar9" * identifier) < (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "bVar12 = *pbVar9 == *pbVar11;" (assignment_expression "bVar12 = *pbVar9 == *pbVar11" identifier = (binary_expression "*pbVar9 == *pbVar11" (pointer_expression "*pbVar9" * identifier) == (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar9 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar11 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar12)" ( identifier )) ;) (if_statement "if ((!bVar15 && !bVar12) == bVar15) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n      if (param_3 != 0) goto LAB_00016723;\n      goto LAB_000164f6;\n    }" 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) )) (compound_statement "{\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n      if (param_3 != 0) goto LAB_00016723;\n      goto LAB_000164f6;\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 ;) })) (if_statement "if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;" if (parenthesized_expression "((DAT_0006f0a0 & 2) != 0)" ( (binary_expression "(DAT_0006f0a0 & 2) != 0" (parenthesized_expression "(DAT_0006f0a0 & 2)" ( (binary_expression "DAT_0006f0a0 & 2" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_000161c3;" goto statement_identifier ;)) (if_statement "if (param_3 != 0) goto LAB_00016723;" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00016723;" goto statement_identifier ;)) (goto_statement "goto LAB_000164f6;" goto statement_identifier ;) })) (expression_statement "iVar5 = strcmp((char *)param_1,"-agent");" (assignment_expression "iVar5 = 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 ((iVar5 != 0) && (iVar5 = strcmp((char *)param_1,"-pagent"), iVar5 != 0)) goto LAB_0001685f;" if (parenthesized_expression "((iVar5 != 0) && (iVar5 = strcmp((char *)param_1,"-pagent"), iVar5 != 0))" ( (binary_expression "(iVar5 != 0) && (iVar5 = strcmp((char *)param_1,"-pagent"), iVar5 != 0)" (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar5 = strcmp((char *)param_1,"-pagent"), iVar5 != 0)" ( (comma_expression "iVar5 = strcmp((char *)param_1,"-pagent"), iVar5 != 0" (assignment_expression "iVar5 = 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 ") )))) , (binary_expression "iVar5 != 0" identifier != number_literal)) ))) )) (goto_statement "goto LAB_0001685f;" goto statement_identifier ;)) (labeled_statement "LAB_00016884:\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_0001688c:\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;" statement_identifier : (if_statement "if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;" if (parenthesized_expression "((DAT_0006f0a0 & 2) != 0)" ( (binary_expression "(DAT_0006f0a0 & 2) != 0" (parenthesized_expression "(DAT_0006f0a0 & 2)" ( (binary_expression "DAT_0006f0a0 & 2" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00015d50;" goto statement_identifier ;))) (if_statement "if (param_3 != 0) goto LAB_00015c78;" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00015c78;" goto statement_identifier ;)) (labeled_statement "LAB_000168a1:\n    FUN_000183f0();" statement_identifier : (expression_statement "FUN_000183f0();" (call_expression "FUN_000183f0()" identifier (argument_list "()" ( ))) ;)) (expression_statement "iVar5 = strcmp((char *)param_1,"-noagent");" (assignment_expression "iVar5 = 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 (iVar5 != 0) {\n      uVar7 = 1;\n      iVar5 = strcmp((char *)param_1,"-nopagent");\n      if (iVar5 != 0) goto LAB_000165eb;\n      goto LAB_00016e44;\n    }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n      uVar7 = 1;\n      iVar5 = strcmp((char *)param_1,"-nopagent");\n      if (iVar5 != 0) goto LAB_000165eb;\n      goto LAB_00016e44;\n    }" { (expression_statement "uVar7 = 1;" (assignment_expression "uVar7 = 1" identifier = number_literal) ;) (expression_statement "iVar5 = strcmp((char *)param_1,"-nopagent");" (assignment_expression "iVar5 = 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 ") )))) ;) (if_statement "if (iVar5 != 0) goto LAB_000165eb;" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000165eb;" goto statement_identifier ;)) (goto_statement "goto LAB_00016e44;" goto statement_identifier ;) })) (if_statement "if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;" if (parenthesized_expression "((DAT_0006f0a0 & 2) != 0)" ( (binary_expression "(DAT_0006f0a0 & 2) != 0" (parenthesized_expression "(DAT_0006f0a0 & 2)" ( (binary_expression "DAT_0006f0a0 & 2" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00015d50;" goto statement_identifier ;)) (labeled_statement "LAB_000168e1:\n    FUN_000183f0();" statement_identifier : (expression_statement "FUN_000183f0();" (call_expression "FUN_000183f0()" identifier (argument_list "()" ( ))) ;)) (expression_statement "iVar5 = strcmp((char *)param_1,"-A");" (assignment_expression "iVar5 = 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 (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      goto LAB_00016921;\n    }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      goto LAB_00016921;\n    }" { (if_statement "if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;" if (parenthesized_expression "((DAT_0006f0a0 & 3) != 0)" ( (binary_expression "(DAT_0006f0a0 & 3) != 0" (parenthesized_expression "(DAT_0006f0a0 & 3)" ( (binary_expression "DAT_0006f0a0 & 3" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00015d50;" goto statement_identifier ;)) (goto_statement "goto LAB_00016921;" goto statement_identifier ;) })) (expression_statement "uVar7 = 1;" (assignment_expression "uVar7 = 1" identifier = number_literal) ;) (expression_statement "iVar5 = strcmp((char *)param_1,"-a");" (assignment_expression "iVar5 = 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 (iVar5 == 0) {\nLAB_0001700b:\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\n      goto LAB_00016961;\n    }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0001700b:\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\n      goto LAB_00016961;\n    }" { (labeled_statement "LAB_0001700b:\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;" statement_identifier : (if_statement "if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;" if (parenthesized_expression "((DAT_0006f0a0 & 3) != 0)" ( (binary_expression "(DAT_0006f0a0 & 3) != 0" (parenthesized_expression "(DAT_0006f0a0 & 3)" ( (binary_expression "DAT_0006f0a0 & 3" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00015d50;" goto statement_identifier ;))) (if_statement "if (param_3 != 0) goto LAB_00015c78;" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00015c78;" goto statement_identifier ;)) (goto_statement "goto LAB_00016961;" goto statement_identifier ;) })) (labeled_statement "LAB_00016f0f:\n    iVar5 = strcmp((char *)param_1,"-X");" statement_identifier : (expression_statement "iVar5 = strcmp((char *)param_1,"-X");" (assignment_expression "iVar5 = 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 (iVar5 != 0) goto LAB_00016f97;" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00016f97;" 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_00016f38:\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;" statement_identifier : (if_statement "if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;" if (parenthesized_expression "((DAT_0006f0a0 & 3) != 0)" ( (binary_expression "(DAT_0006f0a0 & 3) != 0" (parenthesized_expression "(DAT_0006f0a0 & 3)" ( (binary_expression "DAT_0006f0a0 & 3" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00015d50;" goto statement_identifier ;))) (if_statement "if (param_3 != 0) goto LAB_00015c78;" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00015c78;" goto statement_identifier ;)) (labeled_statement "LAB_000169a1:\n    FUN_000183f0();" statement_identifier : (expression_statement "FUN_000183f0();" (call_expression "FUN_000183f0()" identifier (argument_list "()" ( ))) ;)) (expression_statement "iVar5 = strcmp((char *)param_1,"-x");" (assignment_expression "iVar5 = 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 (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\nLAB_000169e4:\n      FUN_000183f0();\n      iVar5 = strcmp((char *)param_1,"-t");\n      if (iVar5 == 0) {\n        if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n        goto LAB_00016a27;\n      }\n      uVar7 = 1;\n      iVar5 = strcmp((char *)param_1,"-T");\n      if (iVar5 == 0) goto LAB_0001770d;\nLAB_00017759:\n      iVar5 = strcmp((char *)param_1,"-N");\n      if (iVar5 != 0) goto LAB_00017727;\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_000176cd:\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\n      goto LAB_00016aa7;\n    }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\nLAB_000169e4:\n      FUN_000183f0();\n      iVar5 = strcmp((char *)param_1,"-t");\n      if (iVar5 == 0) {\n        if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n        goto LAB_00016a27;\n      }\n      uVar7 = 1;\n      iVar5 = strcmp((char *)param_1,"-T");\n      if (iVar5 == 0) goto LAB_0001770d;\nLAB_00017759:\n      iVar5 = strcmp((char *)param_1,"-N");\n      if (iVar5 != 0) goto LAB_00017727;\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_000176cd:\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\n      goto LAB_00016aa7;\n    }" { (if_statement "if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;" if (parenthesized_expression "((DAT_0006f0a0 & 3) != 0)" ( (binary_expression "(DAT_0006f0a0 & 3) != 0" (parenthesized_expression "(DAT_0006f0a0 & 3)" ( (binary_expression "DAT_0006f0a0 & 3" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00015d50;" goto statement_identifier ;)) (labeled_statement "LAB_000169e4:\n      FUN_000183f0();" statement_identifier : (expression_statement "FUN_000183f0();" (call_expression "FUN_000183f0()" identifier (argument_list "()" ( ))) ;)) (expression_statement "iVar5 = strcmp((char *)param_1,"-t");" (assignment_expression "iVar5 = 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 (iVar5 == 0) {\n        if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n        goto LAB_00016a27;\n      }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n        if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n        goto LAB_00016a27;\n      }" { (if_statement "if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;" if (parenthesized_expression "((DAT_0006f0a0 & 3) != 0)" ( (binary_expression "(DAT_0006f0a0 & 3) != 0" (parenthesized_expression "(DAT_0006f0a0 & 3)" ( (binary_expression "DAT_0006f0a0 & 3" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00015d50;" goto statement_identifier ;)) (goto_statement "goto LAB_00016a27;" goto statement_identifier ;) })) (expression_statement "uVar7 = 1;" (assignment_expression "uVar7 = 1" identifier = number_literal) ;) (expression_statement "iVar5 = strcmp((char *)param_1,"-T");" (assignment_expression "iVar5 = 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 (iVar5 == 0) goto LAB_0001770d;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001770d;" goto statement_identifier ;)) (labeled_statement "LAB_00017759:\n      iVar5 = strcmp((char *)param_1,"-N");" statement_identifier : (expression_statement "iVar5 = strcmp((char *)param_1,"-N");" (assignment_expression "iVar5 = 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 (iVar5 != 0) goto LAB_00017727;" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00017727;" 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_000176cd:\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;" statement_identifier : (if_statement "if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;" if (parenthesized_expression "((DAT_0006f0a0 & 3) != 0)" ( (binary_expression "(DAT_0006f0a0 & 3) != 0" (parenthesized_expression "(DAT_0006f0a0 & 3)" ( (binary_expression "DAT_0006f0a0 & 3" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00015d50;" goto statement_identifier ;))) (if_statement "if (param_3 != 0) goto LAB_00015c78;" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00015c78;" goto statement_identifier ;)) (goto_statement "goto LAB_00016aa7;" goto statement_identifier ;) })) (expression_statement "uVar7 = 1;" (assignment_expression "uVar7 = 1" identifier = number_literal) ;) (expression_statement "iVar5 = strcmp((char *)param_1,"-t");" (assignment_expression "iVar5 = 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 (iVar5 != 0) goto LAB_000177b1;" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000177b1;" goto statement_identifier ;)) (labeled_statement "LAB_0001707c:\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;" statement_identifier : (if_statement "if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;" if (parenthesized_expression "((DAT_0006f0a0 & 3) != 0)" ( (binary_expression "(DAT_0006f0a0 & 3) != 0" (parenthesized_expression "(DAT_0006f0a0 & 3)" ( (binary_expression "DAT_0006f0a0 & 3" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00015d50;" goto statement_identifier ;))) (if_statement "if (param_3 != 0) goto LAB_00017091;" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00017091;" goto statement_identifier ;)) (labeled_statement "LAB_00016a27:\n    FUN_000183f0();" statement_identifier : (expression_statement "FUN_000183f0();" (call_expression "FUN_000183f0()" identifier (argument_list "()" ( ))) ;)) (expression_statement "iVar5 = strcmp((char *)param_1,"-T");" (assignment_expression "iVar5 = 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 (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      goto LAB_00016a67;\n    }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      goto LAB_00016a67;\n    }" { (if_statement "if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;" if (parenthesized_expression "((DAT_0006f0a0 & 3) != 0)" ( (binary_expression "(DAT_0006f0a0 & 3) != 0" (parenthesized_expression "(DAT_0006f0a0 & 3)" ( (binary_expression "DAT_0006f0a0 & 3" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00015d50;" goto statement_identifier ;)) (goto_statement "goto LAB_00016a67;" goto statement_identifier ;) })) (expression_statement "uVar7 = 1;" (assignment_expression "uVar7 = 1" identifier = number_literal) ;) (expression_statement "iVar5 = strcmp((char *)param_1,"-N");" (assignment_expression "iVar5 = 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 (iVar5 == 0) goto LAB_000176cd;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000176cd;" goto statement_identifier ;)) (labeled_statement "LAB_00017727:\n    iVar5 = strcmp((char *)param_1,"-C");" statement_identifier : (expression_statement "iVar5 = strcmp((char *)param_1,"-C");" (assignment_expression "iVar5 = 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 (iVar5 != 0) goto LAB_00017679;" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00017679;" 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_0001762d:\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;" statement_identifier : (if_statement "if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;" if (parenthesized_expression "((DAT_0006f0a0 & 2) != 0)" ( (binary_expression "(DAT_0006f0a0 & 2) != 0" (parenthesized_expression "(DAT_0006f0a0 & 2)" ( (binary_expression "DAT_0006f0a0 & 2" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00015d50;" goto statement_identifier ;))) (if_statement "if (param_3 != 0) goto LAB_00015c78;" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00015c78;" goto statement_identifier ;)) (labeled_statement "LAB_00016ae7:\n    FUN_000183f0();" statement_identifier : (expression_statement "FUN_000183f0();" (call_expression "FUN_000183f0()" identifier (argument_list "()" ( ))) ;)) (expression_statement "iVar5 = strcmp((char *)param_1,"-1");" (assignment_expression "iVar5 = 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 (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\nLAB_00016b27:\n      FUN_000183f0();\n      iVar5 = strcmp((char *)param_1,"-2");\n      if (iVar5 == 0) {\n        if ((DAT_0006f0a0 & 2) != 0) {\nLAB_00015d50:\n          FUN_00044820();\n          return 1;\n        }\n        goto LAB_00016b67;\n      }\n    }\n    else {\n      iVar5 = strcmp((char *)param_1,"-2");\n      if (iVar5 == 0) goto LAB_000175ad;\n    }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\nLAB_00016b27:\n      FUN_000183f0();\n      iVar5 = strcmp((char *)param_1,"-2");\n      if (iVar5 == 0) {\n        if ((DAT_0006f0a0 & 2) != 0) {\nLAB_00015d50:\n          FUN_00044820();\n          return 1;\n        }\n        goto LAB_00016b67;\n      }\n    }" { (if_statement "if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;" if (parenthesized_expression "((DAT_0006f0a0 & 2) != 0)" ( (binary_expression "(DAT_0006f0a0 & 2) != 0" (parenthesized_expression "(DAT_0006f0a0 & 2)" ( (binary_expression "DAT_0006f0a0 & 2" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00015d50;" goto statement_identifier ;)) (labeled_statement "LAB_00016b27:\n      FUN_000183f0();" statement_identifier : (expression_statement "FUN_000183f0();" (call_expression "FUN_000183f0()" identifier (argument_list "()" ( ))) ;)) (expression_statement "iVar5 = strcmp((char *)param_1,"-2");" (assignment_expression "iVar5 = 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 (iVar5 == 0) {\n        if ((DAT_0006f0a0 & 2) != 0) {\nLAB_00015d50:\n          FUN_00044820();\n          return 1;\n        }\n        goto LAB_00016b67;\n      }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n        if ((DAT_0006f0a0 & 2) != 0) {\nLAB_00015d50:\n          FUN_00044820();\n          return 1;\n        }\n        goto LAB_00016b67;\n      }" { (if_statement "if ((DAT_0006f0a0 & 2) != 0) {\nLAB_00015d50:\n          FUN_00044820();\n          return 1;\n        }" if (parenthesized_expression "((DAT_0006f0a0 & 2) != 0)" ( (binary_expression "(DAT_0006f0a0 & 2) != 0" (parenthesized_expression "(DAT_0006f0a0 & 2)" ( (binary_expression "DAT_0006f0a0 & 2" identifier & number_literal) )) != number_literal) )) (compound_statement "{\nLAB_00015d50:\n          FUN_00044820();\n          return 1;\n        }" { (labeled_statement "LAB_00015d50:\n          FUN_00044820();" statement_identifier : (expression_statement "FUN_00044820();" (call_expression "FUN_00044820()" identifier (argument_list "()" ( ))) ;)) (return_statement "return 1;" return number_literal ;) })) (goto_statement "goto LAB_00016b67;" goto statement_identifier ;) })) }) (else_clause "else {\n      iVar5 = strcmp((char *)param_1,"-2");\n      if (iVar5 == 0) goto LAB_000175ad;\n    }" else (compound_statement "{\n      iVar5 = strcmp((char *)param_1,"-2");\n      if (iVar5 == 0) goto LAB_000175ad;\n    }" { (expression_statement "iVar5 = strcmp((char *)param_1,"-2");" (assignment_expression "iVar5 = 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 (iVar5 == 0) goto LAB_000175ad;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000175ad;" goto statement_identifier ;)) }))) (expression_statement "uVar7 = 1;" (assignment_expression "uVar7 = 1" identifier = number_literal) ;) }))) (expression_statement "iVar5 = strcmp((char *)param_1,"-i");" (assignment_expression "iVar5 = 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 (iVar5 == 0) {\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n    if (param_3 != 0) goto LAB_00016123;\n    FUN_00041790();\n    FUN_00018770();\n    FUN_00041820();\n    iVar5 = strcmp((char *)param_1,"-4");\n    if ((iVar5 == 0) || (iVar5 = strcmp((char *)param_1,"-ipv4"), iVar5 == 0)) goto LAB_00017485;\n    iVar5 = strcmp((char *)param_1,"-6");\n    if (iVar5 == 0) goto LAB_00016c88;\n    uVar7 = 2;\n    iVar5 = strcmp((char *)param_1,"-ipv6");\njoined_r0x000174dc:\n    if (iVar5 == 0) goto LAB_00016c88;\n  }\n  else {\n    iVar5 = strcmp((char *)param_1,"-4");\n    if ((iVar5 == 0) || (iVar5 = strcmp((char *)param_1,"-ipv4"), iVar5 == 0)) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\nLAB_00017091:\n        FUN_00015950();\n        return 1;\n      }\nLAB_00017485:\n      FUN_000183f0();\n      iVar5 = strcmp((char *)param_1,"-6");\n      if (iVar5 != 0) {\n        uVar7 = 1;\n        iVar5 = strcmp((char *)param_1,"-ipv6");\n        goto joined_r0x000174dc;\n      }\n    }\n    else {\n      iVar5 = strcmp((char *)param_1,"-6");\n      if ((iVar5 != 0) && (iVar5 = strcmp((char *)param_1,"-ipv6"), iVar5 != 0)) goto LAB_00016ca6;\n      if (param_3 < 0) {\n        return 1;\n      }\n      if (param_3 != 0) goto LAB_00017091;\n    }\nLAB_00016c88:\n    uVar7 = 1;\n    FUN_000183f0();\n  }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 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    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n    if (param_3 != 0) goto LAB_00016123;\n    FUN_00041790();\n    FUN_00018770();\n    FUN_00041820();\n    iVar5 = strcmp((char *)param_1,"-4");\n    if ((iVar5 == 0) || (iVar5 = strcmp((char *)param_1,"-ipv4"), iVar5 == 0)) goto LAB_00017485;\n    iVar5 = strcmp((char *)param_1,"-6");\n    if (iVar5 == 0) goto LAB_00016c88;\n    uVar7 = 2;\n    iVar5 = strcmp((char *)param_1,"-ipv6");\njoined_r0x000174dc:\n    if (iVar5 == 0) goto LAB_00016c88;\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 ;) })) (if_statement "if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;" if (parenthesized_expression "((DAT_0006f0a0 & 2) != 0)" ( (binary_expression "(DAT_0006f0a0 & 2) != 0" (parenthesized_expression "(DAT_0006f0a0 & 2)" ( (binary_expression "DAT_0006f0a0 & 2" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_000161c3;" goto statement_identifier ;)) (if_statement "if (param_3 != 0) goto LAB_00016123;" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00016123;" goto statement_identifier ;)) (expression_statement "FUN_00041790();" (call_expression "FUN_00041790()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00018770();" (call_expression "FUN_00018770()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00041820();" (call_expression "FUN_00041820()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar5 = strcmp((char *)param_1,"-4");" (assignment_expression "iVar5 = 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 ((iVar5 == 0) || (iVar5 = strcmp((char *)param_1,"-ipv4"), iVar5 == 0)) goto LAB_00017485;" if (parenthesized_expression "((iVar5 == 0) || (iVar5 = strcmp((char *)param_1,"-ipv4"), iVar5 == 0))" ( (binary_expression "(iVar5 == 0) || (iVar5 = strcmp((char *)param_1,"-ipv4"), iVar5 == 0)" (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar5 = strcmp((char *)param_1,"-ipv4"), iVar5 == 0)" ( (comma_expression "iVar5 = strcmp((char *)param_1,"-ipv4"), iVar5 == 0" (assignment_expression "iVar5 = 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 "iVar5 == 0" identifier == number_literal)) ))) )) (goto_statement "goto LAB_00017485;" goto statement_identifier ;)) (expression_statement "iVar5 = strcmp((char *)param_1,"-6");" (assignment_expression "iVar5 = 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 (iVar5 == 0) goto LAB_00016c88;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00016c88;" goto statement_identifier ;)) (expression_statement "uVar7 = 2;" (assignment_expression "uVar7 = 2" identifier = number_literal) ;) (expression_statement "iVar5 = strcmp((char *)param_1,"-ipv6");" (assignment_expression "iVar5 = 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 ") )))) ;) (labeled_statement "joined_r0x000174dc:\n    if (iVar5 == 0) goto LAB_00016c88;" statement_identifier : (if_statement "if (iVar5 == 0) goto LAB_00016c88;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00016c88;" goto statement_identifier ;))) }) (else_clause "else {\n    iVar5 = strcmp((char *)param_1,"-4");\n    if ((iVar5 == 0) || (iVar5 = strcmp((char *)param_1,"-ipv4"), iVar5 == 0)) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\nLAB_00017091:\n        FUN_00015950();\n        return 1;\n      }\nLAB_00017485:\n      FUN_000183f0();\n      iVar5 = strcmp((char *)param_1,"-6");\n      if (iVar5 != 0) {\n        uVar7 = 1;\n        iVar5 = strcmp((char *)param_1,"-ipv6");\n        goto joined_r0x000174dc;\n      }\n    }\n    else {\n      iVar5 = strcmp((char *)param_1,"-6");\n      if ((iVar5 != 0) && (iVar5 = strcmp((char *)param_1,"-ipv6"), iVar5 != 0)) goto LAB_00016ca6;\n      if (param_3 < 0) {\n        return 1;\n      }\n      if (param_3 != 0) goto LAB_00017091;\n    }\nLAB_00016c88:\n    uVar7 = 1;\n    FUN_000183f0();\n  }" else (compound_statement "{\n    iVar5 = strcmp((char *)param_1,"-4");\n    if ((iVar5 == 0) || (iVar5 = strcmp((char *)param_1,"-ipv4"), iVar5 == 0)) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\nLAB_00017091:\n        FUN_00015950();\n        return 1;\n      }\nLAB_00017485:\n      FUN_000183f0();\n      iVar5 = strcmp((char *)param_1,"-6");\n      if (iVar5 != 0) {\n        uVar7 = 1;\n        iVar5 = strcmp((char *)param_1,"-ipv6");\n        goto joined_r0x000174dc;\n      }\n    }\n    else {\n      iVar5 = strcmp((char *)param_1,"-6");\n      if ((iVar5 != 0) && (iVar5 = strcmp((char *)param_1,"-ipv6"), iVar5 != 0)) goto LAB_00016ca6;\n      if (param_3 < 0) {\n        return 1;\n      }\n      if (param_3 != 0) goto LAB_00017091;\n    }\nLAB_00016c88:\n    uVar7 = 1;\n    FUN_000183f0();\n  }" { (expression_statement "iVar5 = strcmp((char *)param_1,"-4");" (assignment_expression "iVar5 = 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 ((iVar5 == 0) || (iVar5 = strcmp((char *)param_1,"-ipv4"), iVar5 == 0)) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\nLAB_00017091:\n        FUN_00015950();\n        return 1;\n      }\nLAB_00017485:\n      FUN_000183f0();\n      iVar5 = strcmp((char *)param_1,"-6");\n      if (iVar5 != 0) {\n        uVar7 = 1;\n        iVar5 = strcmp((char *)param_1,"-ipv6");\n        goto joined_r0x000174dc;\n      }\n    }\n    else {\n      iVar5 = strcmp((char *)param_1,"-6");\n      if ((iVar5 != 0) && (iVar5 = strcmp((char *)param_1,"-ipv6"), iVar5 != 0)) goto LAB_00016ca6;\n      if (param_3 < 0) {\n        return 1;\n      }\n      if (param_3 != 0) goto LAB_00017091;\n    }" if (parenthesized_expression "((iVar5 == 0) || (iVar5 = strcmp((char *)param_1,"-ipv4"), iVar5 == 0))" ( (binary_expression "(iVar5 == 0) || (iVar5 = strcmp((char *)param_1,"-ipv4"), iVar5 == 0)" (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar5 = strcmp((char *)param_1,"-ipv4"), iVar5 == 0)" ( (comma_expression "iVar5 = strcmp((char *)param_1,"-ipv4"), iVar5 == 0" (assignment_expression "iVar5 = 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 "iVar5 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n      if (param_3 < 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\nLAB_00017091:\n        FUN_00015950();\n        return 1;\n      }\nLAB_00017485:\n      FUN_000183f0();\n      iVar5 = strcmp((char *)param_1,"-6");\n      if (iVar5 != 0) {\n        uVar7 = 1;\n        iVar5 = strcmp((char *)param_1,"-ipv6");\n        goto joined_r0x000174dc;\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 ;) })) (if_statement "if (param_3 != 0) {\nLAB_00017091:\n        FUN_00015950();\n        return 1;\n      }" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_00017091:\n        FUN_00015950();\n        return 1;\n      }" { (labeled_statement "LAB_00017091:\n        FUN_00015950();" statement_identifier : (expression_statement "FUN_00015950();" (call_expression "FUN_00015950()" identifier (argument_list "()" ( ))) ;)) (return_statement "return 1;" return number_literal ;) })) (labeled_statement "LAB_00017485:\n      FUN_000183f0();" statement_identifier : (expression_statement "FUN_000183f0();" (call_expression "FUN_000183f0()" identifier (argument_list "()" ( ))) ;)) (expression_statement "iVar5 = strcmp((char *)param_1,"-6");" (assignment_expression "iVar5 = 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 (iVar5 != 0) {\n        uVar7 = 1;\n        iVar5 = strcmp((char *)param_1,"-ipv6");\n        goto joined_r0x000174dc;\n      }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n        uVar7 = 1;\n        iVar5 = strcmp((char *)param_1,"-ipv6");\n        goto joined_r0x000174dc;\n      }" { (expression_statement "uVar7 = 1;" (assignment_expression "uVar7 = 1" identifier = number_literal) ;) (expression_statement "iVar5 = strcmp((char *)param_1,"-ipv6");" (assignment_expression "iVar5 = 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 ") )))) ;) (goto_statement "goto joined_r0x000174dc;" goto statement_identifier ;) })) }) (else_clause "else {\n      iVar5 = strcmp((char *)param_1,"-6");\n      if ((iVar5 != 0) && (iVar5 = strcmp((char *)param_1,"-ipv6"), iVar5 != 0)) goto LAB_00016ca6;\n      if (param_3 < 0) {\n        return 1;\n      }\n      if (param_3 != 0) goto LAB_00017091;\n    }" else (compound_statement "{\n      iVar5 = strcmp((char *)param_1,"-6");\n      if ((iVar5 != 0) && (iVar5 = strcmp((char *)param_1,"-ipv6"), iVar5 != 0)) goto LAB_00016ca6;\n      if (param_3 < 0) {\n        return 1;\n      }\n      if (param_3 != 0) goto LAB_00017091;\n    }" { (expression_statement "iVar5 = strcmp((char *)param_1,"-6");" (assignment_expression "iVar5 = 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 ((iVar5 != 0) && (iVar5 = strcmp((char *)param_1,"-ipv6"), iVar5 != 0)) goto LAB_00016ca6;" if (parenthesized_expression "((iVar5 != 0) && (iVar5 = strcmp((char *)param_1,"-ipv6"), iVar5 != 0))" ( (binary_expression "(iVar5 != 0) && (iVar5 = strcmp((char *)param_1,"-ipv6"), iVar5 != 0)" (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar5 = strcmp((char *)param_1,"-ipv6"), iVar5 != 0)" ( (comma_expression "iVar5 = strcmp((char *)param_1,"-ipv6"), iVar5 != 0" (assignment_expression "iVar5 = 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 ") )))) , (binary_expression "iVar5 != 0" identifier != number_literal)) ))) )) (goto_statement "goto LAB_00016ca6;" 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 ;) })) (if_statement "if (param_3 != 0) goto LAB_00017091;" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00017091;" goto statement_identifier ;)) }))) (labeled_statement "LAB_00016c88:\n    uVar7 = 1;" statement_identifier : (expression_statement "uVar7 = 1;" (assignment_expression "uVar7 = 1" identifier = number_literal) ;)) (expression_statement "FUN_000183f0();" (call_expression "FUN_000183f0()" identifier (argument_list "()" ( ))) ;) }))) (labeled_statement "LAB_00016ca6:\n  iVar5 = strcmp((char *)param_1,"-sercfg");" statement_identifier : (expression_statement "iVar5 = strcmp((char *)param_1,"-sercfg");" (assignment_expression "iVar5 = 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 (iVar5 == 0) {\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;\n    if (param_3 != 0) {\nLAB_00016723:\n      FUN_00015950();\n      return 2;\n    }\n    iVar5 = FUN_00017cd0();\n    pcVar8 = param_2;\n    if (iVar5 != 4) {\n      FUN_00044820();\n    }\n    for (; *pcVar8 != '\0'; pcVar8 = pcVar8 + iVar10 + iVar5) {\n      pcVar4 = strchr(pcVar8,0x2c);\n      if (pcVar4 == (char *)0x0) {\n        uVar6 = 0xffffffff;\n        iVar5 = 0;\n        pcVar4 = pcVar8;\n        do {\n          if (uVar6 == 0) break;\n          uVar6 = uVar6 - 1;\n          cVar1 = *pcVar4;\n          pcVar4 = pcVar4 + (uint)bVar17 * -2 + 1;\n        } while (cVar1 != '\0');\n        iVar10 = ~uVar6 - 1;\n      }\n      else {\n        *pcVar4 = '\0';\n        iVar5 = 1;\n        iVar10 = (int)pcVar4 - (int)pcVar8;\n      }\n      if (iVar10 == 1) {\n        switch(*pcVar8) {\n        case '1':\n        case '2':\n          FUN_000183f0();\n          break;\n        default:\n          FUN_00044820();\n          break;\n        case '5':\n        case '6':\n        case '7':\n        case '8':\n        case '9':\n          FUN_000183f0();\n          break;\n        case 'D':\n          FUN_000183f0();\n          break;\n        case 'N':\n          FUN_000183f0();\n          break;\n        case 'R':\n          FUN_000183f0();\n          break;\n        case 'X':\n          FUN_000183f0();\n          break;\n        case 'e':\n          FUN_000183f0();\n          break;\n        case 'm':\n          FUN_000183f0();\n          break;\n        case 'n':\n          FUN_000183f0();\n          break;\n        case 'o':\n          FUN_000183f0();\n          break;\n        case 's':\n          FUN_000183f0();\n        }\n      }\n      else if ((iVar10 == 3) && (iVar2 = strncmp(pcVar8,"1.5",3), iVar2 == 0)) {\n        FUN_000183f0();\n      }\n      else {\n        lVar3 = strtol(pcVar8,(char **)0x0,10);\n        if (lVar3 == 0) {\n          FUN_00044820();\n        }\n        else {\n          FUN_000183f0();\n        }\n      }\n    }\n    iVar5 = strcmp((char *)param_1,"-sessionlog");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 1) != 0) goto LAB_000161c3;\n      goto LAB_0001722b;\n    }\n    iVar5 = strcmp((char *)param_1,"-sshlog");\n    if (iVar5 != 0) goto LAB_000173ff;\nLAB_000173c4:\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n    if (param_3 != 0) {\nLAB_00016123:\n      FUN_00015950();\n      return 2;\n    }\n  }\n  else {\n    iVar5 = strcmp((char *)param_1,"-sessionlog");\n    if (iVar5 != 0) {\n      iVar5 = strcmp((char *)param_1,"-sshlog");\n      if (iVar5 != 0) goto LAB_00017404;\nLAB_000173b1:\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      goto LAB_000173c4;\n    }\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    if ((DAT_0006f0a0 & 1) != 0) goto LAB_000161c3;\n    if (param_3 != 0) goto LAB_00016123;\nLAB_0001722b:\n    FUN_00041790();\n    FUN_00018770();\n    FUN_000183f0();\n    FUN_00041820();\n    iVar5 = strcmp((char *)param_1,"-sshlog");\n    if (iVar5 != 0) {\nLAB_000173ff:\n      uVar7 = 2;\nLAB_00017404:\n      iVar5 = strcmp((char *)param_1,"-sshrawlog");\n      if (iVar5 != 0) {\n        iVar5 = strcmp((char *)param_1,"-proxycmd");\n        if (iVar5 != 0) {\n          return uVar7;\n        }\n        if (param_2 == (char *)0x0) {\n          return 0xfffffffe;\n        }\n        if (param_3 < 0) {\n          return 2;\n        }\n        if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n        if (param_3 != 0) goto LAB_00016123;\n        goto LAB_00017304;\n      }\n      goto LAB_000173b1;\n    }\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n  }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 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    if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;\n    if (param_3 != 0) {\nLAB_00016723:\n      FUN_00015950();\n      return 2;\n    }\n    iVar5 = FUN_00017cd0();\n    pcVar8 = param_2;\n    if (iVar5 != 4) {\n      FUN_00044820();\n    }\n    for (; *pcVar8 != '\0'; pcVar8 = pcVar8 + iVar10 + iVar5) {\n      pcVar4 = strchr(pcVar8,0x2c);\n      if (pcVar4 == (char *)0x0) {\n        uVar6 = 0xffffffff;\n        iVar5 = 0;\n        pcVar4 = pcVar8;\n        do {\n          if (uVar6 == 0) break;\n          uVar6 = uVar6 - 1;\n          cVar1 = *pcVar4;\n          pcVar4 = pcVar4 + (uint)bVar17 * -2 + 1;\n        } while (cVar1 != '\0');\n        iVar10 = ~uVar6 - 1;\n      }\n      else {\n        *pcVar4 = '\0';\n        iVar5 = 1;\n        iVar10 = (int)pcVar4 - (int)pcVar8;\n      }\n      if (iVar10 == 1) {\n        switch(*pcVar8) {\n        case '1':\n        case '2':\n          FUN_000183f0();\n          break;\n        default:\n          FUN_00044820();\n          break;\n        case '5':\n        case '6':\n        case '7':\n        case '8':\n        case '9':\n          FUN_000183f0();\n          break;\n        case 'D':\n          FUN_000183f0();\n          break;\n        case 'N':\n          FUN_000183f0();\n          break;\n        case 'R':\n          FUN_000183f0();\n          break;\n        case 'X':\n          FUN_000183f0();\n          break;\n        case 'e':\n          FUN_000183f0();\n          break;\n        case 'm':\n          FUN_000183f0();\n          break;\n        case 'n':\n          FUN_000183f0();\n          break;\n        case 'o':\n          FUN_000183f0();\n          break;\n        case 's':\n          FUN_000183f0();\n        }\n      }\n      else if ((iVar10 == 3) && (iVar2 = strncmp(pcVar8,"1.5",3), iVar2 == 0)) {\n        FUN_000183f0();\n      }\n      else {\n        lVar3 = strtol(pcVar8,(char **)0x0,10);\n        if (lVar3 == 0) {\n          FUN_00044820();\n        }\n        else {\n          FUN_000183f0();\n        }\n      }\n    }\n    iVar5 = strcmp((char *)param_1,"-sessionlog");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 1) != 0) goto LAB_000161c3;\n      goto LAB_0001722b;\n    }\n    iVar5 = strcmp((char *)param_1,"-sshlog");\n    if (iVar5 != 0) goto LAB_000173ff;\nLAB_000173c4:\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n    if (param_3 != 0) {\nLAB_00016123:\n      FUN_00015950();\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 ;) })) (if_statement "if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;" if (parenthesized_expression "((DAT_0006f0a0 & 3) != 0)" ( (binary_expression "(DAT_0006f0a0 & 3) != 0" (parenthesized_expression "(DAT_0006f0a0 & 3)" ( (binary_expression "DAT_0006f0a0 & 3" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_000161c3;" goto statement_identifier ;)) (if_statement "if (param_3 != 0) {\nLAB_00016723:\n      FUN_00015950();\n      return 2;\n    }" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_00016723:\n      FUN_00015950();\n      return 2;\n    }" { (labeled_statement "LAB_00016723:\n      FUN_00015950();" statement_identifier : (expression_statement "FUN_00015950();" (call_expression "FUN_00015950()" identifier (argument_list "()" ( ))) ;)) (return_statement "return 2;" return number_literal ;) })) (expression_statement "iVar5 = FUN_00017cd0();" (assignment_expression "iVar5 = FUN_00017cd0()" identifier = (call_expression "FUN_00017cd0()" identifier (argument_list "()" ( )))) ;) (expression_statement "pcVar8 = param_2;" (assignment_expression "pcVar8 = param_2" identifier = identifier) ;) (if_statement "if (iVar5 != 4) {\n      FUN_00044820();\n    }" if (parenthesized_expression "(iVar5 != 4)" ( (binary_expression "iVar5 != 4" identifier != number_literal) )) (compound_statement "{\n      FUN_00044820();\n    }" { (expression_statement "FUN_00044820();" (call_expression "FUN_00044820()" identifier (argument_list "()" ( ))) ;) })) (for_statement "for (; *pcVar8 != '\0'; pcVar8 = pcVar8 + iVar10 + iVar5) {\n      pcVar4 = strchr(pcVar8,0x2c);\n      if (pcVar4 == (char *)0x0) {\n        uVar6 = 0xffffffff;\n        iVar5 = 0;\n        pcVar4 = pcVar8;\n        do {\n          if (uVar6 == 0) break;\n          uVar6 = uVar6 - 1;\n          cVar1 = *pcVar4;\n          pcVar4 = pcVar4 + (uint)bVar17 * -2 + 1;\n        } while (cVar1 != '\0');\n        iVar10 = ~uVar6 - 1;\n      }\n      else {\n        *pcVar4 = '\0';\n        iVar5 = 1;\n        iVar10 = (int)pcVar4 - (int)pcVar8;\n      }\n      if (iVar10 == 1) {\n        switch(*pcVar8) {\n        case '1':\n        case '2':\n          FUN_000183f0();\n          break;\n        default:\n          FUN_00044820();\n          break;\n        case '5':\n        case '6':\n        case '7':\n        case '8':\n        case '9':\n          FUN_000183f0();\n          break;\n        case 'D':\n          FUN_000183f0();\n          break;\n        case 'N':\n          FUN_000183f0();\n          break;\n        case 'R':\n          FUN_000183f0();\n          break;\n        case 'X':\n          FUN_000183f0();\n          break;\n        case 'e':\n          FUN_000183f0();\n          break;\n        case 'm':\n          FUN_000183f0();\n          break;\n        case 'n':\n          FUN_000183f0();\n          break;\n        case 'o':\n          FUN_000183f0();\n          break;\n        case 's':\n          FUN_000183f0();\n        }\n      }\n      else if ((iVar10 == 3) && (iVar2 = strncmp(pcVar8,"1.5",3), iVar2 == 0)) {\n        FUN_000183f0();\n      }\n      else {\n        lVar3 = strtol(pcVar8,(char **)0x0,10);\n        if (lVar3 == 0) {\n          FUN_00044820();\n        }\n        else {\n          FUN_000183f0();\n        }\n      }\n    }" for ( ; (binary_expression "*pcVar8 != '\0'" (pointer_expression "*pcVar8" * identifier) != (char_literal "'\0'" ' escape_sequence ')) ; (assignment_expression "pcVar8 = pcVar8 + iVar10 + iVar5" identifier = (binary_expression "pcVar8 + iVar10 + iVar5" (binary_expression "pcVar8 + iVar10" identifier + identifier) + identifier)) ) (compound_statement "{\n      pcVar4 = strchr(pcVar8,0x2c);\n      if (pcVar4 == (char *)0x0) {\n        uVar6 = 0xffffffff;\n        iVar5 = 0;\n        pcVar4 = pcVar8;\n        do {\n          if (uVar6 == 0) break;\n          uVar6 = uVar6 - 1;\n          cVar1 = *pcVar4;\n          pcVar4 = pcVar4 + (uint)bVar17 * -2 + 1;\n        } while (cVar1 != '\0');\n        iVar10 = ~uVar6 - 1;\n      }\n      else {\n        *pcVar4 = '\0';\n        iVar5 = 1;\n        iVar10 = (int)pcVar4 - (int)pcVar8;\n      }\n      if (iVar10 == 1) {\n        switch(*pcVar8) {\n        case '1':\n        case '2':\n          FUN_000183f0();\n          break;\n        default:\n          FUN_00044820();\n          break;\n        case '5':\n        case '6':\n        case '7':\n        case '8':\n        case '9':\n          FUN_000183f0();\n          break;\n        case 'D':\n          FUN_000183f0();\n          break;\n        case 'N':\n          FUN_000183f0();\n          break;\n        case 'R':\n          FUN_000183f0();\n          break;\n        case 'X':\n          FUN_000183f0();\n          break;\n        case 'e':\n          FUN_000183f0();\n          break;\n        case 'm':\n          FUN_000183f0();\n          break;\n        case 'n':\n          FUN_000183f0();\n          break;\n        case 'o':\n          FUN_000183f0();\n          break;\n        case 's':\n          FUN_000183f0();\n        }\n      }\n      else if ((iVar10 == 3) && (iVar2 = strncmp(pcVar8,"1.5",3), iVar2 == 0)) {\n        FUN_000183f0();\n      }\n      else {\n        lVar3 = strtol(pcVar8,(char **)0x0,10);\n        if (lVar3 == 0) {\n          FUN_00044820();\n        }\n        else {\n          FUN_000183f0();\n        }\n      }\n    }" { (expression_statement "pcVar4 = strchr(pcVar8,0x2c);" (assignment_expression "pcVar4 = strchr(pcVar8,0x2c)" identifier = (call_expression "strchr(pcVar8,0x2c)" identifier (argument_list "(pcVar8,0x2c)" ( identifier , number_literal )))) ;) (if_statement "if (pcVar4 == (char *)0x0) {\n        uVar6 = 0xffffffff;\n        iVar5 = 0;\n        pcVar4 = pcVar8;\n        do {\n          if (uVar6 == 0) break;\n          uVar6 = uVar6 - 1;\n          cVar1 = *pcVar4;\n          pcVar4 = pcVar4 + (uint)bVar17 * -2 + 1;\n        } while (cVar1 != '\0');\n        iVar10 = ~uVar6 - 1;\n      }\n      else {\n        *pcVar4 = '\0';\n        iVar5 = 1;\n        iVar10 = (int)pcVar4 - (int)pcVar8;\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        uVar6 = 0xffffffff;\n        iVar5 = 0;\n        pcVar4 = pcVar8;\n        do {\n          if (uVar6 == 0) break;\n          uVar6 = uVar6 - 1;\n          cVar1 = *pcVar4;\n          pcVar4 = pcVar4 + (uint)bVar17 * -2 + 1;\n        } while (cVar1 != '\0');\n        iVar10 = ~uVar6 - 1;\n      }" { (expression_statement "uVar6 = 0xffffffff;" (assignment_expression "uVar6 = 0xffffffff" identifier = number_literal) ;) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (expression_statement "pcVar4 = pcVar8;" (assignment_expression "pcVar4 = pcVar8" identifier = identifier) ;) (do_statement "do {\n          if (uVar6 == 0) break;\n          uVar6 = uVar6 - 1;\n          cVar1 = *pcVar4;\n          pcVar4 = pcVar4 + (uint)bVar17 * -2 + 1;\n        } while (cVar1 != '\0');" do (compound_statement "{\n          if (uVar6 == 0) break;\n          uVar6 = uVar6 - 1;\n          cVar1 = *pcVar4;\n          pcVar4 = pcVar4 + (uint)bVar17 * -2 + 1;\n        }" { (if_statement "if (uVar6 == 0) break;" if (parenthesized_expression "(uVar6 == 0)" ( (binary_expression "uVar6 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar6 = uVar6 - 1;" (assignment_expression "uVar6 = uVar6 - 1" identifier = (binary_expression "uVar6 - 1" identifier - number_literal)) ;) (expression_statement "cVar1 = *pcVar4;" (assignment_expression "cVar1 = *pcVar4" identifier = (pointer_expression "*pcVar4" * identifier)) ;) (expression_statement "pcVar4 = pcVar4 + (uint)bVar17 * -2 + 1;" (assignment_expression "pcVar4 = pcVar4 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pcVar4 + (uint)bVar17 * -2 + 1" (binary_expression "pcVar4 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar1 != '\0')" ( (binary_expression "cVar1 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "iVar10 = ~uVar6 - 1;" (assignment_expression "iVar10 = ~uVar6 - 1" identifier = (binary_expression "~uVar6 - 1" (unary_expression "~uVar6" ~ identifier) - number_literal)) ;) }) (else_clause "else {\n        *pcVar4 = '\0';\n        iVar5 = 1;\n        iVar10 = (int)pcVar4 - (int)pcVar8;\n      }" else (compound_statement "{\n        *pcVar4 = '\0';\n        iVar5 = 1;\n        iVar10 = (int)pcVar4 - (int)pcVar8;\n      }" { (expression_statement "*pcVar4 = '\0';" (assignment_expression "*pcVar4 = '\0'" (pointer_expression "*pcVar4" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "iVar5 = 1;" (assignment_expression "iVar5 = 1" identifier = number_literal) ;) (expression_statement "iVar10 = (int)pcVar4 - (int)pcVar8;" (assignment_expression "iVar10 = (int)pcVar4 - (int)pcVar8" identifier = (binary_expression "(int)pcVar4 - (int)pcVar8" (cast_expression "(int)pcVar4" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pcVar8" ( (type_descriptor "int" primitive_type) ) identifier))) ;) }))) (if_statement "if (iVar10 == 1) {\n        switch(*pcVar8) {\n        case '1':\n        case '2':\n          FUN_000183f0();\n          break;\n        default:\n          FUN_00044820();\n          break;\n        case '5':\n        case '6':\n        case '7':\n        case '8':\n        case '9':\n          FUN_000183f0();\n          break;\n        case 'D':\n          FUN_000183f0();\n          break;\n        case 'N':\n          FUN_000183f0();\n          break;\n        case 'R':\n          FUN_000183f0();\n          break;\n        case 'X':\n          FUN_000183f0();\n          break;\n        case 'e':\n          FUN_000183f0();\n          break;\n        case 'm':\n          FUN_000183f0();\n          break;\n        case 'n':\n          FUN_000183f0();\n          break;\n        case 'o':\n          FUN_000183f0();\n          break;\n        case 's':\n          FUN_000183f0();\n        }\n      }\n      else if ((iVar10 == 3) && (iVar2 = strncmp(pcVar8,"1.5",3), iVar2 == 0)) {\n        FUN_000183f0();\n      }\n      else {\n        lVar3 = strtol(pcVar8,(char **)0x0,10);\n        if (lVar3 == 0) {\n          FUN_00044820();\n        }\n        else {\n          FUN_000183f0();\n        }\n      }" if (parenthesized_expression "(iVar10 == 1)" ( (binary_expression "iVar10 == 1" identifier == number_literal) )) (compound_statement "{\n        switch(*pcVar8) {\n        case '1':\n        case '2':\n          FUN_000183f0();\n          break;\n        default:\n          FUN_00044820();\n          break;\n        case '5':\n        case '6':\n        case '7':\n        case '8':\n        case '9':\n          FUN_000183f0();\n          break;\n        case 'D':\n          FUN_000183f0();\n          break;\n        case 'N':\n          FUN_000183f0();\n          break;\n        case 'R':\n          FUN_000183f0();\n          break;\n        case 'X':\n          FUN_000183f0();\n          break;\n        case 'e':\n          FUN_000183f0();\n          break;\n        case 'm':\n          FUN_000183f0();\n          break;\n        case 'n':\n          FUN_000183f0();\n          break;\n        case 'o':\n          FUN_000183f0();\n          break;\n        case 's':\n          FUN_000183f0();\n        }\n      }" { (switch_statement "switch(*pcVar8) {\n        case '1':\n        case '2':\n          FUN_000183f0();\n          break;\n        default:\n          FUN_00044820();\n          break;\n        case '5':\n        case '6':\n        case '7':\n        case '8':\n        case '9':\n          FUN_000183f0();\n          break;\n        case 'D':\n          FUN_000183f0();\n          break;\n        case 'N':\n          FUN_000183f0();\n          break;\n        case 'R':\n          FUN_000183f0();\n          break;\n        case 'X':\n          FUN_000183f0();\n          break;\n        case 'e':\n          FUN_000183f0();\n          break;\n        case 'm':\n          FUN_000183f0();\n          break;\n        case 'n':\n          FUN_000183f0();\n          break;\n        case 'o':\n          FUN_000183f0();\n          break;\n        case 's':\n          FUN_000183f0();\n        }" switch (parenthesized_expression "(*pcVar8)" ( (pointer_expression "*pcVar8" * identifier) )) (compound_statement "{\n        case '1':\n        case '2':\n          FUN_000183f0();\n          break;\n        default:\n          FUN_00044820();\n          break;\n        case '5':\n        case '6':\n        case '7':\n        case '8':\n        case '9':\n          FUN_000183f0();\n          break;\n        case 'D':\n          FUN_000183f0();\n          break;\n        case 'N':\n          FUN_000183f0();\n          break;\n        case 'R':\n          FUN_000183f0();\n          break;\n        case 'X':\n          FUN_000183f0();\n          break;\n        case 'e':\n          FUN_000183f0();\n          break;\n        case 'm':\n          FUN_000183f0();\n          break;\n        case 'n':\n          FUN_000183f0();\n          break;\n        case 'o':\n          FUN_000183f0();\n          break;\n        case 's':\n          FUN_000183f0();\n        }" { (case_statement "case '1':" case (char_literal "'1'" ' character ') :) (case_statement "case '2':\n          FUN_000183f0();\n          break;" case (char_literal "'2'" ' character ') : (expression_statement "FUN_000183f0();" (call_expression "FUN_000183f0()" identifier (argument_list "()" ( ))) ;) (break_statement "break;" break ;)) (case_statement "default:\n          FUN_00044820();\n          break;" default : (expression_statement "FUN_00044820();" (call_expression "FUN_00044820()" identifier (argument_list "()" ( ))) ;) (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_000183f0();\n          break;" case (char_literal "'9'" ' character ') : (expression_statement "FUN_000183f0();" (call_expression "FUN_000183f0()" identifier (argument_list "()" ( ))) ;) (break_statement "break;" break ;)) (case_statement "case 'D':\n          FUN_000183f0();\n          break;" case (char_literal "'D'" ' character ') : (expression_statement "FUN_000183f0();" (call_expression "FUN_000183f0()" identifier (argument_list "()" ( ))) ;) (break_statement "break;" break ;)) (case_statement "case 'N':\n          FUN_000183f0();\n          break;" case (char_literal "'N'" ' character ') : (expression_statement "FUN_000183f0();" (call_expression "FUN_000183f0()" identifier (argument_list "()" ( ))) ;) (break_statement "break;" break ;)) (case_statement "case 'R':\n          FUN_000183f0();\n          break;" case (char_literal "'R'" ' character ') : (expression_statement "FUN_000183f0();" (call_expression "FUN_000183f0()" identifier (argument_list "()" ( ))) ;) (break_statement "break;" break ;)) (case_statement "case 'X':\n          FUN_000183f0();\n          break;" case (char_literal "'X'" ' character ') : (expression_statement "FUN_000183f0();" (call_expression "FUN_000183f0()" identifier (argument_list "()" ( ))) ;) (break_statement "break;" break ;)) (case_statement "case 'e':\n          FUN_000183f0();\n          break;" case (char_literal "'e'" ' character ') : (expression_statement "FUN_000183f0();" (call_expression "FUN_000183f0()" identifier (argument_list "()" ( ))) ;) (break_statement "break;" break ;)) (case_statement "case 'm':\n          FUN_000183f0();\n          break;" case (char_literal "'m'" ' character ') : (expression_statement "FUN_000183f0();" (call_expression "FUN_000183f0()" identifier (argument_list "()" ( ))) ;) (break_statement "break;" break ;)) (case_statement "case 'n':\n          FUN_000183f0();\n          break;" case (char_literal "'n'" ' character ') : (expression_statement "FUN_000183f0();" (call_expression "FUN_000183f0()" identifier (argument_list "()" ( ))) ;) (break_statement "break;" break ;)) (case_statement "case 'o':\n          FUN_000183f0();\n          break;" case (char_literal "'o'" ' character ') : (expression_statement "FUN_000183f0();" (call_expression "FUN_000183f0()" identifier (argument_list "()" ( ))) ;) (break_statement "break;" break ;)) (case_statement "case 's':\n          FUN_000183f0();" case (char_literal "'s'" ' character ') : (expression_statement "FUN_000183f0();" (call_expression "FUN_000183f0()" identifier (argument_list "()" ( ))) ;)) })) }) (else_clause "else if ((iVar10 == 3) && (iVar2 = strncmp(pcVar8,"1.5",3), iVar2 == 0)) {\n        FUN_000183f0();\n      }\n      else {\n        lVar3 = strtol(pcVar8,(char **)0x0,10);\n        if (lVar3 == 0) {\n          FUN_00044820();\n        }\n        else {\n          FUN_000183f0();\n        }\n      }" else (if_statement "if ((iVar10 == 3) && (iVar2 = strncmp(pcVar8,"1.5",3), iVar2 == 0)) {\n        FUN_000183f0();\n      }\n      else {\n        lVar3 = strtol(pcVar8,(char **)0x0,10);\n        if (lVar3 == 0) {\n          FUN_00044820();\n        }\n        else {\n          FUN_000183f0();\n        }\n      }" if (parenthesized_expression "((iVar10 == 3) && (iVar2 = strncmp(pcVar8,"1.5",3), iVar2 == 0))" ( (binary_expression "(iVar10 == 3) && (iVar2 = strncmp(pcVar8,"1.5",3), iVar2 == 0)" (parenthesized_expression "(iVar10 == 3)" ( (binary_expression "iVar10 == 3" identifier == number_literal) )) && (parenthesized_expression "(iVar2 = strncmp(pcVar8,"1.5",3), iVar2 == 0)" ( (comma_expression "iVar2 = strncmp(pcVar8,"1.5",3), iVar2 == 0" (assignment_expression "iVar2 = strncmp(pcVar8,"1.5",3)" identifier = (call_expression "strncmp(pcVar8,"1.5",3)" identifier (argument_list "(pcVar8,"1.5",3)" ( identifier , (string_literal ""1.5"" " string_content ") , number_literal )))) , (binary_expression "iVar2 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n        FUN_000183f0();\n      }" { (expression_statement "FUN_000183f0();" (call_expression "FUN_000183f0()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n        lVar3 = strtol(pcVar8,(char **)0x0,10);\n        if (lVar3 == 0) {\n          FUN_00044820();\n        }\n        else {\n          FUN_000183f0();\n        }\n      }" else (compound_statement "{\n        lVar3 = strtol(pcVar8,(char **)0x0,10);\n        if (lVar3 == 0) {\n          FUN_00044820();\n        }\n        else {\n          FUN_000183f0();\n        }\n      }" { (expression_statement "lVar3 = strtol(pcVar8,(char **)0x0,10);" (assignment_expression "lVar3 = strtol(pcVar8,(char **)0x0,10)" identifier = (call_expression "strtol(pcVar8,(char **)0x0,10)" identifier (argument_list "(pcVar8,(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 (lVar3 == 0) {\n          FUN_00044820();\n        }\n        else {\n          FUN_000183f0();\n        }" if (parenthesized_expression "(lVar3 == 0)" ( (binary_expression "lVar3 == 0" identifier == number_literal) )) (compound_statement "{\n          FUN_00044820();\n        }" { (expression_statement "FUN_00044820();" (call_expression "FUN_00044820()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n          FUN_000183f0();\n        }" else (compound_statement "{\n          FUN_000183f0();\n        }" { (expression_statement "FUN_000183f0();" (call_expression "FUN_000183f0()" identifier (argument_list "()" ( ))) ;) }))) }))))) })) (expression_statement "iVar5 = strcmp((char *)param_1,"-sessionlog");" (assignment_expression "iVar5 = 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 (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 1) != 0) goto LAB_000161c3;\n      goto LAB_0001722b;\n    }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n      if ((DAT_0006f0a0 & 1) != 0) goto LAB_000161c3;\n      goto LAB_0001722b;\n    }" { (if_statement "if ((DAT_0006f0a0 & 1) != 0) goto LAB_000161c3;" if (parenthesized_expression "((DAT_0006f0a0 & 1) != 0)" ( (binary_expression "(DAT_0006f0a0 & 1) != 0" (parenthesized_expression "(DAT_0006f0a0 & 1)" ( (binary_expression "DAT_0006f0a0 & 1" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_000161c3;" goto statement_identifier ;)) (goto_statement "goto LAB_0001722b;" goto statement_identifier ;) })) (expression_statement "iVar5 = strcmp((char *)param_1,"-sshlog");" (assignment_expression "iVar5 = 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 (iVar5 != 0) goto LAB_000173ff;" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000173ff;" goto statement_identifier ;)) (labeled_statement "LAB_000173c4:\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;" statement_identifier : (if_statement "if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;" if (parenthesized_expression "((DAT_0006f0a0 & 2) != 0)" ( (binary_expression "(DAT_0006f0a0 & 2) != 0" (parenthesized_expression "(DAT_0006f0a0 & 2)" ( (binary_expression "DAT_0006f0a0 & 2" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_000161c3;" goto statement_identifier ;))) (if_statement "if (param_3 != 0) {\nLAB_00016123:\n      FUN_00015950();\n      return 2;\n    }" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_00016123:\n      FUN_00015950();\n      return 2;\n    }" { (labeled_statement "LAB_00016123:\n      FUN_00015950();" statement_identifier : (expression_statement "FUN_00015950();" (call_expression "FUN_00015950()" identifier (argument_list "()" ( ))) ;)) (return_statement "return 2;" return number_literal ;) })) }) (else_clause "else {\n    iVar5 = strcmp((char *)param_1,"-sessionlog");\n    if (iVar5 != 0) {\n      iVar5 = strcmp((char *)param_1,"-sshlog");\n      if (iVar5 != 0) goto LAB_00017404;\nLAB_000173b1:\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      goto LAB_000173c4;\n    }\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    if ((DAT_0006f0a0 & 1) != 0) goto LAB_000161c3;\n    if (param_3 != 0) goto LAB_00016123;\nLAB_0001722b:\n    FUN_00041790();\n    FUN_00018770();\n    FUN_000183f0();\n    FUN_00041820();\n    iVar5 = strcmp((char *)param_1,"-sshlog");\n    if (iVar5 != 0) {\nLAB_000173ff:\n      uVar7 = 2;\nLAB_00017404:\n      iVar5 = strcmp((char *)param_1,"-sshrawlog");\n      if (iVar5 != 0) {\n        iVar5 = strcmp((char *)param_1,"-proxycmd");\n        if (iVar5 != 0) {\n          return uVar7;\n        }\n        if (param_2 == (char *)0x0) {\n          return 0xfffffffe;\n        }\n        if (param_3 < 0) {\n          return 2;\n        }\n        if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n        if (param_3 != 0) goto LAB_00016123;\n        goto LAB_00017304;\n      }\n      goto LAB_000173b1;\n    }\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n  }" else (compound_statement "{\n    iVar5 = strcmp((char *)param_1,"-sessionlog");\n    if (iVar5 != 0) {\n      iVar5 = strcmp((char *)param_1,"-sshlog");\n      if (iVar5 != 0) goto LAB_00017404;\nLAB_000173b1:\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      goto LAB_000173c4;\n    }\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    if ((DAT_0006f0a0 & 1) != 0) goto LAB_000161c3;\n    if (param_3 != 0) goto LAB_00016123;\nLAB_0001722b:\n    FUN_00041790();\n    FUN_00018770();\n    FUN_000183f0();\n    FUN_00041820();\n    iVar5 = strcmp((char *)param_1,"-sshlog");\n    if (iVar5 != 0) {\nLAB_000173ff:\n      uVar7 = 2;\nLAB_00017404:\n      iVar5 = strcmp((char *)param_1,"-sshrawlog");\n      if (iVar5 != 0) {\n        iVar5 = strcmp((char *)param_1,"-proxycmd");\n        if (iVar5 != 0) {\n          return uVar7;\n        }\n        if (param_2 == (char *)0x0) {\n          return 0xfffffffe;\n        }\n        if (param_3 < 0) {\n          return 2;\n        }\n        if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n        if (param_3 != 0) goto LAB_00016123;\n        goto LAB_00017304;\n      }\n      goto LAB_000173b1;\n    }\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n  }" { (expression_statement "iVar5 = strcmp((char *)param_1,"-sessionlog");" (assignment_expression "iVar5 = 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 (iVar5 != 0) {\n      iVar5 = strcmp((char *)param_1,"-sshlog");\n      if (iVar5 != 0) goto LAB_00017404;\nLAB_000173b1:\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      goto LAB_000173c4;\n    }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar5 = strcmp((char *)param_1,"-sshlog");\n      if (iVar5 != 0) goto LAB_00017404;\nLAB_000173b1:\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      goto LAB_000173c4;\n    }" { (expression_statement "iVar5 = strcmp((char *)param_1,"-sshlog");" (assignment_expression "iVar5 = 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 (iVar5 != 0) goto LAB_00017404;" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00017404;" goto statement_identifier ;)) (labeled_statement "LAB_000173b1:\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 ;) })) (goto_statement "goto LAB_000173c4;" 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 ;) })) (if_statement "if ((DAT_0006f0a0 & 1) != 0) goto LAB_000161c3;" if (parenthesized_expression "((DAT_0006f0a0 & 1) != 0)" ( (binary_expression "(DAT_0006f0a0 & 1) != 0" (parenthesized_expression "(DAT_0006f0a0 & 1)" ( (binary_expression "DAT_0006f0a0 & 1" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_000161c3;" goto statement_identifier ;)) (if_statement "if (param_3 != 0) goto LAB_00016123;" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00016123;" goto statement_identifier ;)) (labeled_statement "LAB_0001722b:\n    FUN_00041790();" statement_identifier : (expression_statement "FUN_00041790();" (call_expression "FUN_00041790()" identifier (argument_list "()" ( ))) ;)) (expression_statement "FUN_00018770();" (call_expression "FUN_00018770()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_000183f0();" (call_expression "FUN_000183f0()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00041820();" (call_expression "FUN_00041820()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar5 = strcmp((char *)param_1,"-sshlog");" (assignment_expression "iVar5 = 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 (iVar5 != 0) {\nLAB_000173ff:\n      uVar7 = 2;\nLAB_00017404:\n      iVar5 = strcmp((char *)param_1,"-sshrawlog");\n      if (iVar5 != 0) {\n        iVar5 = strcmp((char *)param_1,"-proxycmd");\n        if (iVar5 != 0) {\n          return uVar7;\n        }\n        if (param_2 == (char *)0x0) {\n          return 0xfffffffe;\n        }\n        if (param_3 < 0) {\n          return 2;\n        }\n        if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n        if (param_3 != 0) goto LAB_00016123;\n        goto LAB_00017304;\n      }\n      goto LAB_000173b1;\n    }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_000173ff:\n      uVar7 = 2;\nLAB_00017404:\n      iVar5 = strcmp((char *)param_1,"-sshrawlog");\n      if (iVar5 != 0) {\n        iVar5 = strcmp((char *)param_1,"-proxycmd");\n        if (iVar5 != 0) {\n          return uVar7;\n        }\n        if (param_2 == (char *)0x0) {\n          return 0xfffffffe;\n        }\n        if (param_3 < 0) {\n          return 2;\n        }\n        if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n        if (param_3 != 0) goto LAB_00016123;\n        goto LAB_00017304;\n      }\n      goto LAB_000173b1;\n    }" { (labeled_statement "LAB_000173ff:\n      uVar7 = 2;" statement_identifier : (expression_statement "uVar7 = 2;" (assignment_expression "uVar7 = 2" identifier = number_literal) ;)) (labeled_statement "LAB_00017404:\n      iVar5 = strcmp((char *)param_1,"-sshrawlog");" statement_identifier : (expression_statement "iVar5 = strcmp((char *)param_1,"-sshrawlog");" (assignment_expression "iVar5 = 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 (iVar5 != 0) {\n        iVar5 = strcmp((char *)param_1,"-proxycmd");\n        if (iVar5 != 0) {\n          return uVar7;\n        }\n        if (param_2 == (char *)0x0) {\n          return 0xfffffffe;\n        }\n        if (param_3 < 0) {\n          return 2;\n        }\n        if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n        if (param_3 != 0) goto LAB_00016123;\n        goto LAB_00017304;\n      }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n        iVar5 = strcmp((char *)param_1,"-proxycmd");\n        if (iVar5 != 0) {\n          return uVar7;\n        }\n        if (param_2 == (char *)0x0) {\n          return 0xfffffffe;\n        }\n        if (param_3 < 0) {\n          return 2;\n        }\n        if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n        if (param_3 != 0) goto LAB_00016123;\n        goto LAB_00017304;\n      }" { (expression_statement "iVar5 = strcmp((char *)param_1,"-proxycmd");" (assignment_expression "iVar5 = 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 (iVar5 != 0) {\n          return uVar7;\n        }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n          return uVar7;\n        }" { (return_statement "return uVar7;" 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 ;) })) (if_statement "if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;" if (parenthesized_expression "((DAT_0006f0a0 & 2) != 0)" ( (binary_expression "(DAT_0006f0a0 & 2) != 0" (parenthesized_expression "(DAT_0006f0a0 & 2)" ( (binary_expression "DAT_0006f0a0 & 2" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_000161c3;" goto statement_identifier ;)) (if_statement "if (param_3 != 0) goto LAB_00016123;" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00016123;" goto statement_identifier ;)) (goto_statement "goto LAB_00017304;" goto statement_identifier ;) })) (goto_statement "goto LAB_000173b1;" goto statement_identifier ;) })) (if_statement "if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;" if (parenthesized_expression "((DAT_0006f0a0 & 2) != 0)" ( (binary_expression "(DAT_0006f0a0 & 2) != 0" (parenthesized_expression "(DAT_0006f0a0 & 2)" ( (binary_expression "DAT_0006f0a0 & 2" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_000161c3;" goto statement_identifier ;)) }))) (expression_statement "FUN_00041790();" (call_expression "FUN_00041790()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00018770();" (call_expression "FUN_00018770()" identifier (argument_list "()" ( ))) ;) (expression_statement "strcmp((char *)param_1,"-sshlog");" (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_000183f0();" (call_expression "FUN_000183f0()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00041820();" (call_expression "FUN_00041820()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar5 = strcmp((char *)param_1,"-proxycmd");" (assignment_expression "iVar5 = 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 (iVar5 != 0) {\n    return 2;\n  }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n    return 2;\n  }" { (return_statement "return 2;" return number_literal ;) })) (if_statement "if ((DAT_0006f0a0 & 2) == 0) {\nLAB_00017304:\n    FUN_000183f0();\n    FUN_00018530();\n    return 2;\n  }" if (parenthesized_expression "((DAT_0006f0a0 & 2) == 0)" ( (binary_expression "(DAT_0006f0a0 & 2) == 0" (parenthesized_expression "(DAT_0006f0a0 & 2)" ( (binary_expression "DAT_0006f0a0 & 2" identifier & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_00017304:\n    FUN_000183f0();\n    FUN_00018530();\n    return 2;\n  }" { (labeled_statement "LAB_00017304:\n    FUN_000183f0();" statement_identifier : (expression_statement "FUN_000183f0();" (call_expression "FUN_000183f0()" identifier (argument_list "()" ( ))) ;)) (expression_statement "FUN_00018530();" (call_expression "FUN_00018530()" identifier (argument_list "()" ( ))) ;) (return_statement "return 2;" return number_literal ;) })) (labeled_statement "LAB_000161c3:\n  FUN_00044820();" statement_identifier : (expression_statement "FUN_00044820();" (call_expression "FUN_00044820()" identifier (argument_list "()" ( ))) ;)) (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) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE 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 (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (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 = 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 IDENT < LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (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 ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == 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) ;) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( ))) ;)) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (return_statement return LIT ;) })) (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 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 ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (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 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 ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (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 = (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 ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_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 (call_expression IDENT (argument_list ( ))) ;) (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 { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (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 = (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 )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (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 ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) < (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression & IDENT) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (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))) ;) (if_statement if (parenthesized_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 = (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 )) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT) )) (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 = (binary_expression IDENT | LIT)) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == LIT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) }))) (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 ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_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 (call_expression IDENT (argument_list ( ))) ;) (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 { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (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 = (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 = 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 = (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 { (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 ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == LIT)) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (goto_statement goto statement_identifier ;)) (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 = 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 )) (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 )) ;) (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 )) (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 (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 ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;)) (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 ( )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (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 (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) < (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression & IDENT) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (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))) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (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 ( ))) ;) (return_statement return LIT ;) })) (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) , (binary_expression IDENT != LIT)) )) (compound_statement { (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 = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (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 ( )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) = LIT) ;) }))) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) < (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression & IDENT) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (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))) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (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 ( ))) ;) (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 (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (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 ( ))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) }))) (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 ;)) (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) )) (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 IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;))) (goto_statement goto statement_identifier ;) })) (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) )) (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)) ))) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (return_statement return LIT ;) }))) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;))) (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 ;)) (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 ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;)) (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 ( ))) ;)) (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) ;) (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 ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (return_statement return LIT ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( ))) ;)) (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 (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (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) )) (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 : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;))) (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 ( ))) ;)) (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 (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( ))) ;)) (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 (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (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) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (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) )) (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) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (return_statement return LIT ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( ))) ;)) (return_statement return LIT ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) }) (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 = BOOL) ;) (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) )) (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 = (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 ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (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 ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_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 (call_expression IDENT (argument_list ( ))) ;) (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 = (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 ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( ))) ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (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 ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (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))) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT)) ;) (if_statement if (parenthesized_expression ( (unary_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 = (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) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (return_statement return LIT ;) })) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) < (pointer_expression & IDENT))) ;) (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 (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (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))) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;)) (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 ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;)) (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 = 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 ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;)) (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 = 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) )) (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 ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;)) (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 ( (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 : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;))) (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 ( ))) ;)) (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) ;) (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 ;)) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( ))) ;)) (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 (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (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 { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;))) (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 : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;))) (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 ( ))) ;)) (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 (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( ))) ;)) (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 (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (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) )) (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 : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (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) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;))) (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 ( ))) ;)) (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 (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (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) )) (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 : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;))) (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 ( ))) ;)) (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 (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( ))) ;)) (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 (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( ))) ;)) (return_statement return 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 IDENT == LIT) )) (goto_statement goto statement_identifier ;)) }))) (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 ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (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 ;)) (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 = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , (string_literal " string_content ") )))) ;) (labeled_statement statement_identifier : (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 { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( ))) ;)) (return_statement return LIT ;) })) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( ))) ;)) (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) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , (string_literal " string_content ") )))) ;) (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)) ))) )) (goto_statement goto 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) )) (goto_statement goto statement_identifier ;)) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (call_expression IDENT (argument_list ( ))) ;) }))) (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 ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( ))) ;)) (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (for_statement for ( ; (binary_expression (pointer_expression * IDENT) != (char_literal ' escape_sequence ')) ; (assignment_expression IDENT = (binary_expression (binary_expression IDENT + 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 = 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 ~ IDENT) - LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (switch_statement switch (parenthesized_expression ( (pointer_expression * IDENT) )) (compound_statement { (case_statement case (char_literal ' character ') :) (case_statement case (char_literal ' character ') : (expression_statement (call_expression IDENT (argument_list ( ))) ;) (break_statement break ;)) (case_statement default : (expression_statement (call_expression IDENT (argument_list ( ))) ;) (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 ( ))) ;) (break_statement break ;)) (case_statement case (char_literal ' character ') : (expression_statement (call_expression IDENT (argument_list ( ))) ;) (break_statement break ;)) (case_statement case (char_literal ' character ') : (expression_statement (call_expression IDENT (argument_list ( ))) ;) (break_statement break ;)) (case_statement case (char_literal ' character ') : (expression_statement (call_expression IDENT (argument_list ( ))) ;) (break_statement break ;)) (case_statement case (char_literal ' character ') : (expression_statement (call_expression IDENT (argument_list ( ))) ;) (break_statement break ;)) (case_statement case (char_literal ' character ') : (expression_statement (call_expression IDENT (argument_list ( ))) ;) (break_statement break ;)) (case_statement case (char_literal ' character ') : (expression_statement (call_expression IDENT (argument_list ( ))) ;) (break_statement break ;)) (case_statement case (char_literal ' character ') : (expression_statement (call_expression IDENT (argument_list ( ))) ;) (break_statement break ;)) (case_statement case (char_literal ' character ') : (expression_statement (call_expression IDENT (argument_list ( ))) ;) (break_statement break ;)) (case_statement case (char_literal ' character ') : (expression_statement (call_expression IDENT (argument_list ( ))) ;)) })) }) (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 ( ))) ;) }) (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 IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) }))) }))))) })) (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 (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;)) (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 (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( ))) ;)) (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 { (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 ;) })) (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 ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;)) (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 ( ))) ;)) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (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 { (labeled_statement statement_identifier : (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) )) (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 ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;)) }))) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (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 ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (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 ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( ))) ;)) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (return_statement return LIT ;) })) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( ))) ;)) (return_statement return LIT ;) })))
(function_definition "undefined4 FUN_00015b60(byte *param_1,char *param_2,int param_3)\n\n{\n  char cVar1;\n  FILE *__stream;\n  int iVar2;\n  long lVar3;\n  char *pcVar4;\n  int iVar5;\n  uint uVar6;\n  undefined4 uVar7;\n  char *pcVar8;\n  byte *pbVar9;\n  int iVar10;\n  byte *pbVar11;\n  bool bVar12;\n  bool bVar13;\n  undefined1 uVar14;\n  bool bVar15;\n  undefined1 uVar16;\n  byte bVar17;\n  undefined1 auStack_2c [8];\n  int local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  bVar17 = 0;\n  iVar5 = 6;\n  uStack_14 = 0x15b6e;\n  bVar12 = &stack0xfffffff0 < (undefined1 *)0x1c;\n  bVar15 = &stack0x00000000 == (undefined1 *)0x2c;\n  pbVar9 = param_1;\n  pbVar11 = (byte *)"-load";\n  do {\n    if (iVar5 == 0) break;\n    iVar5 = iVar5 + -1;\n    bVar12 = *pbVar9 < *pbVar11;\n    bVar15 = *pbVar9 == *pbVar11;\n    pbVar9 = pbVar9 + 1;\n    pbVar11 = pbVar11 + 1;\n  } while (bVar15);\n  bVar13 = false;\n  bVar12 = (!bVar12 && !bVar15) == bVar12;\n  if (bVar12) {\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    thunk_FUN_000249b0();\n    DAT_0006f2f4 = 1;\n    DAT_0006f2f8 = FUN_00019990();\n    return 2;\n  }\n  iVar5 = 5;\n  pbVar9 = param_1;\n  pbVar11 = &DAT_0004b0b5;\n  do {\n    if (iVar5 == 0) break;\n    iVar5 = iVar5 + -1;\n    bVar13 = *pbVar9 < *pbVar11;\n    bVar12 = *pbVar9 == *pbVar11;\n    pbVar9 = pbVar9 + 1;\n    pbVar11 = pbVar11 + 1;\n  } while (bVar12);\n  bVar15 = false;\n  bVar12 = (!bVar13 && !bVar12) == bVar13;\n  if (bVar12) {\n    if (param_3 < 0) {\n      return 1;\n    }\n    if ((DAT_0006f0a0 & 3) == 0) {\n      if (param_3 == 0) {\n        DAT_0006f2dc = 3;\n        DAT_0006f2e4 = 0x16;\nLAB_00015c0d:\n        FUN_000183f0();\n        FUN_000183f0();\n        return 1;\n      }\n      goto LAB_00015c78;\n    }\n    goto LAB_00015d50;\n  }\n  iVar5 = 8;\n  pbVar9 = param_1;\n  pbVar11 = (byte *)"-telnet";\n  do {\n    if (iVar5 == 0) break;\n    iVar5 = iVar5 + -1;\n    bVar15 = *pbVar9 < *pbVar11;\n    bVar12 = *pbVar9 == *pbVar11;\n    pbVar9 = pbVar9 + 1;\n    pbVar11 = pbVar11 + 1;\n  } while (bVar12);\n  bVar13 = false;\n  bVar12 = (!bVar15 && !bVar12) == bVar15;\n  if (bVar12) {\n    if (param_3 < 0) {\n      return 1;\n    }\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n    if (param_3 == 0) {\n      DAT_0006f2dc = 1;\n      DAT_0006f2e4 = 0x17;\n      goto LAB_00015c0d;\n    }\n    goto LAB_00015c78;\n  }\n  iVar5 = 8;\n  pbVar9 = param_1;\n  pbVar11 = (byte *)"-rlogin";\n  do {\n    if (iVar5 == 0) break;\n    iVar5 = iVar5 + -1;\n    bVar13 = *pbVar9 < *pbVar11;\n    bVar12 = *pbVar9 == *pbVar11;\n    pbVar9 = pbVar9 + 1;\n    pbVar11 = pbVar11 + 1;\n  } while (bVar12);\n  bVar15 = false;\n  bVar12 = (!bVar13 && !bVar12) == bVar13;\n  if (bVar12) {\n    if (param_3 < 0) {\n      return 1;\n    }\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n    if (param_3 == 0) {\n      DAT_0006f2dc = 2;\n      DAT_0006f2e4 = 0x201;\n      goto LAB_00015c0d;\n    }\n    goto LAB_00015c78;\n  }\n  iVar5 = 5;\n  pbVar9 = param_1;\n  pbVar11 = &DAT_0004b0ca;\n  do {\n    if (iVar5 == 0) break;\n    iVar5 = iVar5 + -1;\n    bVar15 = *pbVar9 < *pbVar11;\n    bVar12 = *pbVar9 == *pbVar11;\n    pbVar9 = pbVar9 + 1;\n    pbVar11 = pbVar11 + 1;\n  } while (bVar12);\n  bVar13 = false;\n  bVar12 = (!bVar15 && !bVar12) == bVar15;\n  if (bVar12) {\n    if (param_3 < 0) {\n      return 1;\n    }\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n    if (param_3 != 0) goto LAB_00015c78;\n    uVar14 = auStack_2c < (undefined1 *)0x4;\n    uVar16 = &stack0x00000000 == (undefined1 *)0x30;\n    DAT_0006f2dc = 0;\n    FUN_000183f0();\n    iVar5 = 8;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)"-serial";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);\n    bVar12 = false;\n    bVar15 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n    if (bVar15) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      goto LAB_00015dd0;\n    }\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b0d7;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar12 = *pbVar9 < *pbVar11;\n      bVar15 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar15);\n    bVar12 = (!bVar12 && !bVar15) == bVar12;\n    if (bVar12) goto LAB_00015e28;\nLAB_00015e31:\n    uVar7 = 1;\n  }\n  else {\n    iVar5 = 8;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)"-serial";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar13 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + 1;\n      pbVar11 = pbVar11 + 1;\n    } while (bVar12);\n    bVar15 = false;\n    bVar12 = (!bVar13 && !bVar12) == bVar13;\n    if (bVar12) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\nLAB_00015dd0:\n      DAT_0006f2dc = 4;\n      FUN_000183f0();\n      FUN_00017e80();\n      uVar14 = (undefined1 *)0xfffffff3 < &stack0xffffffc4;\n      uVar16 = &stack0x00000000 == (undefined1 *)0x30;\n      FUN_00018530();\n      iVar5 = 3;\n      pbVar9 = param_1;\n      pbVar11 = &DAT_0004b0d7;\n      do {\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        uVar14 = *pbVar9 < *pbVar11;\n        uVar16 = *pbVar9 == *pbVar11;\n        pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n      } while ((bool)uVar16);\n      bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n      if (bVar12) goto LAB_00015e28;\n      goto LAB_00015e31;\n    }\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b0d7;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + 1;\n      pbVar11 = pbVar11 + 1;\n    } while (bVar12);\n    if ((!bVar15 && !bVar12) == bVar15) {\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_00015e28:\n      DAT_0006f2e8 = DAT_0006f2e8 | 1;\n      bVar12 = DAT_0006f2e8 == 0;\n      goto LAB_00015e31;\n    }\n    uVar7 = 0;\n    bVar12 = true;\n  }\n  bVar15 = false;\n  iVar5 = 3;\n  pbVar9 = param_1;\n  pbVar11 = (byte *)0x53a29;\n  do {\n    if (iVar5 == 0) break;\n    iVar5 = iVar5 + -1;\n    bVar15 = *pbVar9 < *pbVar11;\n    bVar12 = *pbVar9 == *pbVar11;\n    pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n    pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n  } while (bVar12);\n  bVar13 = false;\n  bVar12 = (!bVar15 && !bVar12) == bVar15;\n  if (bVar12) {\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n    if (param_3 != 0) goto LAB_00016123;\n    uVar14 = auStack_2c < (undefined1 *)0x4;\n    uVar16 = &stack0x00000000 == (undefined1 *)0x30;\n    FUN_00018530();\n    iVar5 = 9;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)"-loghost";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);\n    bVar12 = false;\n    bVar15 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n    if (bVar15) {\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n      goto LAB_00015ec5;\n    }\n    iVar5 = 9;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)"-hostkey";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar12 = *pbVar9 < *pbVar11;\n      bVar15 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar15);\n    bVar12 = (!bVar12 && !bVar15) == bVar12;\n    if (bVar12) goto LAB_00016218;\nLAB_00016248:\n    uVar7 = 2;\nLAB_0001624d:\n    bVar15 = false;\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b0ec;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar12 = (!bVar15 && !bVar12) == bVar15;\n    if (bVar12) {\nLAB_00016647:\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;\n      bVar12 = param_3 == 0;\n      if (!bVar12) goto LAB_00016123;\n      goto LAB_00015f8f;\n    }\nLAB_0001626b:\n    bVar15 = false;\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b0ef;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar13 = false;\n    bVar12 = (!bVar15 && !bVar12) == bVar15;\n    if (bVar12) goto LAB_00016647;\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)0x53a3b;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar13 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar15 = false;\n    bVar12 = (!bVar13 && !bVar12) == bVar13;\n    if (bVar12) goto LAB_00016647;\n    iVar5 = 4;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b0fd;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar12 = (!bVar15 && !bVar12) == bVar15;\n    if (!bVar12) goto LAB_00016698;\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;\n    if (param_3 != 0) goto LAB_00016123;\nLAB_000162ed:\n    iVar5 = FUN_00019140();\n    if (iVar5 == 0) {\n      FUN_00044820();\n      return 2;\n    }\n    uVar7 = 2;\n    FUN_00019ef0();\n    FUN_00018530();\n    strtol((char *)(iVar5 + 1),(char **)0x0,10);\n    uVar14 = (undefined1 *)0xfffffff3 < &stack0xffffffc4;\n    uVar16 = &stack0x00000000 == (undefined1 *)0x30;\n    FUN_000183f0();\n    FUN_0001a110();\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b101;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);\n    bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n    if (!bVar12) goto LAB_000166e0;\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;\nLAB_0001639b:\n    iVar10 = 0;\n    iVar5 = 0;\n    __stream = fopen64(param_2,"r");\n    local_24 = 0;\n    if (__stream == (FILE *)0x0) {\n      FUN_00044820();\n      return 2;\n    }\n    while (iVar2 = fgetc(__stream), iVar2 != -1) {\n      if (iVar10 < local_24) {\n        *(char *)(iVar5 + iVar10) = (char)iVar2;\n      }\n      else {\n        local_24 = iVar10 + 0x200;\n        local_20 = iVar2;\n        iVar5 = FUN_00019c80();\n        *(char *)(iVar5 + iVar10) = (char)local_20;\n      }\n      iVar10 = iVar10 + 1;\n    }\n    if (iVar10 < local_24) {\n      *(undefined1 *)(iVar5 + iVar10) = 0;\n    }\n    else {\n      iVar5 = FUN_00019c80();\n      *(undefined1 *)(iVar5 + iVar10) = 0;\n    }\n    uVar7 = 2;\n    fclose(__stream);\n    FUN_00018530();\n    FUN_00018530();\n    uVar14 = (undefined1 *)0xfffffff3 < &stack0xffffffc4;\n    uVar16 = &stack0x00000000 == (undefined1 *)0x30;\n    FUN_000183f0();\n    FUN_0001a110();\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b104;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);\n    bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n    if (!bVar12) goto LAB_00016777;\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\nLAB_000164a7:\n    strtol(param_2,(char **)0x0,10);\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-pw");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\nLAB_000164f6:\n      iVar5 = FUN_00017cd0();\n      if (iVar5 == 3) {\n        DAT_0006f0a8 = FUN_00019990();\n        iVar5 = -1;\n        pcVar8 = param_2;\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          cVar1 = *pcVar8;\n          pcVar8 = pcVar8 + (uint)bVar17 * -2 + 1;\n        } while (cVar1 != '\0');\n        FUN_0001a1f0();\n      }\n      else {\n        FUN_00044820();\n      }\n      iVar5 = strcmp((char *)param_1,"-agent");\n      if ((iVar5 == 0) || (iVar5 = strcmp((char *)param_1,"-pagent"), iVar5 == 0))\n      goto LAB_00015d3a;\n      uVar7 = 2;\n      iVar5 = strcmp((char *)param_1,"-pageant");\n      if (iVar5 == 0) goto LAB_0001688c;\n    }\n    else {\n      iVar5 = strcmp((char *)param_1,"-agent");\n      if (iVar5 == 0) {\nLAB_00015d3a:\n        if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n        goto LAB_000168a1;\n      }\n      uVar7 = 2;\n      iVar5 = strcmp((char *)param_1,"-pagent");\n      if (iVar5 == 0) goto LAB_0001688c;\nLAB_0001685f:\n      iVar5 = strcmp((char *)param_1,"-pageant");\n      if (iVar5 == 0) goto LAB_00016884;\n    }\n    iVar5 = strcmp((char *)param_1,"-noagent");\n    if ((iVar5 == 0) || (iVar5 = strcmp((char *)param_1,"-nopagent"), iVar5 == 0)) {\nLAB_00016e5e:\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_00016e44:\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\n      goto LAB_000168e1;\n    }\nLAB_000165eb:\n    iVar5 = strcmp((char *)param_1,"-nopageant");\n    if (iVar5 == 0) goto LAB_00016e5e;\n    iVar5 = strcmp((char *)param_1,"-A");\n    if (iVar5 != 0) {\n      iVar5 = strcmp((char *)param_1,"-a");\n      if (iVar5 != 0) goto LAB_00016f0f;\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_0001700b;\n    }\n    if (param_3 < 0) {\n      return 1;\n    }\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n    if (param_3 != 0) goto LAB_00015c78;\nLAB_00016921:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-a");\n    if (iVar5 != 0) {\n      uVar7 = 1;\n      iVar5 = strcmp((char *)param_1,"-X");\n      if (iVar5 == 0) goto LAB_00016f38;\nLAB_00016f97:\n      iVar5 = strcmp((char *)param_1,"-x");\n      if (iVar5 != 0) goto LAB_0001704f;\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_00016fc4:\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\n      goto LAB_000169e4;\n    }\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\nLAB_00016961:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-X");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      goto LAB_000169a1;\n    }\n    uVar7 = 1;\n    iVar5 = strcmp((char *)param_1,"-x");\n    if (iVar5 == 0) goto LAB_00016fc4;\nLAB_0001704f:\n    iVar5 = strcmp((char *)param_1,"-t");\n    if (iVar5 == 0) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_0001707c;\n    }\nLAB_000177b1:\n    iVar5 = strcmp((char *)param_1,"-T");\n    if (iVar5 != 0) goto LAB_00017759;\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_0001770d:\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n    if (param_3 != 0) goto LAB_00017091;\nLAB_00016a67:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-N");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\nLAB_00016aa7:\n      FUN_000183f0();\n      iVar5 = strcmp((char *)param_1,"-C");\n      if (iVar5 == 0) {\n        if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n        goto LAB_00016ae7;\n      }\n      uVar7 = 1;\n      iVar5 = strcmp((char *)param_1,"-1");\n      if (iVar5 != 0) goto LAB_00017647;\nLAB_000175ed:\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\n      goto LAB_00016b27;\n    }\n    uVar7 = 1;\n    iVar5 = strcmp((char *)param_1,"-C");\n    if (iVar5 == 0) goto LAB_0001762d;\nLAB_00017679:\n    iVar5 = strcmp((char *)param_1,"-1");\n    if (iVar5 == 0) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_000175ed;\n    }\nLAB_00017647:\n    iVar5 = strcmp((char *)param_1,"-2");\n    if (iVar5 == 0) {\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_000175ad:\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n      if (param_3 != 0) {\nLAB_00015c78:\n        FUN_00015950();\n        return 1;\n      }\nLAB_00016b67:\n      uVar7 = 1;\n      FUN_000183f0();\n    }\n  }\n  else {\n    iVar5 = 9;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)"-loghost";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar13 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar15 = false;\n    bVar12 = (!bVar13 && !bVar12) == bVar13;\n    if (!bVar12) {\n      iVar5 = 9;\n      pbVar9 = param_1;\n      pbVar11 = (byte *)"-hostkey";\n      do {\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        bVar15 = *pbVar9 < *pbVar11;\n        bVar12 = *pbVar9 == *pbVar11;\n        pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n      } while (bVar12);\n      bVar12 = (!bVar15 && !bVar12) == bVar15;\n      if (bVar12) {\n        if (param_2 == (char *)0x0) {\n          return 0xfffffffe;\n        }\n        if (param_3 < 0) {\n          return 2;\n        }\nLAB_00016218:\n        if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n        if (param_3 != 0) goto LAB_00016123;\n        goto LAB_00015f0d;\n      }\n      goto LAB_0001624d;\n    }\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n    if (param_3 != 0) goto LAB_00016123;\nLAB_00015ec5:\n    uVar14 = auStack_2c < (undefined1 *)0x4;\n    uVar16 = &stack0x00000000 == (undefined1 *)0x30;\n    FUN_00018530();\n    iVar5 = 9;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)"-hostkey";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);\n    bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n    if (!bVar12) goto LAB_00016248;\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\nLAB_00015f0d:\n    FUN_00019990();\n    iVar5 = FUN_0001a210();\n    uVar14 = 0;\n    uVar16 = iVar5 == 0;\n    if ((bool)uVar16) {\n      FUN_00044820();\n      FUN_0001a110();\n      return 2;\n    }\n    uVar7 = 2;\n    FUN_000185e0();\n    FUN_0001a110();\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b0ec;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);\n    bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n    if (!bVar12) goto LAB_0001626b;\n    bVar12 = (DAT_0006f0a0 & 3) == 0;\n    if (!bVar12) goto LAB_000161c3;\nLAB_00015f8f:\n    bVar15 = false;\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)0x53a3b;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    if ((!bVar15 && !bVar12) == bVar15) {\n      FUN_00019ef0();\n      FUN_00019990();\n    }\n    else {\n      iVar5 = FUN_00019140();\n      if (iVar5 == 0) {\n        FUN_00044820();\n        return 2;\n      }\n      do {\n        iVar5 = FUN_00019140();\n      } while (iVar5 != 0);\n      FUN_00019ef0();\n      FUN_00019990();\n    }\n    uVar14 = (undefined1 *)0xffffffef < &stack0xffffffc4;\n    uVar16 = &stack0x00000000 == (undefined1 *)0x2c;\n    uVar7 = 2;\n    FUN_000185e0();\n    FUN_0001a110();\n    FUN_0001a110();\n    iVar5 = 4;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b0fd;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);\n    bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n    if (bVar12) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;\n      goto LAB_000162ed;\n    }\nLAB_00016698:\n    bVar15 = false;\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b101;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar12 = (!bVar15 && !bVar12) == bVar15;\n    if (bVar12) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;\n      if (param_3 != 0) goto LAB_00016123;\n      goto LAB_0001639b;\n    }\nLAB_000166e0:\n    bVar15 = false;\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b104;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar12 = (!bVar15 && !bVar12) == bVar15;\n    if (bVar12) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n      if (param_3 != 0) goto LAB_00016723;\n      goto LAB_000164a7;\n    }\nLAB_00016777:\n    bVar15 = false;\n    iVar5 = 4;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b107;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    if ((!bVar15 && !bVar12) == bVar15) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n      if (param_3 != 0) goto LAB_00016723;\n      goto LAB_000164f6;\n    }\n    iVar5 = strcmp((char *)param_1,"-agent");\n    if ((iVar5 != 0) && (iVar5 = strcmp((char *)param_1,"-pagent"), iVar5 != 0)) goto LAB_0001685f;\nLAB_00016884:\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_0001688c:\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n    if (param_3 != 0) goto LAB_00015c78;\nLAB_000168a1:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-noagent");\n    if (iVar5 != 0) {\n      uVar7 = 1;\n      iVar5 = strcmp((char *)param_1,"-nopagent");\n      if (iVar5 != 0) goto LAB_000165eb;\n      goto LAB_00016e44;\n    }\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\nLAB_000168e1:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-A");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      goto LAB_00016921;\n    }\n    uVar7 = 1;\n    iVar5 = strcmp((char *)param_1,"-a");\n    if (iVar5 == 0) {\nLAB_0001700b:\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\n      goto LAB_00016961;\n    }\nLAB_00016f0f:\n    iVar5 = strcmp((char *)param_1,"-X");\n    if (iVar5 != 0) goto LAB_00016f97;\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_00016f38:\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n    if (param_3 != 0) goto LAB_00015c78;\nLAB_000169a1:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-x");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\nLAB_000169e4:\n      FUN_000183f0();\n      iVar5 = strcmp((char *)param_1,"-t");\n      if (iVar5 == 0) {\n        if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n        goto LAB_00016a27;\n      }\n      uVar7 = 1;\n      iVar5 = strcmp((char *)param_1,"-T");\n      if (iVar5 == 0) goto LAB_0001770d;\nLAB_00017759:\n      iVar5 = strcmp((char *)param_1,"-N");\n      if (iVar5 != 0) goto LAB_00017727;\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_000176cd:\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\n      goto LAB_00016aa7;\n    }\n    uVar7 = 1;\n    iVar5 = strcmp((char *)param_1,"-t");\n    if (iVar5 != 0) goto LAB_000177b1;\nLAB_0001707c:\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n    if (param_3 != 0) goto LAB_00017091;\nLAB_00016a27:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-T");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      goto LAB_00016a67;\n    }\n    uVar7 = 1;\n    iVar5 = strcmp((char *)param_1,"-N");\n    if (iVar5 == 0) goto LAB_000176cd;\nLAB_00017727:\n    iVar5 = strcmp((char *)param_1,"-C");\n    if (iVar5 != 0) goto LAB_00017679;\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_0001762d:\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n    if (param_3 != 0) goto LAB_00015c78;\nLAB_00016ae7:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-1");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\nLAB_00016b27:\n      FUN_000183f0();\n      iVar5 = strcmp((char *)param_1,"-2");\n      if (iVar5 == 0) {\n        if ((DAT_0006f0a0 & 2) != 0) {\nLAB_00015d50:\n          FUN_00044820();\n          return 1;\n        }\n        goto LAB_00016b67;\n      }\n    }\n    else {\n      iVar5 = strcmp((char *)param_1,"-2");\n      if (iVar5 == 0) goto LAB_000175ad;\n    }\n    uVar7 = 1;\n  }\n  iVar5 = strcmp((char *)param_1,"-i");\n  if (iVar5 == 0) {\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n    if (param_3 != 0) goto LAB_00016123;\n    FUN_00041790();\n    FUN_00018770();\n    FUN_00041820();\n    iVar5 = strcmp((char *)param_1,"-4");\n    if ((iVar5 == 0) || (iVar5 = strcmp((char *)param_1,"-ipv4"), iVar5 == 0)) goto LAB_00017485;\n    iVar5 = strcmp((char *)param_1,"-6");\n    if (iVar5 == 0) goto LAB_00016c88;\n    uVar7 = 2;\n    iVar5 = strcmp((char *)param_1,"-ipv6");\njoined_r0x000174dc:\n    if (iVar5 == 0) goto LAB_00016c88;\n  }\n  else {\n    iVar5 = strcmp((char *)param_1,"-4");\n    if ((iVar5 == 0) || (iVar5 = strcmp((char *)param_1,"-ipv4"), iVar5 == 0)) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\nLAB_00017091:\n        FUN_00015950();\n        return 1;\n      }\nLAB_00017485:\n      FUN_000183f0();\n      iVar5 = strcmp((char *)param_1,"-6");\n      if (iVar5 != 0) {\n        uVar7 = 1;\n        iVar5 = strcmp((char *)param_1,"-ipv6");\n        goto joined_r0x000174dc;\n      }\n    }\n    else {\n      iVar5 = strcmp((char *)param_1,"-6");\n      if ((iVar5 != 0) && (iVar5 = strcmp((char *)param_1,"-ipv6"), iVar5 != 0)) goto LAB_00016ca6;\n      if (param_3 < 0) {\n        return 1;\n      }\n      if (param_3 != 0) goto LAB_00017091;\n    }\nLAB_00016c88:\n    uVar7 = 1;\n    FUN_000183f0();\n  }\nLAB_00016ca6:\n  iVar5 = strcmp((char *)param_1,"-sercfg");\n  if (iVar5 == 0) {\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;\n    if (param_3 != 0) {\nLAB_00016723:\n      FUN_00015950();\n      return 2;\n    }\n    iVar5 = FUN_00017cd0();\n    pcVar8 = param_2;\n    if (iVar5 != 4) {\n      FUN_00044820();\n    }\n    for (; *pcVar8 != '\0'; pcVar8 = pcVar8 + iVar10 + iVar5) {\n      pcVar4 = strchr(pcVar8,0x2c);\n      if (pcVar4 == (char *)0x0) {\n        uVar6 = 0xffffffff;\n        iVar5 = 0;\n        pcVar4 = pcVar8;\n        do {\n          if (uVar6 == 0) break;\n          uVar6 = uVar6 - 1;\n          cVar1 = *pcVar4;\n          pcVar4 = pcVar4 + (uint)bVar17 * -2 + 1;\n        } while (cVar1 != '\0');\n        iVar10 = ~uVar6 - 1;\n      }\n      else {\n        *pcVar4 = '\0';\n        iVar5 = 1;\n        iVar10 = (int)pcVar4 - (int)pcVar8;\n      }\n      if (iVar10 == 1) {\n        switch(*pcVar8) {\n        case '1':\n        case '2':\n          FUN_000183f0();\n          break;\n        default:\n          FUN_00044820();\n          break;\n        case '5':\n        case '6':\n        case '7':\n        case '8':\n        case '9':\n          FUN_000183f0();\n          break;\n        case 'D':\n          FUN_000183f0();\n          break;\n        case 'N':\n          FUN_000183f0();\n          break;\n        case 'R':\n          FUN_000183f0();\n          break;\n        case 'X':\n          FUN_000183f0();\n          break;\n        case 'e':\n          FUN_000183f0();\n          break;\n        case 'm':\n          FUN_000183f0();\n          break;\n        case 'n':\n          FUN_000183f0();\n          break;\n        case 'o':\n          FUN_000183f0();\n          break;\n        case 's':\n          FUN_000183f0();\n        }\n      }\n      else if ((iVar10 == 3) && (iVar2 = strncmp(pcVar8,"1.5",3), iVar2 == 0)) {\n        FUN_000183f0();\n      }\n      else {\n        lVar3 = strtol(pcVar8,(char **)0x0,10);\n        if (lVar3 == 0) {\n          FUN_00044820();\n        }\n        else {\n          FUN_000183f0();\n        }\n      }\n    }\n    iVar5 = strcmp((char *)param_1,"-sessionlog");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 1) != 0) goto LAB_000161c3;\n      goto LAB_0001722b;\n    }\n    iVar5 = strcmp((char *)param_1,"-sshlog");\n    if (iVar5 != 0) goto LAB_000173ff;\nLAB_000173c4:\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n    if (param_3 != 0) {\nLAB_00016123:\n      FUN_00015950();\n      return 2;\n    }\n  }\n  else {\n    iVar5 = strcmp((char *)param_1,"-sessionlog");\n    if (iVar5 != 0) {\n      iVar5 = strcmp((char *)param_1,"-sshlog");\n      if (iVar5 != 0) goto LAB_00017404;\nLAB_000173b1:\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      goto LAB_000173c4;\n    }\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    if ((DAT_0006f0a0 & 1) != 0) goto LAB_000161c3;\n    if (param_3 != 0) goto LAB_00016123;\nLAB_0001722b:\n    FUN_00041790();\n    FUN_00018770();\n    FUN_000183f0();\n    FUN_00041820();\n    iVar5 = strcmp((char *)param_1,"-sshlog");\n    if (iVar5 != 0) {\nLAB_000173ff:\n      uVar7 = 2;\nLAB_00017404:\n      iVar5 = strcmp((char *)param_1,"-sshrawlog");\n      if (iVar5 != 0) {\n        iVar5 = strcmp((char *)param_1,"-proxycmd");\n        if (iVar5 != 0) {\n          return uVar7;\n        }\n        if (param_2 == (char *)0x0) {\n          return 0xfffffffe;\n        }\n        if (param_3 < 0) {\n          return 2;\n        }\n        if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n        if (param_3 != 0) goto LAB_00016123;\n        goto LAB_00017304;\n      }\n      goto LAB_000173b1;\n    }\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n  }\n  FUN_00041790();\n  FUN_00018770();\n  strcmp((char *)param_1,"-sshlog");\n  FUN_000183f0();\n  FUN_00041820();\n  iVar5 = strcmp((char *)param_1,"-proxycmd");\n  if (iVar5 != 0) {\n    return 2;\n  }\n  if ((DAT_0006f0a0 & 2) == 0) {\nLAB_00017304:\n    FUN_000183f0();\n    FUN_00018530();\n    return 2;\n  }\nLAB_000161c3:\n  FUN_00044820();\n  return 2;\n}" (type_identifier "undefined4") (function_declarator "FUN_00015b60(byte *param_1,char *param_2,int param_3)" (identifier "FUN_00015b60") (parameter_list "(byte *param_1,char *param_2,int param_3)" (( "(") (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")) () ")"))) (compound_statement "{\n  char cVar1;\n  FILE *__stream;\n  int iVar2;\n  long lVar3;\n  char *pcVar4;\n  int iVar5;\n  uint uVar6;\n  undefined4 uVar7;\n  char *pcVar8;\n  byte *pbVar9;\n  int iVar10;\n  byte *pbVar11;\n  bool bVar12;\n  bool bVar13;\n  undefined1 uVar14;\n  bool bVar15;\n  undefined1 uVar16;\n  byte bVar17;\n  undefined1 auStack_2c [8];\n  int local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  bVar17 = 0;\n  iVar5 = 6;\n  uStack_14 = 0x15b6e;\n  bVar12 = &stack0xfffffff0 < (undefined1 *)0x1c;\n  bVar15 = &stack0x00000000 == (undefined1 *)0x2c;\n  pbVar9 = param_1;\n  pbVar11 = (byte *)"-load";\n  do {\n    if (iVar5 == 0) break;\n    iVar5 = iVar5 + -1;\n    bVar12 = *pbVar9 < *pbVar11;\n    bVar15 = *pbVar9 == *pbVar11;\n    pbVar9 = pbVar9 + 1;\n    pbVar11 = pbVar11 + 1;\n  } while (bVar15);\n  bVar13 = false;\n  bVar12 = (!bVar12 && !bVar15) == bVar12;\n  if (bVar12) {\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    thunk_FUN_000249b0();\n    DAT_0006f2f4 = 1;\n    DAT_0006f2f8 = FUN_00019990();\n    return 2;\n  }\n  iVar5 = 5;\n  pbVar9 = param_1;\n  pbVar11 = &DAT_0004b0b5;\n  do {\n    if (iVar5 == 0) break;\n    iVar5 = iVar5 + -1;\n    bVar13 = *pbVar9 < *pbVar11;\n    bVar12 = *pbVar9 == *pbVar11;\n    pbVar9 = pbVar9 + 1;\n    pbVar11 = pbVar11 + 1;\n  } while (bVar12);\n  bVar15 = false;\n  bVar12 = (!bVar13 && !bVar12) == bVar13;\n  if (bVar12) {\n    if (param_3 < 0) {\n      return 1;\n    }\n    if ((DAT_0006f0a0 & 3) == 0) {\n      if (param_3 == 0) {\n        DAT_0006f2dc = 3;\n        DAT_0006f2e4 = 0x16;\nLAB_00015c0d:\n        FUN_000183f0();\n        FUN_000183f0();\n        return 1;\n      }\n      goto LAB_00015c78;\n    }\n    goto LAB_00015d50;\n  }\n  iVar5 = 8;\n  pbVar9 = param_1;\n  pbVar11 = (byte *)"-telnet";\n  do {\n    if (iVar5 == 0) break;\n    iVar5 = iVar5 + -1;\n    bVar15 = *pbVar9 < *pbVar11;\n    bVar12 = *pbVar9 == *pbVar11;\n    pbVar9 = pbVar9 + 1;\n    pbVar11 = pbVar11 + 1;\n  } while (bVar12);\n  bVar13 = false;\n  bVar12 = (!bVar15 && !bVar12) == bVar15;\n  if (bVar12) {\n    if (param_3 < 0) {\n      return 1;\n    }\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n    if (param_3 == 0) {\n      DAT_0006f2dc = 1;\n      DAT_0006f2e4 = 0x17;\n      goto LAB_00015c0d;\n    }\n    goto LAB_00015c78;\n  }\n  iVar5 = 8;\n  pbVar9 = param_1;\n  pbVar11 = (byte *)"-rlogin";\n  do {\n    if (iVar5 == 0) break;\n    iVar5 = iVar5 + -1;\n    bVar13 = *pbVar9 < *pbVar11;\n    bVar12 = *pbVar9 == *pbVar11;\n    pbVar9 = pbVar9 + 1;\n    pbVar11 = pbVar11 + 1;\n  } while (bVar12);\n  bVar15 = false;\n  bVar12 = (!bVar13 && !bVar12) == bVar13;\n  if (bVar12) {\n    if (param_3 < 0) {\n      return 1;\n    }\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n    if (param_3 == 0) {\n      DAT_0006f2dc = 2;\n      DAT_0006f2e4 = 0x201;\n      goto LAB_00015c0d;\n    }\n    goto LAB_00015c78;\n  }\n  iVar5 = 5;\n  pbVar9 = param_1;\n  pbVar11 = &DAT_0004b0ca;\n  do {\n    if (iVar5 == 0) break;\n    iVar5 = iVar5 + -1;\n    bVar15 = *pbVar9 < *pbVar11;\n    bVar12 = *pbVar9 == *pbVar11;\n    pbVar9 = pbVar9 + 1;\n    pbVar11 = pbVar11 + 1;\n  } while (bVar12);\n  bVar13 = false;\n  bVar12 = (!bVar15 && !bVar12) == bVar15;\n  if (bVar12) {\n    if (param_3 < 0) {\n      return 1;\n    }\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n    if (param_3 != 0) goto LAB_00015c78;\n    uVar14 = auStack_2c < (undefined1 *)0x4;\n    uVar16 = &stack0x00000000 == (undefined1 *)0x30;\n    DAT_0006f2dc = 0;\n    FUN_000183f0();\n    iVar5 = 8;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)"-serial";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);\n    bVar12 = false;\n    bVar15 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n    if (bVar15) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      goto LAB_00015dd0;\n    }\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b0d7;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar12 = *pbVar9 < *pbVar11;\n      bVar15 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar15);\n    bVar12 = (!bVar12 && !bVar15) == bVar12;\n    if (bVar12) goto LAB_00015e28;\nLAB_00015e31:\n    uVar7 = 1;\n  }\n  else {\n    iVar5 = 8;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)"-serial";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar13 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + 1;\n      pbVar11 = pbVar11 + 1;\n    } while (bVar12);\n    bVar15 = false;\n    bVar12 = (!bVar13 && !bVar12) == bVar13;\n    if (bVar12) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\nLAB_00015dd0:\n      DAT_0006f2dc = 4;\n      FUN_000183f0();\n      FUN_00017e80();\n      uVar14 = (undefined1 *)0xfffffff3 < &stack0xffffffc4;\n      uVar16 = &stack0x00000000 == (undefined1 *)0x30;\n      FUN_00018530();\n      iVar5 = 3;\n      pbVar9 = param_1;\n      pbVar11 = &DAT_0004b0d7;\n      do {\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        uVar14 = *pbVar9 < *pbVar11;\n        uVar16 = *pbVar9 == *pbVar11;\n        pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n      } while ((bool)uVar16);\n      bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n      if (bVar12) goto LAB_00015e28;\n      goto LAB_00015e31;\n    }\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b0d7;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + 1;\n      pbVar11 = pbVar11 + 1;\n    } while (bVar12);\n    if ((!bVar15 && !bVar12) == bVar15) {\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_00015e28:\n      DAT_0006f2e8 = DAT_0006f2e8 | 1;\n      bVar12 = DAT_0006f2e8 == 0;\n      goto LAB_00015e31;\n    }\n    uVar7 = 0;\n    bVar12 = true;\n  }\n  bVar15 = false;\n  iVar5 = 3;\n  pbVar9 = param_1;\n  pbVar11 = (byte *)0x53a29;\n  do {\n    if (iVar5 == 0) break;\n    iVar5 = iVar5 + -1;\n    bVar15 = *pbVar9 < *pbVar11;\n    bVar12 = *pbVar9 == *pbVar11;\n    pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n    pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n  } while (bVar12);\n  bVar13 = false;\n  bVar12 = (!bVar15 && !bVar12) == bVar15;\n  if (bVar12) {\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n    if (param_3 != 0) goto LAB_00016123;\n    uVar14 = auStack_2c < (undefined1 *)0x4;\n    uVar16 = &stack0x00000000 == (undefined1 *)0x30;\n    FUN_00018530();\n    iVar5 = 9;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)"-loghost";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);\n    bVar12 = false;\n    bVar15 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n    if (bVar15) {\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n      goto LAB_00015ec5;\n    }\n    iVar5 = 9;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)"-hostkey";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar12 = *pbVar9 < *pbVar11;\n      bVar15 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar15);\n    bVar12 = (!bVar12 && !bVar15) == bVar12;\n    if (bVar12) goto LAB_00016218;\nLAB_00016248:\n    uVar7 = 2;\nLAB_0001624d:\n    bVar15 = false;\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b0ec;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar12 = (!bVar15 && !bVar12) == bVar15;\n    if (bVar12) {\nLAB_00016647:\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;\n      bVar12 = param_3 == 0;\n      if (!bVar12) goto LAB_00016123;\n      goto LAB_00015f8f;\n    }\nLAB_0001626b:\n    bVar15 = false;\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b0ef;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar13 = false;\n    bVar12 = (!bVar15 && !bVar12) == bVar15;\n    if (bVar12) goto LAB_00016647;\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)0x53a3b;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar13 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar15 = false;\n    bVar12 = (!bVar13 && !bVar12) == bVar13;\n    if (bVar12) goto LAB_00016647;\n    iVar5 = 4;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b0fd;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar12 = (!bVar15 && !bVar12) == bVar15;\n    if (!bVar12) goto LAB_00016698;\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;\n    if (param_3 != 0) goto LAB_00016123;\nLAB_000162ed:\n    iVar5 = FUN_00019140();\n    if (iVar5 == 0) {\n      FUN_00044820();\n      return 2;\n    }\n    uVar7 = 2;\n    FUN_00019ef0();\n    FUN_00018530();\n    strtol((char *)(iVar5 + 1),(char **)0x0,10);\n    uVar14 = (undefined1 *)0xfffffff3 < &stack0xffffffc4;\n    uVar16 = &stack0x00000000 == (undefined1 *)0x30;\n    FUN_000183f0();\n    FUN_0001a110();\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b101;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);\n    bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n    if (!bVar12) goto LAB_000166e0;\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;\nLAB_0001639b:\n    iVar10 = 0;\n    iVar5 = 0;\n    __stream = fopen64(param_2,"r");\n    local_24 = 0;\n    if (__stream == (FILE *)0x0) {\n      FUN_00044820();\n      return 2;\n    }\n    while (iVar2 = fgetc(__stream), iVar2 != -1) {\n      if (iVar10 < local_24) {\n        *(char *)(iVar5 + iVar10) = (char)iVar2;\n      }\n      else {\n        local_24 = iVar10 + 0x200;\n        local_20 = iVar2;\n        iVar5 = FUN_00019c80();\n        *(char *)(iVar5 + iVar10) = (char)local_20;\n      }\n      iVar10 = iVar10 + 1;\n    }\n    if (iVar10 < local_24) {\n      *(undefined1 *)(iVar5 + iVar10) = 0;\n    }\n    else {\n      iVar5 = FUN_00019c80();\n      *(undefined1 *)(iVar5 + iVar10) = 0;\n    }\n    uVar7 = 2;\n    fclose(__stream);\n    FUN_00018530();\n    FUN_00018530();\n    uVar14 = (undefined1 *)0xfffffff3 < &stack0xffffffc4;\n    uVar16 = &stack0x00000000 == (undefined1 *)0x30;\n    FUN_000183f0();\n    FUN_0001a110();\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b104;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);\n    bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n    if (!bVar12) goto LAB_00016777;\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\nLAB_000164a7:\n    strtol(param_2,(char **)0x0,10);\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-pw");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\nLAB_000164f6:\n      iVar5 = FUN_00017cd0();\n      if (iVar5 == 3) {\n        DAT_0006f0a8 = FUN_00019990();\n        iVar5 = -1;\n        pcVar8 = param_2;\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          cVar1 = *pcVar8;\n          pcVar8 = pcVar8 + (uint)bVar17 * -2 + 1;\n        } while (cVar1 != '\0');\n        FUN_0001a1f0();\n      }\n      else {\n        FUN_00044820();\n      }\n      iVar5 = strcmp((char *)param_1,"-agent");\n      if ((iVar5 == 0) || (iVar5 = strcmp((char *)param_1,"-pagent"), iVar5 == 0))\n      goto LAB_00015d3a;\n      uVar7 = 2;\n      iVar5 = strcmp((char *)param_1,"-pageant");\n      if (iVar5 == 0) goto LAB_0001688c;\n    }\n    else {\n      iVar5 = strcmp((char *)param_1,"-agent");\n      if (iVar5 == 0) {\nLAB_00015d3a:\n        if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n        goto LAB_000168a1;\n      }\n      uVar7 = 2;\n      iVar5 = strcmp((char *)param_1,"-pagent");\n      if (iVar5 == 0) goto LAB_0001688c;\nLAB_0001685f:\n      iVar5 = strcmp((char *)param_1,"-pageant");\n      if (iVar5 == 0) goto LAB_00016884;\n    }\n    iVar5 = strcmp((char *)param_1,"-noagent");\n    if ((iVar5 == 0) || (iVar5 = strcmp((char *)param_1,"-nopagent"), iVar5 == 0)) {\nLAB_00016e5e:\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_00016e44:\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\n      goto LAB_000168e1;\n    }\nLAB_000165eb:\n    iVar5 = strcmp((char *)param_1,"-nopageant");\n    if (iVar5 == 0) goto LAB_00016e5e;\n    iVar5 = strcmp((char *)param_1,"-A");\n    if (iVar5 != 0) {\n      iVar5 = strcmp((char *)param_1,"-a");\n      if (iVar5 != 0) goto LAB_00016f0f;\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_0001700b;\n    }\n    if (param_3 < 0) {\n      return 1;\n    }\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n    if (param_3 != 0) goto LAB_00015c78;\nLAB_00016921:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-a");\n    if (iVar5 != 0) {\n      uVar7 = 1;\n      iVar5 = strcmp((char *)param_1,"-X");\n      if (iVar5 == 0) goto LAB_00016f38;\nLAB_00016f97:\n      iVar5 = strcmp((char *)param_1,"-x");\n      if (iVar5 != 0) goto LAB_0001704f;\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_00016fc4:\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\n      goto LAB_000169e4;\n    }\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\nLAB_00016961:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-X");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      goto LAB_000169a1;\n    }\n    uVar7 = 1;\n    iVar5 = strcmp((char *)param_1,"-x");\n    if (iVar5 == 0) goto LAB_00016fc4;\nLAB_0001704f:\n    iVar5 = strcmp((char *)param_1,"-t");\n    if (iVar5 == 0) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_0001707c;\n    }\nLAB_000177b1:\n    iVar5 = strcmp((char *)param_1,"-T");\n    if (iVar5 != 0) goto LAB_00017759;\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_0001770d:\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n    if (param_3 != 0) goto LAB_00017091;\nLAB_00016a67:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-N");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\nLAB_00016aa7:\n      FUN_000183f0();\n      iVar5 = strcmp((char *)param_1,"-C");\n      if (iVar5 == 0) {\n        if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n        goto LAB_00016ae7;\n      }\n      uVar7 = 1;\n      iVar5 = strcmp((char *)param_1,"-1");\n      if (iVar5 != 0) goto LAB_00017647;\nLAB_000175ed:\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\n      goto LAB_00016b27;\n    }\n    uVar7 = 1;\n    iVar5 = strcmp((char *)param_1,"-C");\n    if (iVar5 == 0) goto LAB_0001762d;\nLAB_00017679:\n    iVar5 = strcmp((char *)param_1,"-1");\n    if (iVar5 == 0) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_000175ed;\n    }\nLAB_00017647:\n    iVar5 = strcmp((char *)param_1,"-2");\n    if (iVar5 == 0) {\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_000175ad:\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n      if (param_3 != 0) {\nLAB_00015c78:\n        FUN_00015950();\n        return 1;\n      }\nLAB_00016b67:\n      uVar7 = 1;\n      FUN_000183f0();\n    }\n  }\n  else {\n    iVar5 = 9;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)"-loghost";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar13 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar15 = false;\n    bVar12 = (!bVar13 && !bVar12) == bVar13;\n    if (!bVar12) {\n      iVar5 = 9;\n      pbVar9 = param_1;\n      pbVar11 = (byte *)"-hostkey";\n      do {\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        bVar15 = *pbVar9 < *pbVar11;\n        bVar12 = *pbVar9 == *pbVar11;\n        pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n      } while (bVar12);\n      bVar12 = (!bVar15 && !bVar12) == bVar15;\n      if (bVar12) {\n        if (param_2 == (char *)0x0) {\n          return 0xfffffffe;\n        }\n        if (param_3 < 0) {\n          return 2;\n        }\nLAB_00016218:\n        if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n        if (param_3 != 0) goto LAB_00016123;\n        goto LAB_00015f0d;\n      }\n      goto LAB_0001624d;\n    }\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n    if (param_3 != 0) goto LAB_00016123;\nLAB_00015ec5:\n    uVar14 = auStack_2c < (undefined1 *)0x4;\n    uVar16 = &stack0x00000000 == (undefined1 *)0x30;\n    FUN_00018530();\n    iVar5 = 9;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)"-hostkey";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);\n    bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n    if (!bVar12) goto LAB_00016248;\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\nLAB_00015f0d:\n    FUN_00019990();\n    iVar5 = FUN_0001a210();\n    uVar14 = 0;\n    uVar16 = iVar5 == 0;\n    if ((bool)uVar16) {\n      FUN_00044820();\n      FUN_0001a110();\n      return 2;\n    }\n    uVar7 = 2;\n    FUN_000185e0();\n    FUN_0001a110();\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b0ec;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);\n    bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n    if (!bVar12) goto LAB_0001626b;\n    bVar12 = (DAT_0006f0a0 & 3) == 0;\n    if (!bVar12) goto LAB_000161c3;\nLAB_00015f8f:\n    bVar15 = false;\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)0x53a3b;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    if ((!bVar15 && !bVar12) == bVar15) {\n      FUN_00019ef0();\n      FUN_00019990();\n    }\n    else {\n      iVar5 = FUN_00019140();\n      if (iVar5 == 0) {\n        FUN_00044820();\n        return 2;\n      }\n      do {\n        iVar5 = FUN_00019140();\n      } while (iVar5 != 0);\n      FUN_00019ef0();\n      FUN_00019990();\n    }\n    uVar14 = (undefined1 *)0xffffffef < &stack0xffffffc4;\n    uVar16 = &stack0x00000000 == (undefined1 *)0x2c;\n    uVar7 = 2;\n    FUN_000185e0();\n    FUN_0001a110();\n    FUN_0001a110();\n    iVar5 = 4;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b0fd;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);\n    bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n    if (bVar12) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;\n      goto LAB_000162ed;\n    }\nLAB_00016698:\n    bVar15 = false;\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b101;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar12 = (!bVar15 && !bVar12) == bVar15;\n    if (bVar12) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;\n      if (param_3 != 0) goto LAB_00016123;\n      goto LAB_0001639b;\n    }\nLAB_000166e0:\n    bVar15 = false;\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b104;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar12 = (!bVar15 && !bVar12) == bVar15;\n    if (bVar12) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n      if (param_3 != 0) goto LAB_00016723;\n      goto LAB_000164a7;\n    }\nLAB_00016777:\n    bVar15 = false;\n    iVar5 = 4;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b107;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    if ((!bVar15 && !bVar12) == bVar15) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n      if (param_3 != 0) goto LAB_00016723;\n      goto LAB_000164f6;\n    }\n    iVar5 = strcmp((char *)param_1,"-agent");\n    if ((iVar5 != 0) && (iVar5 = strcmp((char *)param_1,"-pagent"), iVar5 != 0)) goto LAB_0001685f;\nLAB_00016884:\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_0001688c:\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n    if (param_3 != 0) goto LAB_00015c78;\nLAB_000168a1:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-noagent");\n    if (iVar5 != 0) {\n      uVar7 = 1;\n      iVar5 = strcmp((char *)param_1,"-nopagent");\n      if (iVar5 != 0) goto LAB_000165eb;\n      goto LAB_00016e44;\n    }\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\nLAB_000168e1:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-A");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      goto LAB_00016921;\n    }\n    uVar7 = 1;\n    iVar5 = strcmp((char *)param_1,"-a");\n    if (iVar5 == 0) {\nLAB_0001700b:\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\n      goto LAB_00016961;\n    }\nLAB_00016f0f:\n    iVar5 = strcmp((char *)param_1,"-X");\n    if (iVar5 != 0) goto LAB_00016f97;\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_00016f38:\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n    if (param_3 != 0) goto LAB_00015c78;\nLAB_000169a1:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-x");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\nLAB_000169e4:\n      FUN_000183f0();\n      iVar5 = strcmp((char *)param_1,"-t");\n      if (iVar5 == 0) {\n        if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n        goto LAB_00016a27;\n      }\n      uVar7 = 1;\n      iVar5 = strcmp((char *)param_1,"-T");\n      if (iVar5 == 0) goto LAB_0001770d;\nLAB_00017759:\n      iVar5 = strcmp((char *)param_1,"-N");\n      if (iVar5 != 0) goto LAB_00017727;\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_000176cd:\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\n      goto LAB_00016aa7;\n    }\n    uVar7 = 1;\n    iVar5 = strcmp((char *)param_1,"-t");\n    if (iVar5 != 0) goto LAB_000177b1;\nLAB_0001707c:\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n    if (param_3 != 0) goto LAB_00017091;\nLAB_00016a27:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-T");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      goto LAB_00016a67;\n    }\n    uVar7 = 1;\n    iVar5 = strcmp((char *)param_1,"-N");\n    if (iVar5 == 0) goto LAB_000176cd;\nLAB_00017727:\n    iVar5 = strcmp((char *)param_1,"-C");\n    if (iVar5 != 0) goto LAB_00017679;\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_0001762d:\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n    if (param_3 != 0) goto LAB_00015c78;\nLAB_00016ae7:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-1");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\nLAB_00016b27:\n      FUN_000183f0();\n      iVar5 = strcmp((char *)param_1,"-2");\n      if (iVar5 == 0) {\n        if ((DAT_0006f0a0 & 2) != 0) {\nLAB_00015d50:\n          FUN_00044820();\n          return 1;\n        }\n        goto LAB_00016b67;\n      }\n    }\n    else {\n      iVar5 = strcmp((char *)param_1,"-2");\n      if (iVar5 == 0) goto LAB_000175ad;\n    }\n    uVar7 = 1;\n  }\n  iVar5 = strcmp((char *)param_1,"-i");\n  if (iVar5 == 0) {\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n    if (param_3 != 0) goto LAB_00016123;\n    FUN_00041790();\n    FUN_00018770();\n    FUN_00041820();\n    iVar5 = strcmp((char *)param_1,"-4");\n    if ((iVar5 == 0) || (iVar5 = strcmp((char *)param_1,"-ipv4"), iVar5 == 0)) goto LAB_00017485;\n    iVar5 = strcmp((char *)param_1,"-6");\n    if (iVar5 == 0) goto LAB_00016c88;\n    uVar7 = 2;\n    iVar5 = strcmp((char *)param_1,"-ipv6");\njoined_r0x000174dc:\n    if (iVar5 == 0) goto LAB_00016c88;\n  }\n  else {\n    iVar5 = strcmp((char *)param_1,"-4");\n    if ((iVar5 == 0) || (iVar5 = strcmp((char *)param_1,"-ipv4"), iVar5 == 0)) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\nLAB_00017091:\n        FUN_00015950();\n        return 1;\n      }\nLAB_00017485:\n      FUN_000183f0();\n      iVar5 = strcmp((char *)param_1,"-6");\n      if (iVar5 != 0) {\n        uVar7 = 1;\n        iVar5 = strcmp((char *)param_1,"-ipv6");\n        goto joined_r0x000174dc;\n      }\n    }\n    else {\n      iVar5 = strcmp((char *)param_1,"-6");\n      if ((iVar5 != 0) && (iVar5 = strcmp((char *)param_1,"-ipv6"), iVar5 != 0)) goto LAB_00016ca6;\n      if (param_3 < 0) {\n        return 1;\n      }\n      if (param_3 != 0) goto LAB_00017091;\n    }\nLAB_00016c88:\n    uVar7 = 1;\n    FUN_000183f0();\n  }\nLAB_00016ca6:\n  iVar5 = strcmp((char *)param_1,"-sercfg");\n  if (iVar5 == 0) {\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;\n    if (param_3 != 0) {\nLAB_00016723:\n      FUN_00015950();\n      return 2;\n    }\n    iVar5 = FUN_00017cd0();\n    pcVar8 = param_2;\n    if (iVar5 != 4) {\n      FUN_00044820();\n    }\n    for (; *pcVar8 != '\0'; pcVar8 = pcVar8 + iVar10 + iVar5) {\n      pcVar4 = strchr(pcVar8,0x2c);\n      if (pcVar4 == (char *)0x0) {\n        uVar6 = 0xffffffff;\n        iVar5 = 0;\n        pcVar4 = pcVar8;\n        do {\n          if (uVar6 == 0) break;\n          uVar6 = uVar6 - 1;\n          cVar1 = *pcVar4;\n          pcVar4 = pcVar4 + (uint)bVar17 * -2 + 1;\n        } while (cVar1 != '\0');\n        iVar10 = ~uVar6 - 1;\n      }\n      else {\n        *pcVar4 = '\0';\n        iVar5 = 1;\n        iVar10 = (int)pcVar4 - (int)pcVar8;\n      }\n      if (iVar10 == 1) {\n        switch(*pcVar8) {\n        case '1':\n        case '2':\n          FUN_000183f0();\n          break;\n        default:\n          FUN_00044820();\n          break;\n        case '5':\n        case '6':\n        case '7':\n        case '8':\n        case '9':\n          FUN_000183f0();\n          break;\n        case 'D':\n          FUN_000183f0();\n          break;\n        case 'N':\n          FUN_000183f0();\n          break;\n        case 'R':\n          FUN_000183f0();\n          break;\n        case 'X':\n          FUN_000183f0();\n          break;\n        case 'e':\n          FUN_000183f0();\n          break;\n        case 'm':\n          FUN_000183f0();\n          break;\n        case 'n':\n          FUN_000183f0();\n          break;\n        case 'o':\n          FUN_000183f0();\n          break;\n        case 's':\n          FUN_000183f0();\n        }\n      }\n      else if ((iVar10 == 3) && (iVar2 = strncmp(pcVar8,"1.5",3), iVar2 == 0)) {\n        FUN_000183f0();\n      }\n      else {\n        lVar3 = strtol(pcVar8,(char **)0x0,10);\n        if (lVar3 == 0) {\n          FUN_00044820();\n        }\n        else {\n          FUN_000183f0();\n        }\n      }\n    }\n    iVar5 = strcmp((char *)param_1,"-sessionlog");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 1) != 0) goto LAB_000161c3;\n      goto LAB_0001722b;\n    }\n    iVar5 = strcmp((char *)param_1,"-sshlog");\n    if (iVar5 != 0) goto LAB_000173ff;\nLAB_000173c4:\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n    if (param_3 != 0) {\nLAB_00016123:\n      FUN_00015950();\n      return 2;\n    }\n  }\n  else {\n    iVar5 = strcmp((char *)param_1,"-sessionlog");\n    if (iVar5 != 0) {\n      iVar5 = strcmp((char *)param_1,"-sshlog");\n      if (iVar5 != 0) goto LAB_00017404;\nLAB_000173b1:\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      goto LAB_000173c4;\n    }\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    if ((DAT_0006f0a0 & 1) != 0) goto LAB_000161c3;\n    if (param_3 != 0) goto LAB_00016123;\nLAB_0001722b:\n    FUN_00041790();\n    FUN_00018770();\n    FUN_000183f0();\n    FUN_00041820();\n    iVar5 = strcmp((char *)param_1,"-sshlog");\n    if (iVar5 != 0) {\nLAB_000173ff:\n      uVar7 = 2;\nLAB_00017404:\n      iVar5 = strcmp((char *)param_1,"-sshrawlog");\n      if (iVar5 != 0) {\n        iVar5 = strcmp((char *)param_1,"-proxycmd");\n        if (iVar5 != 0) {\n          return uVar7;\n        }\n        if (param_2 == (char *)0x0) {\n          return 0xfffffffe;\n        }\n        if (param_3 < 0) {\n          return 2;\n        }\n        if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n        if (param_3 != 0) goto LAB_00016123;\n        goto LAB_00017304;\n      }\n      goto LAB_000173b1;\n    }\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n  }\n  FUN_00041790();\n  FUN_00018770();\n  strcmp((char *)param_1,"-sshlog");\n  FUN_000183f0();\n  FUN_00041820();\n  iVar5 = strcmp((char *)param_1,"-proxycmd");\n  if (iVar5 != 0) {\n    return 2;\n  }\n  if ((DAT_0006f0a0 & 2) == 0) {\nLAB_00017304:\n    FUN_000183f0();\n    FUN_00018530();\n    return 2;\n  }\nLAB_000161c3:\n  FUN_00044820();\n  return 2;\n}" ({ "{") (declaration "char cVar1;" (primitive_type "char") (identifier "cVar1") (; ";")) (declaration "FILE *__stream;" (type_identifier "FILE") (pointer_declarator "*__stream" (* "*") (identifier "__stream")) (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "long lVar3;" (sized_type_specifier "long" (long "long")) (identifier "lVar3") (; ";")) (declaration "char *pcVar4;" (primitive_type "char") (pointer_declarator "*pcVar4" (* "*") (identifier "pcVar4")) (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "uint uVar6;" (type_identifier "uint") (identifier "uVar6") (; ";")) (declaration "undefined4 uVar7;" (type_identifier "undefined4") (identifier "uVar7") (; ";")) (declaration "char *pcVar8;" (primitive_type "char") (pointer_declarator "*pcVar8" (* "*") (identifier "pcVar8")) (; ";")) (declaration "byte *pbVar9;" (type_identifier "byte") (pointer_declarator "*pbVar9" (* "*") (identifier "pbVar9")) (; ";")) (declaration "int iVar10;" (primitive_type "int") (identifier "iVar10") (; ";")) (declaration "byte *pbVar11;" (type_identifier "byte") (pointer_declarator "*pbVar11" (* "*") (identifier "pbVar11")) (; ";")) (declaration "bool bVar12;" (primitive_type "bool") (identifier "bVar12") (; ";")) (declaration "bool bVar13;" (primitive_type "bool") (identifier "bVar13") (; ";")) (declaration "undefined1 uVar14;" (type_identifier "undefined1") (identifier "uVar14") (; ";")) (declaration "bool bVar15;" (primitive_type "bool") (identifier "bVar15") (; ";")) (declaration "undefined1 uVar16;" (type_identifier "undefined1") (identifier "uVar16") (; ";")) (declaration "byte bVar17;" (type_identifier "byte") (identifier "bVar17") (; ";")) (declaration "undefined1 auStack_2c [8];" (type_identifier "undefined1") (array_declarator "auStack_2c [8]" (identifier "auStack_2c") ([ "[") (number_literal "8") (] "]")) (; ";")) (declaration "int local_24;" (primitive_type "int") (identifier "local_24") (; ";")) (declaration "int local_20;" (primitive_type "int") (identifier "local_20") (; ";")) (declaration "undefined4 uStack_14;" (type_identifier "undefined4") (identifier "uStack_14") (; ";")) (expression_statement "bVar17 = 0;" (assignment_expression "bVar17 = 0" (identifier "bVar17") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar5 = 6;" (assignment_expression "iVar5 = 6" (identifier "iVar5") (= "=") (number_literal "6")) (; ";")) (expression_statement "uStack_14 = 0x15b6e;" (assignment_expression "uStack_14 = 0x15b6e" (identifier "uStack_14") (= "=") (number_literal "0x15b6e")) (; ";")) (expression_statement "bVar12 = &stack0xfffffff0 < (undefined1 *)0x1c;" (assignment_expression "bVar12 = &stack0xfffffff0 < (undefined1 *)0x1c" (identifier "bVar12") (= "=") (binary_expression "&stack0xfffffff0 < (undefined1 *)0x1c" (pointer_expression "&stack0xfffffff0" (& "&") (identifier "stack0xfffffff0")) (< "<") (cast_expression "(undefined1 *)0x1c" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1c")))) (; ";")) (expression_statement "bVar15 = &stack0x00000000 == (undefined1 *)0x2c;" (assignment_expression "bVar15 = &stack0x00000000 == (undefined1 *)0x2c" (identifier "bVar15") (= "=") (binary_expression "&stack0x00000000 == (undefined1 *)0x2c" (pointer_expression "&stack0x00000000" (& "&") (identifier "stack0x00000000")) (== "==") (cast_expression "(undefined1 *)0x2c" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x2c")))) (; ";")) (expression_statement "pbVar9 = param_1;" (assignment_expression "pbVar9 = param_1" (identifier "pbVar9") (= "=") (identifier "param_1")) (; ";")) (expression_statement "pbVar11 = (byte *)"-load";" (assignment_expression "pbVar11 = (byte *)"-load"" (identifier "pbVar11") (= "=") (cast_expression "(byte *)"-load"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal ""-load"" (" """) (string_content "-load") (" """)))) (; ";")) (do_statement "do {\n    if (iVar5 == 0) break;\n    iVar5 = iVar5 + -1;\n    bVar12 = *pbVar9 < *pbVar11;\n    bVar15 = *pbVar9 == *pbVar11;\n    pbVar9 = pbVar9 + 1;\n    pbVar11 = pbVar11 + 1;\n  } while (bVar15);" (do "do") (compound_statement "{\n    if (iVar5 == 0) break;\n    iVar5 = iVar5 + -1;\n    bVar12 = *pbVar9 < *pbVar11;\n    bVar15 = *pbVar9 == *pbVar11;\n    pbVar9 = pbVar9 + 1;\n    pbVar11 = pbVar11 + 1;\n  }" ({ "{") (if_statement "if (iVar5 == 0) break;" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" (identifier "iVar5") (= "=") (binary_expression "iVar5 + -1" (identifier "iVar5") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar12 = *pbVar9 < *pbVar11;" (assignment_expression "bVar12 = *pbVar9 < *pbVar11" (identifier "bVar12") (= "=") (binary_expression "*pbVar9 < *pbVar11" (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")) (< "<") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")))) (; ";")) (expression_statement "bVar15 = *pbVar9 == *pbVar11;" (assignment_expression "bVar15 = *pbVar9 == *pbVar11" (identifier "bVar15") (= "=") (binary_expression "*pbVar9 == *pbVar11" (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")) (== "==") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")))) (; ";")) (expression_statement "pbVar9 = pbVar9 + 1;" (assignment_expression "pbVar9 = pbVar9 + 1" (identifier "pbVar9") (= "=") (binary_expression "pbVar9 + 1" (identifier "pbVar9") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar11 = pbVar11 + 1;" (assignment_expression "pbVar11 = pbVar11 + 1" (identifier "pbVar11") (= "=") (binary_expression "pbVar11 + 1" (identifier "pbVar11") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar15)" (( "(") (identifier "bVar15") () ")")) (; ";")) (expression_statement "bVar13 = false;" (assignment_expression "bVar13 = false" (identifier "bVar13") (= "=") (false "false")) (; ";")) (expression_statement "bVar12 = (!bVar12 && !bVar15) == bVar12;" (assignment_expression "bVar12 = (!bVar12 && !bVar15) == bVar12" (identifier "bVar12") (= "=") (binary_expression "(!bVar12 && !bVar15) == bVar12" (parenthesized_expression "(!bVar12 && !bVar15)" (( "(") (binary_expression "!bVar12 && !bVar15" (unary_expression "!bVar12" (! "!") (identifier "bVar12")) (&& "&&") (unary_expression "!bVar15" (! "!") (identifier "bVar15"))) () ")")) (== "==") (identifier "bVar12"))) (; ";")) (if_statement "if (bVar12) {\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    thunk_FUN_000249b0();\n    DAT_0006f2f4 = 1;\n    DAT_0006f2f8 = FUN_00019990();\n    return 2;\n  }" (if "if") (parenthesized_expression "(bVar12)" (( "(") (identifier "bVar12") () ")")) (compound_statement "{\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    thunk_FUN_000249b0();\n    DAT_0006f2f4 = 1;\n    DAT_0006f2f8 = FUN_00019990();\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 (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 "thunk_FUN_000249b0();" (call_expression "thunk_FUN_000249b0()" (identifier "thunk_FUN_000249b0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "DAT_0006f2f4 = 1;" (assignment_expression "DAT_0006f2f4 = 1" (identifier "DAT_0006f2f4") (= "=") (number_literal "1")) (; ";")) (expression_statement "DAT_0006f2f8 = FUN_00019990();" (assignment_expression "DAT_0006f2f8 = FUN_00019990()" (identifier "DAT_0006f2f8") (= "=") (call_expression "FUN_00019990()" (identifier "FUN_00019990") (argument_list "()" (( "(") () ")")))) (; ";")) (return_statement "return 2;" (return "return") (number_literal "2") (; ";")) (} "}"))) (expression_statement "iVar5 = 5;" (assignment_expression "iVar5 = 5" (identifier "iVar5") (= "=") (number_literal "5")) (; ";")) (expression_statement "pbVar9 = param_1;" (assignment_expression "pbVar9 = param_1" (identifier "pbVar9") (= "=") (identifier "param_1")) (; ";")) (expression_statement "pbVar11 = &DAT_0004b0b5;" (assignment_expression "pbVar11 = &DAT_0004b0b5" (identifier "pbVar11") (= "=") (pointer_expression "&DAT_0004b0b5" (& "&") (identifier "DAT_0004b0b5"))) (; ";")) (do_statement "do {\n    if (iVar5 == 0) break;\n    iVar5 = iVar5 + -1;\n    bVar13 = *pbVar9 < *pbVar11;\n    bVar12 = *pbVar9 == *pbVar11;\n    pbVar9 = pbVar9 + 1;\n    pbVar11 = pbVar11 + 1;\n  } while (bVar12);" (do "do") (compound_statement "{\n    if (iVar5 == 0) break;\n    iVar5 = iVar5 + -1;\n    bVar13 = *pbVar9 < *pbVar11;\n    bVar12 = *pbVar9 == *pbVar11;\n    pbVar9 = pbVar9 + 1;\n    pbVar11 = pbVar11 + 1;\n  }" ({ "{") (if_statement "if (iVar5 == 0) break;" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" (identifier "iVar5") (= "=") (binary_expression "iVar5 + -1" (identifier "iVar5") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar13 = *pbVar9 < *pbVar11;" (assignment_expression "bVar13 = *pbVar9 < *pbVar11" (identifier "bVar13") (= "=") (binary_expression "*pbVar9 < *pbVar11" (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")) (< "<") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")))) (; ";")) (expression_statement "bVar12 = *pbVar9 == *pbVar11;" (assignment_expression "bVar12 = *pbVar9 == *pbVar11" (identifier "bVar12") (= "=") (binary_expression "*pbVar9 == *pbVar11" (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")) (== "==") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")))) (; ";")) (expression_statement "pbVar9 = pbVar9 + 1;" (assignment_expression "pbVar9 = pbVar9 + 1" (identifier "pbVar9") (= "=") (binary_expression "pbVar9 + 1" (identifier "pbVar9") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar11 = pbVar11 + 1;" (assignment_expression "pbVar11 = pbVar11 + 1" (identifier "pbVar11") (= "=") (binary_expression "pbVar11 + 1" (identifier "pbVar11") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar12)" (( "(") (identifier "bVar12") () ")")) (; ";")) (expression_statement "bVar15 = false;" (assignment_expression "bVar15 = false" (identifier "bVar15") (= "=") (false "false")) (; ";")) (expression_statement "bVar12 = (!bVar13 && !bVar12) == bVar13;" (assignment_expression "bVar12 = (!bVar13 && !bVar12) == bVar13" (identifier "bVar12") (= "=") (binary_expression "(!bVar13 && !bVar12) == bVar13" (parenthesized_expression "(!bVar13 && !bVar12)" (( "(") (binary_expression "!bVar13 && !bVar12" (unary_expression "!bVar13" (! "!") (identifier "bVar13")) (&& "&&") (unary_expression "!bVar12" (! "!") (identifier "bVar12"))) () ")")) (== "==") (identifier "bVar13"))) (; ";")) (if_statement "if (bVar12) {\n    if (param_3 < 0) {\n      return 1;\n    }\n    if ((DAT_0006f0a0 & 3) == 0) {\n      if (param_3 == 0) {\n        DAT_0006f2dc = 3;\n        DAT_0006f2e4 = 0x16;\nLAB_00015c0d:\n        FUN_000183f0();\n        FUN_000183f0();\n        return 1;\n      }\n      goto LAB_00015c78;\n    }\n    goto LAB_00015d50;\n  }" (if "if") (parenthesized_expression "(bVar12)" (( "(") (identifier "bVar12") () ")")) (compound_statement "{\n    if (param_3 < 0) {\n      return 1;\n    }\n    if ((DAT_0006f0a0 & 3) == 0) {\n      if (param_3 == 0) {\n        DAT_0006f2dc = 3;\n        DAT_0006f2e4 = 0x16;\nLAB_00015c0d:\n        FUN_000183f0();\n        FUN_000183f0();\n        return 1;\n      }\n      goto LAB_00015c78;\n    }\n    goto LAB_00015d50;\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 ((DAT_0006f0a0 & 3) == 0) {\n      if (param_3 == 0) {\n        DAT_0006f2dc = 3;\n        DAT_0006f2e4 = 0x16;\nLAB_00015c0d:\n        FUN_000183f0();\n        FUN_000183f0();\n        return 1;\n      }\n      goto LAB_00015c78;\n    }" (if "if") (parenthesized_expression "((DAT_0006f0a0 & 3) == 0)" (( "(") (binary_expression "(DAT_0006f0a0 & 3) == 0" (parenthesized_expression "(DAT_0006f0a0 & 3)" (( "(") (binary_expression "DAT_0006f0a0 & 3" (identifier "DAT_0006f0a0") (& "&") (number_literal "3")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      if (param_3 == 0) {\n        DAT_0006f2dc = 3;\n        DAT_0006f2e4 = 0x16;\nLAB_00015c0d:\n        FUN_000183f0();\n        FUN_000183f0();\n        return 1;\n      }\n      goto LAB_00015c78;\n    }" ({ "{") (if_statement "if (param_3 == 0) {\n        DAT_0006f2dc = 3;\n        DAT_0006f2e4 = 0x16;\nLAB_00015c0d:\n        FUN_000183f0();\n        FUN_000183f0();\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_0006f2dc = 3;\n        DAT_0006f2e4 = 0x16;\nLAB_00015c0d:\n        FUN_000183f0();\n        FUN_000183f0();\n        return 1;\n      }" ({ "{") (expression_statement "DAT_0006f2dc = 3;" (assignment_expression "DAT_0006f2dc = 3" (identifier "DAT_0006f2dc") (= "=") (number_literal "3")) (; ";")) (expression_statement "DAT_0006f2e4 = 0x16;" (assignment_expression "DAT_0006f2e4 = 0x16" (identifier "DAT_0006f2e4") (= "=") (number_literal "0x16")) (; ";")) (labeled_statement "LAB_00015c0d:\n        FUN_000183f0();" (statement_identifier "LAB_00015c0d") (: ":") (expression_statement "FUN_000183f0();" (call_expression "FUN_000183f0()" (identifier "FUN_000183f0") (argument_list "()" (( "(") () ")"))) (; ";"))) (expression_statement "FUN_000183f0();" (call_expression "FUN_000183f0()" (identifier "FUN_000183f0") (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (goto_statement "goto LAB_00015c78;" (goto "goto") (statement_identifier "LAB_00015c78") (; ";")) (} "}"))) (goto_statement "goto LAB_00015d50;" (goto "goto") (statement_identifier "LAB_00015d50") (; ";")) (} "}"))) (expression_statement "iVar5 = 8;" (assignment_expression "iVar5 = 8" (identifier "iVar5") (= "=") (number_literal "8")) (; ";")) (expression_statement "pbVar9 = param_1;" (assignment_expression "pbVar9 = param_1" (identifier "pbVar9") (= "=") (identifier "param_1")) (; ";")) (expression_statement "pbVar11 = (byte *)"-telnet";" (assignment_expression "pbVar11 = (byte *)"-telnet"" (identifier "pbVar11") (= "=") (cast_expression "(byte *)"-telnet"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal ""-telnet"" (" """) (string_content "-telnet") (" """)))) (; ";")) (do_statement "do {\n    if (iVar5 == 0) break;\n    iVar5 = iVar5 + -1;\n    bVar15 = *pbVar9 < *pbVar11;\n    bVar12 = *pbVar9 == *pbVar11;\n    pbVar9 = pbVar9 + 1;\n    pbVar11 = pbVar11 + 1;\n  } while (bVar12);" (do "do") (compound_statement "{\n    if (iVar5 == 0) break;\n    iVar5 = iVar5 + -1;\n    bVar15 = *pbVar9 < *pbVar11;\n    bVar12 = *pbVar9 == *pbVar11;\n    pbVar9 = pbVar9 + 1;\n    pbVar11 = pbVar11 + 1;\n  }" ({ "{") (if_statement "if (iVar5 == 0) break;" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" (identifier "iVar5") (= "=") (binary_expression "iVar5 + -1" (identifier "iVar5") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar15 = *pbVar9 < *pbVar11;" (assignment_expression "bVar15 = *pbVar9 < *pbVar11" (identifier "bVar15") (= "=") (binary_expression "*pbVar9 < *pbVar11" (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")) (< "<") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")))) (; ";")) (expression_statement "bVar12 = *pbVar9 == *pbVar11;" (assignment_expression "bVar12 = *pbVar9 == *pbVar11" (identifier "bVar12") (= "=") (binary_expression "*pbVar9 == *pbVar11" (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")) (== "==") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")))) (; ";")) (expression_statement "pbVar9 = pbVar9 + 1;" (assignment_expression "pbVar9 = pbVar9 + 1" (identifier "pbVar9") (= "=") (binary_expression "pbVar9 + 1" (identifier "pbVar9") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar11 = pbVar11 + 1;" (assignment_expression "pbVar11 = pbVar11 + 1" (identifier "pbVar11") (= "=") (binary_expression "pbVar11 + 1" (identifier "pbVar11") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar12)" (( "(") (identifier "bVar12") () ")")) (; ";")) (expression_statement "bVar13 = false;" (assignment_expression "bVar13 = false" (identifier "bVar13") (= "=") (false "false")) (; ";")) (expression_statement "bVar12 = (!bVar15 && !bVar12) == bVar15;" (assignment_expression "bVar12 = (!bVar15 && !bVar12) == bVar15" (identifier "bVar12") (= "=") (binary_expression "(!bVar15 && !bVar12) == bVar15" (parenthesized_expression "(!bVar15 && !bVar12)" (( "(") (binary_expression "!bVar15 && !bVar12" (unary_expression "!bVar15" (! "!") (identifier "bVar15")) (&& "&&") (unary_expression "!bVar12" (! "!") (identifier "bVar12"))) () ")")) (== "==") (identifier "bVar15"))) (; ";")) (if_statement "if (bVar12) {\n    if (param_3 < 0) {\n      return 1;\n    }\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n    if (param_3 == 0) {\n      DAT_0006f2dc = 1;\n      DAT_0006f2e4 = 0x17;\n      goto LAB_00015c0d;\n    }\n    goto LAB_00015c78;\n  }" (if "if") (parenthesized_expression "(bVar12)" (( "(") (identifier "bVar12") () ")")) (compound_statement "{\n    if (param_3 < 0) {\n      return 1;\n    }\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n    if (param_3 == 0) {\n      DAT_0006f2dc = 1;\n      DAT_0006f2e4 = 0x17;\n      goto LAB_00015c0d;\n    }\n    goto LAB_00015c78;\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 ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;" (if "if") (parenthesized_expression "((DAT_0006f0a0 & 3) != 0)" (( "(") (binary_expression "(DAT_0006f0a0 & 3) != 0" (parenthesized_expression "(DAT_0006f0a0 & 3)" (( "(") (binary_expression "DAT_0006f0a0 & 3" (identifier "DAT_0006f0a0") (& "&") (number_literal "3")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00015d50;" (goto "goto") (statement_identifier "LAB_00015d50") (; ";"))) (if_statement "if (param_3 == 0) {\n      DAT_0006f2dc = 1;\n      DAT_0006f2e4 = 0x17;\n      goto LAB_00015c0d;\n    }" (if "if") (parenthesized_expression "(param_3 == 0)" (( "(") (binary_expression "param_3 == 0" (identifier "param_3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      DAT_0006f2dc = 1;\n      DAT_0006f2e4 = 0x17;\n      goto LAB_00015c0d;\n    }" ({ "{") (expression_statement "DAT_0006f2dc = 1;" (assignment_expression "DAT_0006f2dc = 1" (identifier "DAT_0006f2dc") (= "=") (number_literal "1")) (; ";")) (expression_statement "DAT_0006f2e4 = 0x17;" (assignment_expression "DAT_0006f2e4 = 0x17" (identifier "DAT_0006f2e4") (= "=") (number_literal "0x17")) (; ";")) (goto_statement "goto LAB_00015c0d;" (goto "goto") (statement_identifier "LAB_00015c0d") (; ";")) (} "}"))) (goto_statement "goto LAB_00015c78;" (goto "goto") (statement_identifier "LAB_00015c78") (; ";")) (} "}"))) (expression_statement "iVar5 = 8;" (assignment_expression "iVar5 = 8" (identifier "iVar5") (= "=") (number_literal "8")) (; ";")) (expression_statement "pbVar9 = param_1;" (assignment_expression "pbVar9 = param_1" (identifier "pbVar9") (= "=") (identifier "param_1")) (; ";")) (expression_statement "pbVar11 = (byte *)"-rlogin";" (assignment_expression "pbVar11 = (byte *)"-rlogin"" (identifier "pbVar11") (= "=") (cast_expression "(byte *)"-rlogin"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal ""-rlogin"" (" """) (string_content "-rlogin") (" """)))) (; ";")) (do_statement "do {\n    if (iVar5 == 0) break;\n    iVar5 = iVar5 + -1;\n    bVar13 = *pbVar9 < *pbVar11;\n    bVar12 = *pbVar9 == *pbVar11;\n    pbVar9 = pbVar9 + 1;\n    pbVar11 = pbVar11 + 1;\n  } while (bVar12);" (do "do") (compound_statement "{\n    if (iVar5 == 0) break;\n    iVar5 = iVar5 + -1;\n    bVar13 = *pbVar9 < *pbVar11;\n    bVar12 = *pbVar9 == *pbVar11;\n    pbVar9 = pbVar9 + 1;\n    pbVar11 = pbVar11 + 1;\n  }" ({ "{") (if_statement "if (iVar5 == 0) break;" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" (identifier "iVar5") (= "=") (binary_expression "iVar5 + -1" (identifier "iVar5") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar13 = *pbVar9 < *pbVar11;" (assignment_expression "bVar13 = *pbVar9 < *pbVar11" (identifier "bVar13") (= "=") (binary_expression "*pbVar9 < *pbVar11" (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")) (< "<") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")))) (; ";")) (expression_statement "bVar12 = *pbVar9 == *pbVar11;" (assignment_expression "bVar12 = *pbVar9 == *pbVar11" (identifier "bVar12") (= "=") (binary_expression "*pbVar9 == *pbVar11" (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")) (== "==") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")))) (; ";")) (expression_statement "pbVar9 = pbVar9 + 1;" (assignment_expression "pbVar9 = pbVar9 + 1" (identifier "pbVar9") (= "=") (binary_expression "pbVar9 + 1" (identifier "pbVar9") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar11 = pbVar11 + 1;" (assignment_expression "pbVar11 = pbVar11 + 1" (identifier "pbVar11") (= "=") (binary_expression "pbVar11 + 1" (identifier "pbVar11") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar12)" (( "(") (identifier "bVar12") () ")")) (; ";")) (expression_statement "bVar15 = false;" (assignment_expression "bVar15 = false" (identifier "bVar15") (= "=") (false "false")) (; ";")) (expression_statement "bVar12 = (!bVar13 && !bVar12) == bVar13;" (assignment_expression "bVar12 = (!bVar13 && !bVar12) == bVar13" (identifier "bVar12") (= "=") (binary_expression "(!bVar13 && !bVar12) == bVar13" (parenthesized_expression "(!bVar13 && !bVar12)" (( "(") (binary_expression "!bVar13 && !bVar12" (unary_expression "!bVar13" (! "!") (identifier "bVar13")) (&& "&&") (unary_expression "!bVar12" (! "!") (identifier "bVar12"))) () ")")) (== "==") (identifier "bVar13"))) (; ";")) (if_statement "if (bVar12) {\n    if (param_3 < 0) {\n      return 1;\n    }\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n    if (param_3 == 0) {\n      DAT_0006f2dc = 2;\n      DAT_0006f2e4 = 0x201;\n      goto LAB_00015c0d;\n    }\n    goto LAB_00015c78;\n  }" (if "if") (parenthesized_expression "(bVar12)" (( "(") (identifier "bVar12") () ")")) (compound_statement "{\n    if (param_3 < 0) {\n      return 1;\n    }\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n    if (param_3 == 0) {\n      DAT_0006f2dc = 2;\n      DAT_0006f2e4 = 0x201;\n      goto LAB_00015c0d;\n    }\n    goto LAB_00015c78;\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 ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;" (if "if") (parenthesized_expression "((DAT_0006f0a0 & 3) != 0)" (( "(") (binary_expression "(DAT_0006f0a0 & 3) != 0" (parenthesized_expression "(DAT_0006f0a0 & 3)" (( "(") (binary_expression "DAT_0006f0a0 & 3" (identifier "DAT_0006f0a0") (& "&") (number_literal "3")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00015d50;" (goto "goto") (statement_identifier "LAB_00015d50") (; ";"))) (if_statement "if (param_3 == 0) {\n      DAT_0006f2dc = 2;\n      DAT_0006f2e4 = 0x201;\n      goto LAB_00015c0d;\n    }" (if "if") (parenthesized_expression "(param_3 == 0)" (( "(") (binary_expression "param_3 == 0" (identifier "param_3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      DAT_0006f2dc = 2;\n      DAT_0006f2e4 = 0x201;\n      goto LAB_00015c0d;\n    }" ({ "{") (expression_statement "DAT_0006f2dc = 2;" (assignment_expression "DAT_0006f2dc = 2" (identifier "DAT_0006f2dc") (= "=") (number_literal "2")) (; ";")) (expression_statement "DAT_0006f2e4 = 0x201;" (assignment_expression "DAT_0006f2e4 = 0x201" (identifier "DAT_0006f2e4") (= "=") (number_literal "0x201")) (; ";")) (goto_statement "goto LAB_00015c0d;" (goto "goto") (statement_identifier "LAB_00015c0d") (; ";")) (} "}"))) (goto_statement "goto LAB_00015c78;" (goto "goto") (statement_identifier "LAB_00015c78") (; ";")) (} "}"))) (expression_statement "iVar5 = 5;" (assignment_expression "iVar5 = 5" (identifier "iVar5") (= "=") (number_literal "5")) (; ";")) (expression_statement "pbVar9 = param_1;" (assignment_expression "pbVar9 = param_1" (identifier "pbVar9") (= "=") (identifier "param_1")) (; ";")) (expression_statement "pbVar11 = &DAT_0004b0ca;" (assignment_expression "pbVar11 = &DAT_0004b0ca" (identifier "pbVar11") (= "=") (pointer_expression "&DAT_0004b0ca" (& "&") (identifier "DAT_0004b0ca"))) (; ";")) (do_statement "do {\n    if (iVar5 == 0) break;\n    iVar5 = iVar5 + -1;\n    bVar15 = *pbVar9 < *pbVar11;\n    bVar12 = *pbVar9 == *pbVar11;\n    pbVar9 = pbVar9 + 1;\n    pbVar11 = pbVar11 + 1;\n  } while (bVar12);" (do "do") (compound_statement "{\n    if (iVar5 == 0) break;\n    iVar5 = iVar5 + -1;\n    bVar15 = *pbVar9 < *pbVar11;\n    bVar12 = *pbVar9 == *pbVar11;\n    pbVar9 = pbVar9 + 1;\n    pbVar11 = pbVar11 + 1;\n  }" ({ "{") (if_statement "if (iVar5 == 0) break;" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" (identifier "iVar5") (= "=") (binary_expression "iVar5 + -1" (identifier "iVar5") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar15 = *pbVar9 < *pbVar11;" (assignment_expression "bVar15 = *pbVar9 < *pbVar11" (identifier "bVar15") (= "=") (binary_expression "*pbVar9 < *pbVar11" (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")) (< "<") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")))) (; ";")) (expression_statement "bVar12 = *pbVar9 == *pbVar11;" (assignment_expression "bVar12 = *pbVar9 == *pbVar11" (identifier "bVar12") (= "=") (binary_expression "*pbVar9 == *pbVar11" (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")) (== "==") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")))) (; ";")) (expression_statement "pbVar9 = pbVar9 + 1;" (assignment_expression "pbVar9 = pbVar9 + 1" (identifier "pbVar9") (= "=") (binary_expression "pbVar9 + 1" (identifier "pbVar9") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar11 = pbVar11 + 1;" (assignment_expression "pbVar11 = pbVar11 + 1" (identifier "pbVar11") (= "=") (binary_expression "pbVar11 + 1" (identifier "pbVar11") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar12)" (( "(") (identifier "bVar12") () ")")) (; ";")) (expression_statement "bVar13 = false;" (assignment_expression "bVar13 = false" (identifier "bVar13") (= "=") (false "false")) (; ";")) (expression_statement "bVar12 = (!bVar15 && !bVar12) == bVar15;" (assignment_expression "bVar12 = (!bVar15 && !bVar12) == bVar15" (identifier "bVar12") (= "=") (binary_expression "(!bVar15 && !bVar12) == bVar15" (parenthesized_expression "(!bVar15 && !bVar12)" (( "(") (binary_expression "!bVar15 && !bVar12" (unary_expression "!bVar15" (! "!") (identifier "bVar15")) (&& "&&") (unary_expression "!bVar12" (! "!") (identifier "bVar12"))) () ")")) (== "==") (identifier "bVar15"))) (; ";")) (if_statement "if (bVar12) {\n    if (param_3 < 0) {\n      return 1;\n    }\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n    if (param_3 != 0) goto LAB_00015c78;\n    uVar14 = auStack_2c < (undefined1 *)0x4;\n    uVar16 = &stack0x00000000 == (undefined1 *)0x30;\n    DAT_0006f2dc = 0;\n    FUN_000183f0();\n    iVar5 = 8;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)"-serial";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);\n    bVar12 = false;\n    bVar15 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n    if (bVar15) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      goto LAB_00015dd0;\n    }\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b0d7;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar12 = *pbVar9 < *pbVar11;\n      bVar15 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar15);\n    bVar12 = (!bVar12 && !bVar15) == bVar12;\n    if (bVar12) goto LAB_00015e28;\nLAB_00015e31:\n    uVar7 = 1;\n  }\n  else {\n    iVar5 = 8;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)"-serial";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar13 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + 1;\n      pbVar11 = pbVar11 + 1;\n    } while (bVar12);\n    bVar15 = false;\n    bVar12 = (!bVar13 && !bVar12) == bVar13;\n    if (bVar12) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\nLAB_00015dd0:\n      DAT_0006f2dc = 4;\n      FUN_000183f0();\n      FUN_00017e80();\n      uVar14 = (undefined1 *)0xfffffff3 < &stack0xffffffc4;\n      uVar16 = &stack0x00000000 == (undefined1 *)0x30;\n      FUN_00018530();\n      iVar5 = 3;\n      pbVar9 = param_1;\n      pbVar11 = &DAT_0004b0d7;\n      do {\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        uVar14 = *pbVar9 < *pbVar11;\n        uVar16 = *pbVar9 == *pbVar11;\n        pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n      } while ((bool)uVar16);\n      bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n      if (bVar12) goto LAB_00015e28;\n      goto LAB_00015e31;\n    }\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b0d7;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + 1;\n      pbVar11 = pbVar11 + 1;\n    } while (bVar12);\n    if ((!bVar15 && !bVar12) == bVar15) {\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_00015e28:\n      DAT_0006f2e8 = DAT_0006f2e8 | 1;\n      bVar12 = DAT_0006f2e8 == 0;\n      goto LAB_00015e31;\n    }\n    uVar7 = 0;\n    bVar12 = true;\n  }" (if "if") (parenthesized_expression "(bVar12)" (( "(") (identifier "bVar12") () ")")) (compound_statement "{\n    if (param_3 < 0) {\n      return 1;\n    }\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n    if (param_3 != 0) goto LAB_00015c78;\n    uVar14 = auStack_2c < (undefined1 *)0x4;\n    uVar16 = &stack0x00000000 == (undefined1 *)0x30;\n    DAT_0006f2dc = 0;\n    FUN_000183f0();\n    iVar5 = 8;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)"-serial";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);\n    bVar12 = false;\n    bVar15 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n    if (bVar15) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      goto LAB_00015dd0;\n    }\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b0d7;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar12 = *pbVar9 < *pbVar11;\n      bVar15 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar15);\n    bVar12 = (!bVar12 && !bVar15) == bVar12;\n    if (bVar12) goto LAB_00015e28;\nLAB_00015e31:\n    uVar7 = 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") (; ";")) (} "}"))) (if_statement "if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;" (if "if") (parenthesized_expression "((DAT_0006f0a0 & 3) != 0)" (( "(") (binary_expression "(DAT_0006f0a0 & 3) != 0" (parenthesized_expression "(DAT_0006f0a0 & 3)" (( "(") (binary_expression "DAT_0006f0a0 & 3" (identifier "DAT_0006f0a0") (& "&") (number_literal "3")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00015d50;" (goto "goto") (statement_identifier "LAB_00015d50") (; ";"))) (if_statement "if (param_3 != 0) goto LAB_00015c78;" (if "if") (parenthesized_expression "(param_3 != 0)" (( "(") (binary_expression "param_3 != 0" (identifier "param_3") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00015c78;" (goto "goto") (statement_identifier "LAB_00015c78") (; ";"))) (expression_statement "uVar14 = auStack_2c < (undefined1 *)0x4;" (assignment_expression "uVar14 = auStack_2c < (undefined1 *)0x4" (identifier "uVar14") (= "=") (binary_expression "auStack_2c < (undefined1 *)0x4" (identifier "auStack_2c") (< "<") (cast_expression "(undefined1 *)0x4" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x4")))) (; ";")) (expression_statement "uVar16 = &stack0x00000000 == (undefined1 *)0x30;" (assignment_expression "uVar16 = &stack0x00000000 == (undefined1 *)0x30" (identifier "uVar16") (= "=") (binary_expression "&stack0x00000000 == (undefined1 *)0x30" (pointer_expression "&stack0x00000000" (& "&") (identifier "stack0x00000000")) (== "==") (cast_expression "(undefined1 *)0x30" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x30")))) (; ";")) (expression_statement "DAT_0006f2dc = 0;" (assignment_expression "DAT_0006f2dc = 0" (identifier "DAT_0006f2dc") (= "=") (number_literal "0")) (; ";")) (expression_statement "FUN_000183f0();" (call_expression "FUN_000183f0()" (identifier "FUN_000183f0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar5 = 8;" (assignment_expression "iVar5 = 8" (identifier "iVar5") (= "=") (number_literal "8")) (; ";")) (expression_statement "pbVar9 = param_1;" (assignment_expression "pbVar9 = param_1" (identifier "pbVar9") (= "=") (identifier "param_1")) (; ";")) (expression_statement "pbVar11 = (byte *)"-serial";" (assignment_expression "pbVar11 = (byte *)"-serial"" (identifier "pbVar11") (= "=") (cast_expression "(byte *)"-serial"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal ""-serial"" (" """) (string_content "-serial") (" """)))) (; ";")) (do_statement "do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);" (do "do") (compound_statement "{\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    }" ({ "{") (if_statement "if (iVar5 == 0) break;" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" (identifier "iVar5") (= "=") (binary_expression "iVar5 + -1" (identifier "iVar5") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "uVar14 = *pbVar9 < *pbVar11;" (assignment_expression "uVar14 = *pbVar9 < *pbVar11" (identifier "uVar14") (= "=") (binary_expression "*pbVar9 < *pbVar11" (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")) (< "<") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")))) (; ";")) (expression_statement "uVar16 = *pbVar9 == *pbVar11;" (assignment_expression "uVar16 = *pbVar9 == *pbVar11" (identifier "uVar16") (= "=") (binary_expression "*pbVar9 == *pbVar11" (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")) (== "==") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")))) (; ";")) (expression_statement "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1" (identifier "pbVar9") (= "=") (binary_expression "pbVar9 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar17 * -2" (identifier "pbVar9") (+ "+") (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar17")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1" (identifier "pbVar11") (= "=") (binary_expression "pbVar11 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar17 * -2" (identifier "pbVar11") (+ "+") (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar17")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((bool)uVar16)" (( "(") (cast_expression "(bool)uVar16" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar16")) () ")")) (; ";")) (expression_statement "bVar12 = false;" (assignment_expression "bVar12 = false" (identifier "bVar12") (= "=") (false "false")) (; ";")) (expression_statement "bVar15 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;" (assignment_expression "bVar15 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14" (identifier "bVar15") (= "=") (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 "bool")) () ")") (identifier "uVar14"))) (&& "&&") (unary_expression "!(bool)uVar16" (! "!") (cast_expression "(bool)uVar16" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar16")))) () ")")) (== "==") (cast_expression "(bool)uVar14" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar14")))) (; ";")) (if_statement "if (bVar15) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      goto LAB_00015dd0;\n    }" (if "if") (parenthesized_expression "(bVar15)" (( "(") (identifier "bVar15") () ")")) (compound_statement "{\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      goto LAB_00015dd0;\n    }" ({ "{") (if_statement "if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;" (if "if") (parenthesized_expression "((DAT_0006f0a0 & 3) != 0)" (( "(") (binary_expression "(DAT_0006f0a0 & 3) != 0" (parenthesized_expression "(DAT_0006f0a0 & 3)" (( "(") (binary_expression "DAT_0006f0a0 & 3" (identifier "DAT_0006f0a0") (& "&") (number_literal "3")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00015d50;" (goto "goto") (statement_identifier "LAB_00015d50") (; ";"))) (goto_statement "goto LAB_00015dd0;" (goto "goto") (statement_identifier "LAB_00015dd0") (; ";")) (} "}"))) (expression_statement "iVar5 = 3;" (assignment_expression "iVar5 = 3" (identifier "iVar5") (= "=") (number_literal "3")) (; ";")) (expression_statement "pbVar9 = param_1;" (assignment_expression "pbVar9 = param_1" (identifier "pbVar9") (= "=") (identifier "param_1")) (; ";")) (expression_statement "pbVar11 = &DAT_0004b0d7;" (assignment_expression "pbVar11 = &DAT_0004b0d7" (identifier "pbVar11") (= "=") (pointer_expression "&DAT_0004b0d7" (& "&") (identifier "DAT_0004b0d7"))) (; ";")) (do_statement "do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar12 = *pbVar9 < *pbVar11;\n      bVar15 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar15);" (do "do") (compound_statement "{\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar12 = *pbVar9 < *pbVar11;\n      bVar15 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    }" ({ "{") (if_statement "if (iVar5 == 0) break;" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" (identifier "iVar5") (= "=") (binary_expression "iVar5 + -1" (identifier "iVar5") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar12 = *pbVar9 < *pbVar11;" (assignment_expression "bVar12 = *pbVar9 < *pbVar11" (identifier "bVar12") (= "=") (binary_expression "*pbVar9 < *pbVar11" (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")) (< "<") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")))) (; ";")) (expression_statement "bVar15 = *pbVar9 == *pbVar11;" (assignment_expression "bVar15 = *pbVar9 == *pbVar11" (identifier "bVar15") (= "=") (binary_expression "*pbVar9 == *pbVar11" (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")) (== "==") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")))) (; ";")) (expression_statement "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1" (identifier "pbVar9") (= "=") (binary_expression "pbVar9 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar17 * -2" (identifier "pbVar9") (+ "+") (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar17")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1" (identifier "pbVar11") (= "=") (binary_expression "pbVar11 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar17 * -2" (identifier "pbVar11") (+ "+") (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar17")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar15)" (( "(") (identifier "bVar15") () ")")) (; ";")) (expression_statement "bVar12 = (!bVar12 && !bVar15) == bVar12;" (assignment_expression "bVar12 = (!bVar12 && !bVar15) == bVar12" (identifier "bVar12") (= "=") (binary_expression "(!bVar12 && !bVar15) == bVar12" (parenthesized_expression "(!bVar12 && !bVar15)" (( "(") (binary_expression "!bVar12 && !bVar15" (unary_expression "!bVar12" (! "!") (identifier "bVar12")) (&& "&&") (unary_expression "!bVar15" (! "!") (identifier "bVar15"))) () ")")) (== "==") (identifier "bVar12"))) (; ";")) (if_statement "if (bVar12) goto LAB_00015e28;" (if "if") (parenthesized_expression "(bVar12)" (( "(") (identifier "bVar12") () ")")) (goto_statement "goto LAB_00015e28;" (goto "goto") (statement_identifier "LAB_00015e28") (; ";"))) (labeled_statement "LAB_00015e31:\n    uVar7 = 1;" (statement_identifier "LAB_00015e31") (: ":") (expression_statement "uVar7 = 1;" (assignment_expression "uVar7 = 1" (identifier "uVar7") (= "=") (number_literal "1")) (; ";"))) (} "}")) (else_clause "else {\n    iVar5 = 8;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)"-serial";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar13 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + 1;\n      pbVar11 = pbVar11 + 1;\n    } while (bVar12);\n    bVar15 = false;\n    bVar12 = (!bVar13 && !bVar12) == bVar13;\n    if (bVar12) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\nLAB_00015dd0:\n      DAT_0006f2dc = 4;\n      FUN_000183f0();\n      FUN_00017e80();\n      uVar14 = (undefined1 *)0xfffffff3 < &stack0xffffffc4;\n      uVar16 = &stack0x00000000 == (undefined1 *)0x30;\n      FUN_00018530();\n      iVar5 = 3;\n      pbVar9 = param_1;\n      pbVar11 = &DAT_0004b0d7;\n      do {\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        uVar14 = *pbVar9 < *pbVar11;\n        uVar16 = *pbVar9 == *pbVar11;\n        pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n      } while ((bool)uVar16);\n      bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n      if (bVar12) goto LAB_00015e28;\n      goto LAB_00015e31;\n    }\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b0d7;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + 1;\n      pbVar11 = pbVar11 + 1;\n    } while (bVar12);\n    if ((!bVar15 && !bVar12) == bVar15) {\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_00015e28:\n      DAT_0006f2e8 = DAT_0006f2e8 | 1;\n      bVar12 = DAT_0006f2e8 == 0;\n      goto LAB_00015e31;\n    }\n    uVar7 = 0;\n    bVar12 = true;\n  }" (else "else") (compound_statement "{\n    iVar5 = 8;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)"-serial";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar13 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + 1;\n      pbVar11 = pbVar11 + 1;\n    } while (bVar12);\n    bVar15 = false;\n    bVar12 = (!bVar13 && !bVar12) == bVar13;\n    if (bVar12) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\nLAB_00015dd0:\n      DAT_0006f2dc = 4;\n      FUN_000183f0();\n      FUN_00017e80();\n      uVar14 = (undefined1 *)0xfffffff3 < &stack0xffffffc4;\n      uVar16 = &stack0x00000000 == (undefined1 *)0x30;\n      FUN_00018530();\n      iVar5 = 3;\n      pbVar9 = param_1;\n      pbVar11 = &DAT_0004b0d7;\n      do {\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        uVar14 = *pbVar9 < *pbVar11;\n        uVar16 = *pbVar9 == *pbVar11;\n        pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n      } while ((bool)uVar16);\n      bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n      if (bVar12) goto LAB_00015e28;\n      goto LAB_00015e31;\n    }\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b0d7;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + 1;\n      pbVar11 = pbVar11 + 1;\n    } while (bVar12);\n    if ((!bVar15 && !bVar12) == bVar15) {\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_00015e28:\n      DAT_0006f2e8 = DAT_0006f2e8 | 1;\n      bVar12 = DAT_0006f2e8 == 0;\n      goto LAB_00015e31;\n    }\n    uVar7 = 0;\n    bVar12 = true;\n  }" ({ "{") (expression_statement "iVar5 = 8;" (assignment_expression "iVar5 = 8" (identifier "iVar5") (= "=") (number_literal "8")) (; ";")) (expression_statement "pbVar9 = param_1;" (assignment_expression "pbVar9 = param_1" (identifier "pbVar9") (= "=") (identifier "param_1")) (; ";")) (expression_statement "pbVar11 = (byte *)"-serial";" (assignment_expression "pbVar11 = (byte *)"-serial"" (identifier "pbVar11") (= "=") (cast_expression "(byte *)"-serial"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal ""-serial"" (" """) (string_content "-serial") (" """)))) (; ";")) (do_statement "do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar13 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + 1;\n      pbVar11 = pbVar11 + 1;\n    } while (bVar12);" (do "do") (compound_statement "{\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar13 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + 1;\n      pbVar11 = pbVar11 + 1;\n    }" ({ "{") (if_statement "if (iVar5 == 0) break;" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" (identifier "iVar5") (= "=") (binary_expression "iVar5 + -1" (identifier "iVar5") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar13 = *pbVar9 < *pbVar11;" (assignment_expression "bVar13 = *pbVar9 < *pbVar11" (identifier "bVar13") (= "=") (binary_expression "*pbVar9 < *pbVar11" (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")) (< "<") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")))) (; ";")) (expression_statement "bVar12 = *pbVar9 == *pbVar11;" (assignment_expression "bVar12 = *pbVar9 == *pbVar11" (identifier "bVar12") (= "=") (binary_expression "*pbVar9 == *pbVar11" (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")) (== "==") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")))) (; ";")) (expression_statement "pbVar9 = pbVar9 + 1;" (assignment_expression "pbVar9 = pbVar9 + 1" (identifier "pbVar9") (= "=") (binary_expression "pbVar9 + 1" (identifier "pbVar9") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar11 = pbVar11 + 1;" (assignment_expression "pbVar11 = pbVar11 + 1" (identifier "pbVar11") (= "=") (binary_expression "pbVar11 + 1" (identifier "pbVar11") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar12)" (( "(") (identifier "bVar12") () ")")) (; ";")) (expression_statement "bVar15 = false;" (assignment_expression "bVar15 = false" (identifier "bVar15") (= "=") (false "false")) (; ";")) (expression_statement "bVar12 = (!bVar13 && !bVar12) == bVar13;" (assignment_expression "bVar12 = (!bVar13 && !bVar12) == bVar13" (identifier "bVar12") (= "=") (binary_expression "(!bVar13 && !bVar12) == bVar13" (parenthesized_expression "(!bVar13 && !bVar12)" (( "(") (binary_expression "!bVar13 && !bVar12" (unary_expression "!bVar13" (! "!") (identifier "bVar13")) (&& "&&") (unary_expression "!bVar12" (! "!") (identifier "bVar12"))) () ")")) (== "==") (identifier "bVar13"))) (; ";")) (if_statement "if (bVar12) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\nLAB_00015dd0:\n      DAT_0006f2dc = 4;\n      FUN_000183f0();\n      FUN_00017e80();\n      uVar14 = (undefined1 *)0xfffffff3 < &stack0xffffffc4;\n      uVar16 = &stack0x00000000 == (undefined1 *)0x30;\n      FUN_00018530();\n      iVar5 = 3;\n      pbVar9 = param_1;\n      pbVar11 = &DAT_0004b0d7;\n      do {\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        uVar14 = *pbVar9 < *pbVar11;\n        uVar16 = *pbVar9 == *pbVar11;\n        pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n      } while ((bool)uVar16);\n      bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n      if (bVar12) goto LAB_00015e28;\n      goto LAB_00015e31;\n    }" (if "if") (parenthesized_expression "(bVar12)" (( "(") (identifier "bVar12") () ")")) (compound_statement "{\n      if (param_3 < 0) {\n        return 1;\n      }\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\nLAB_00015dd0:\n      DAT_0006f2dc = 4;\n      FUN_000183f0();\n      FUN_00017e80();\n      uVar14 = (undefined1 *)0xfffffff3 < &stack0xffffffc4;\n      uVar16 = &stack0x00000000 == (undefined1 *)0x30;\n      FUN_00018530();\n      iVar5 = 3;\n      pbVar9 = param_1;\n      pbVar11 = &DAT_0004b0d7;\n      do {\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        uVar14 = *pbVar9 < *pbVar11;\n        uVar16 = *pbVar9 == *pbVar11;\n        pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n      } while ((bool)uVar16);\n      bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n      if (bVar12) goto LAB_00015e28;\n      goto LAB_00015e31;\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 ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;" (if "if") (parenthesized_expression "((DAT_0006f0a0 & 3) != 0)" (( "(") (binary_expression "(DAT_0006f0a0 & 3) != 0" (parenthesized_expression "(DAT_0006f0a0 & 3)" (( "(") (binary_expression "DAT_0006f0a0 & 3" (identifier "DAT_0006f0a0") (& "&") (number_literal "3")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00015d50;" (goto "goto") (statement_identifier "LAB_00015d50") (; ";"))) (if_statement "if (param_3 != 0) goto LAB_00015c78;" (if "if") (parenthesized_expression "(param_3 != 0)" (( "(") (binary_expression "param_3 != 0" (identifier "param_3") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00015c78;" (goto "goto") (statement_identifier "LAB_00015c78") (; ";"))) (labeled_statement "LAB_00015dd0:\n      DAT_0006f2dc = 4;" (statement_identifier "LAB_00015dd0") (: ":") (expression_statement "DAT_0006f2dc = 4;" (assignment_expression "DAT_0006f2dc = 4" (identifier "DAT_0006f2dc") (= "=") (number_literal "4")) (; ";"))) (expression_statement "FUN_000183f0();" (call_expression "FUN_000183f0()" (identifier "FUN_000183f0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00017e80();" (call_expression "FUN_00017e80()" (identifier "FUN_00017e80") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "uVar14 = (undefined1 *)0xfffffff3 < &stack0xffffffc4;" (assignment_expression "uVar14 = (undefined1 *)0xfffffff3 < &stack0xffffffc4" (identifier "uVar14") (= "=") (binary_expression "(undefined1 *)0xfffffff3 < &stack0xffffffc4" (cast_expression "(undefined1 *)0xfffffff3" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xfffffff3")) (< "<") (pointer_expression "&stack0xffffffc4" (& "&") (identifier "stack0xffffffc4")))) (; ";")) (expression_statement "uVar16 = &stack0x00000000 == (undefined1 *)0x30;" (assignment_expression "uVar16 = &stack0x00000000 == (undefined1 *)0x30" (identifier "uVar16") (= "=") (binary_expression "&stack0x00000000 == (undefined1 *)0x30" (pointer_expression "&stack0x00000000" (& "&") (identifier "stack0x00000000")) (== "==") (cast_expression "(undefined1 *)0x30" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x30")))) (; ";")) (expression_statement "FUN_00018530();" (call_expression "FUN_00018530()" (identifier "FUN_00018530") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar5 = 3;" (assignment_expression "iVar5 = 3" (identifier "iVar5") (= "=") (number_literal "3")) (; ";")) (expression_statement "pbVar9 = param_1;" (assignment_expression "pbVar9 = param_1" (identifier "pbVar9") (= "=") (identifier "param_1")) (; ";")) (expression_statement "pbVar11 = &DAT_0004b0d7;" (assignment_expression "pbVar11 = &DAT_0004b0d7" (identifier "pbVar11") (= "=") (pointer_expression "&DAT_0004b0d7" (& "&") (identifier "DAT_0004b0d7"))) (; ";")) (do_statement "do {\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        uVar14 = *pbVar9 < *pbVar11;\n        uVar16 = *pbVar9 == *pbVar11;\n        pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n      } while ((bool)uVar16);" (do "do") (compound_statement "{\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        uVar14 = *pbVar9 < *pbVar11;\n        uVar16 = *pbVar9 == *pbVar11;\n        pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n      }" ({ "{") (if_statement "if (iVar5 == 0) break;" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" (identifier "iVar5") (= "=") (binary_expression "iVar5 + -1" (identifier "iVar5") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "uVar14 = *pbVar9 < *pbVar11;" (assignment_expression "uVar14 = *pbVar9 < *pbVar11" (identifier "uVar14") (= "=") (binary_expression "*pbVar9 < *pbVar11" (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")) (< "<") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")))) (; ";")) (expression_statement "uVar16 = *pbVar9 == *pbVar11;" (assignment_expression "uVar16 = *pbVar9 == *pbVar11" (identifier "uVar16") (= "=") (binary_expression "*pbVar9 == *pbVar11" (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")) (== "==") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")))) (; ";")) (expression_statement "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1" (identifier "pbVar9") (= "=") (binary_expression "pbVar9 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar17 * -2" (identifier "pbVar9") (+ "+") (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar17")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1" (identifier "pbVar11") (= "=") (binary_expression "pbVar11 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar17 * -2" (identifier "pbVar11") (+ "+") (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar17")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((bool)uVar16)" (( "(") (cast_expression "(bool)uVar16" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar16")) () ")")) (; ";")) (expression_statement "bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;" (assignment_expression "bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14" (identifier "bVar12") (= "=") (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 "bool")) () ")") (identifier "uVar14"))) (&& "&&") (unary_expression "!(bool)uVar16" (! "!") (cast_expression "(bool)uVar16" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar16")))) () ")")) (== "==") (cast_expression "(bool)uVar14" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar14")))) (; ";")) (if_statement "if (bVar12) goto LAB_00015e28;" (if "if") (parenthesized_expression "(bVar12)" (( "(") (identifier "bVar12") () ")")) (goto_statement "goto LAB_00015e28;" (goto "goto") (statement_identifier "LAB_00015e28") (; ";"))) (goto_statement "goto LAB_00015e31;" (goto "goto") (statement_identifier "LAB_00015e31") (; ";")) (} "}"))) (expression_statement "iVar5 = 3;" (assignment_expression "iVar5 = 3" (identifier "iVar5") (= "=") (number_literal "3")) (; ";")) (expression_statement "pbVar9 = param_1;" (assignment_expression "pbVar9 = param_1" (identifier "pbVar9") (= "=") (identifier "param_1")) (; ";")) (expression_statement "pbVar11 = &DAT_0004b0d7;" (assignment_expression "pbVar11 = &DAT_0004b0d7" (identifier "pbVar11") (= "=") (pointer_expression "&DAT_0004b0d7" (& "&") (identifier "DAT_0004b0d7"))) (; ";")) (do_statement "do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + 1;\n      pbVar11 = pbVar11 + 1;\n    } while (bVar12);" (do "do") (compound_statement "{\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + 1;\n      pbVar11 = pbVar11 + 1;\n    }" ({ "{") (if_statement "if (iVar5 == 0) break;" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" (identifier "iVar5") (= "=") (binary_expression "iVar5 + -1" (identifier "iVar5") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar15 = *pbVar9 < *pbVar11;" (assignment_expression "bVar15 = *pbVar9 < *pbVar11" (identifier "bVar15") (= "=") (binary_expression "*pbVar9 < *pbVar11" (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")) (< "<") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")))) (; ";")) (expression_statement "bVar12 = *pbVar9 == *pbVar11;" (assignment_expression "bVar12 = *pbVar9 == *pbVar11" (identifier "bVar12") (= "=") (binary_expression "*pbVar9 == *pbVar11" (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")) (== "==") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")))) (; ";")) (expression_statement "pbVar9 = pbVar9 + 1;" (assignment_expression "pbVar9 = pbVar9 + 1" (identifier "pbVar9") (= "=") (binary_expression "pbVar9 + 1" (identifier "pbVar9") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar11 = pbVar11 + 1;" (assignment_expression "pbVar11 = pbVar11 + 1" (identifier "pbVar11") (= "=") (binary_expression "pbVar11 + 1" (identifier "pbVar11") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar12)" (( "(") (identifier "bVar12") () ")")) (; ";")) (if_statement "if ((!bVar15 && !bVar12) == bVar15) {\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_00015e28:\n      DAT_0006f2e8 = DAT_0006f2e8 | 1;\n      bVar12 = DAT_0006f2e8 == 0;\n      goto LAB_00015e31;\n    }" (if "if") (parenthesized_expression "((!bVar15 && !bVar12) == bVar15)" (( "(") (binary_expression "(!bVar15 && !bVar12) == bVar15" (parenthesized_expression "(!bVar15 && !bVar12)" (( "(") (binary_expression "!bVar15 && !bVar12" (unary_expression "!bVar15" (! "!") (identifier "bVar15")) (&& "&&") (unary_expression "!bVar12" (! "!") (identifier "bVar12"))) () ")")) (== "==") (identifier "bVar15")) () ")")) (compound_statement "{\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_00015e28:\n      DAT_0006f2e8 = DAT_0006f2e8 | 1;\n      bVar12 = DAT_0006f2e8 == 0;\n      goto LAB_00015e31;\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_00015e28:\n      DAT_0006f2e8 = DAT_0006f2e8 | 1;" (statement_identifier "LAB_00015e28") (: ":") (expression_statement "DAT_0006f2e8 = DAT_0006f2e8 | 1;" (assignment_expression "DAT_0006f2e8 = DAT_0006f2e8 | 1" (identifier "DAT_0006f2e8") (= "=") (binary_expression "DAT_0006f2e8 | 1" (identifier "DAT_0006f2e8") (| "|") (number_literal "1"))) (; ";"))) (expression_statement "bVar12 = DAT_0006f2e8 == 0;" (assignment_expression "bVar12 = DAT_0006f2e8 == 0" (identifier "bVar12") (= "=") (binary_expression "DAT_0006f2e8 == 0" (identifier "DAT_0006f2e8") (== "==") (number_literal "0"))) (; ";")) (goto_statement "goto LAB_00015e31;" (goto "goto") (statement_identifier "LAB_00015e31") (; ";")) (} "}"))) (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" (identifier "uVar7") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar12 = true;" (assignment_expression "bVar12 = true" (identifier "bVar12") (= "=") (true "true")) (; ";")) (} "}")))) (expression_statement "bVar15 = false;" (assignment_expression "bVar15 = false" (identifier "bVar15") (= "=") (false "false")) (; ";")) (expression_statement "iVar5 = 3;" (assignment_expression "iVar5 = 3" (identifier "iVar5") (= "=") (number_literal "3")) (; ";")) (expression_statement "pbVar9 = param_1;" (assignment_expression "pbVar9 = param_1" (identifier "pbVar9") (= "=") (identifier "param_1")) (; ";")) (expression_statement "pbVar11 = (byte *)0x53a29;" (assignment_expression "pbVar11 = (byte *)0x53a29" (identifier "pbVar11") (= "=") (cast_expression "(byte *)0x53a29" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x53a29"))) (; ";")) (do_statement "do {\n    if (iVar5 == 0) break;\n    iVar5 = iVar5 + -1;\n    bVar15 = *pbVar9 < *pbVar11;\n    bVar12 = *pbVar9 == *pbVar11;\n    pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n    pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n  } while (bVar12);" (do "do") (compound_statement "{\n    if (iVar5 == 0) break;\n    iVar5 = iVar5 + -1;\n    bVar15 = *pbVar9 < *pbVar11;\n    bVar12 = *pbVar9 == *pbVar11;\n    pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n    pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n  }" ({ "{") (if_statement "if (iVar5 == 0) break;" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" (identifier "iVar5") (= "=") (binary_expression "iVar5 + -1" (identifier "iVar5") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar15 = *pbVar9 < *pbVar11;" (assignment_expression "bVar15 = *pbVar9 < *pbVar11" (identifier "bVar15") (= "=") (binary_expression "*pbVar9 < *pbVar11" (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")) (< "<") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")))) (; ";")) (expression_statement "bVar12 = *pbVar9 == *pbVar11;" (assignment_expression "bVar12 = *pbVar9 == *pbVar11" (identifier "bVar12") (= "=") (binary_expression "*pbVar9 == *pbVar11" (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")) (== "==") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")))) (; ";")) (expression_statement "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1" (identifier "pbVar9") (= "=") (binary_expression "pbVar9 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar17 * -2" (identifier "pbVar9") (+ "+") (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar17")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1" (identifier "pbVar11") (= "=") (binary_expression "pbVar11 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar17 * -2" (identifier "pbVar11") (+ "+") (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar17")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar12)" (( "(") (identifier "bVar12") () ")")) (; ";")) (expression_statement "bVar13 = false;" (assignment_expression "bVar13 = false" (identifier "bVar13") (= "=") (false "false")) (; ";")) (expression_statement "bVar12 = (!bVar15 && !bVar12) == bVar15;" (assignment_expression "bVar12 = (!bVar15 && !bVar12) == bVar15" (identifier "bVar12") (= "=") (binary_expression "(!bVar15 && !bVar12) == bVar15" (parenthesized_expression "(!bVar15 && !bVar12)" (( "(") (binary_expression "!bVar15 && !bVar12" (unary_expression "!bVar15" (! "!") (identifier "bVar15")) (&& "&&") (unary_expression "!bVar12" (! "!") (identifier "bVar12"))) () ")")) (== "==") (identifier "bVar15"))) (; ";")) (if_statement "if (bVar12) {\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n    if (param_3 != 0) goto LAB_00016123;\n    uVar14 = auStack_2c < (undefined1 *)0x4;\n    uVar16 = &stack0x00000000 == (undefined1 *)0x30;\n    FUN_00018530();\n    iVar5 = 9;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)"-loghost";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);\n    bVar12 = false;\n    bVar15 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n    if (bVar15) {\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n      goto LAB_00015ec5;\n    }\n    iVar5 = 9;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)"-hostkey";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar12 = *pbVar9 < *pbVar11;\n      bVar15 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar15);\n    bVar12 = (!bVar12 && !bVar15) == bVar12;\n    if (bVar12) goto LAB_00016218;\nLAB_00016248:\n    uVar7 = 2;\nLAB_0001624d:\n    bVar15 = false;\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b0ec;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar12 = (!bVar15 && !bVar12) == bVar15;\n    if (bVar12) {\nLAB_00016647:\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;\n      bVar12 = param_3 == 0;\n      if (!bVar12) goto LAB_00016123;\n      goto LAB_00015f8f;\n    }\nLAB_0001626b:\n    bVar15 = false;\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b0ef;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar13 = false;\n    bVar12 = (!bVar15 && !bVar12) == bVar15;\n    if (bVar12) goto LAB_00016647;\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)0x53a3b;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar13 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar15 = false;\n    bVar12 = (!bVar13 && !bVar12) == bVar13;\n    if (bVar12) goto LAB_00016647;\n    iVar5 = 4;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b0fd;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar12 = (!bVar15 && !bVar12) == bVar15;\n    if (!bVar12) goto LAB_00016698;\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;\n    if (param_3 != 0) goto LAB_00016123;\nLAB_000162ed:\n    iVar5 = FUN_00019140();\n    if (iVar5 == 0) {\n      FUN_00044820();\n      return 2;\n    }\n    uVar7 = 2;\n    FUN_00019ef0();\n    FUN_00018530();\n    strtol((char *)(iVar5 + 1),(char **)0x0,10);\n    uVar14 = (undefined1 *)0xfffffff3 < &stack0xffffffc4;\n    uVar16 = &stack0x00000000 == (undefined1 *)0x30;\n    FUN_000183f0();\n    FUN_0001a110();\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b101;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);\n    bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n    if (!bVar12) goto LAB_000166e0;\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;\nLAB_0001639b:\n    iVar10 = 0;\n    iVar5 = 0;\n    __stream = fopen64(param_2,"r");\n    local_24 = 0;\n    if (__stream == (FILE *)0x0) {\n      FUN_00044820();\n      return 2;\n    }\n    while (iVar2 = fgetc(__stream), iVar2 != -1) {\n      if (iVar10 < local_24) {\n        *(char *)(iVar5 + iVar10) = (char)iVar2;\n      }\n      else {\n        local_24 = iVar10 + 0x200;\n        local_20 = iVar2;\n        iVar5 = FUN_00019c80();\n        *(char *)(iVar5 + iVar10) = (char)local_20;\n      }\n      iVar10 = iVar10 + 1;\n    }\n    if (iVar10 < local_24) {\n      *(undefined1 *)(iVar5 + iVar10) = 0;\n    }\n    else {\n      iVar5 = FUN_00019c80();\n      *(undefined1 *)(iVar5 + iVar10) = 0;\n    }\n    uVar7 = 2;\n    fclose(__stream);\n    FUN_00018530();\n    FUN_00018530();\n    uVar14 = (undefined1 *)0xfffffff3 < &stack0xffffffc4;\n    uVar16 = &stack0x00000000 == (undefined1 *)0x30;\n    FUN_000183f0();\n    FUN_0001a110();\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b104;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);\n    bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n    if (!bVar12) goto LAB_00016777;\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\nLAB_000164a7:\n    strtol(param_2,(char **)0x0,10);\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-pw");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\nLAB_000164f6:\n      iVar5 = FUN_00017cd0();\n      if (iVar5 == 3) {\n        DAT_0006f0a8 = FUN_00019990();\n        iVar5 = -1;\n        pcVar8 = param_2;\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          cVar1 = *pcVar8;\n          pcVar8 = pcVar8 + (uint)bVar17 * -2 + 1;\n        } while (cVar1 != '\0');\n        FUN_0001a1f0();\n      }\n      else {\n        FUN_00044820();\n      }\n      iVar5 = strcmp((char *)param_1,"-agent");\n      if ((iVar5 == 0) || (iVar5 = strcmp((char *)param_1,"-pagent"), iVar5 == 0))\n      goto LAB_00015d3a;\n      uVar7 = 2;\n      iVar5 = strcmp((char *)param_1,"-pageant");\n      if (iVar5 == 0) goto LAB_0001688c;\n    }\n    else {\n      iVar5 = strcmp((char *)param_1,"-agent");\n      if (iVar5 == 0) {\nLAB_00015d3a:\n        if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n        goto LAB_000168a1;\n      }\n      uVar7 = 2;\n      iVar5 = strcmp((char *)param_1,"-pagent");\n      if (iVar5 == 0) goto LAB_0001688c;\nLAB_0001685f:\n      iVar5 = strcmp((char *)param_1,"-pageant");\n      if (iVar5 == 0) goto LAB_00016884;\n    }\n    iVar5 = strcmp((char *)param_1,"-noagent");\n    if ((iVar5 == 0) || (iVar5 = strcmp((char *)param_1,"-nopagent"), iVar5 == 0)) {\nLAB_00016e5e:\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_00016e44:\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\n      goto LAB_000168e1;\n    }\nLAB_000165eb:\n    iVar5 = strcmp((char *)param_1,"-nopageant");\n    if (iVar5 == 0) goto LAB_00016e5e;\n    iVar5 = strcmp((char *)param_1,"-A");\n    if (iVar5 != 0) {\n      iVar5 = strcmp((char *)param_1,"-a");\n      if (iVar5 != 0) goto LAB_00016f0f;\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_0001700b;\n    }\n    if (param_3 < 0) {\n      return 1;\n    }\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n    if (param_3 != 0) goto LAB_00015c78;\nLAB_00016921:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-a");\n    if (iVar5 != 0) {\n      uVar7 = 1;\n      iVar5 = strcmp((char *)param_1,"-X");\n      if (iVar5 == 0) goto LAB_00016f38;\nLAB_00016f97:\n      iVar5 = strcmp((char *)param_1,"-x");\n      if (iVar5 != 0) goto LAB_0001704f;\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_00016fc4:\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\n      goto LAB_000169e4;\n    }\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\nLAB_00016961:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-X");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      goto LAB_000169a1;\n    }\n    uVar7 = 1;\n    iVar5 = strcmp((char *)param_1,"-x");\n    if (iVar5 == 0) goto LAB_00016fc4;\nLAB_0001704f:\n    iVar5 = strcmp((char *)param_1,"-t");\n    if (iVar5 == 0) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_0001707c;\n    }\nLAB_000177b1:\n    iVar5 = strcmp((char *)param_1,"-T");\n    if (iVar5 != 0) goto LAB_00017759;\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_0001770d:\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n    if (param_3 != 0) goto LAB_00017091;\nLAB_00016a67:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-N");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\nLAB_00016aa7:\n      FUN_000183f0();\n      iVar5 = strcmp((char *)param_1,"-C");\n      if (iVar5 == 0) {\n        if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n        goto LAB_00016ae7;\n      }\n      uVar7 = 1;\n      iVar5 = strcmp((char *)param_1,"-1");\n      if (iVar5 != 0) goto LAB_00017647;\nLAB_000175ed:\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\n      goto LAB_00016b27;\n    }\n    uVar7 = 1;\n    iVar5 = strcmp((char *)param_1,"-C");\n    if (iVar5 == 0) goto LAB_0001762d;\nLAB_00017679:\n    iVar5 = strcmp((char *)param_1,"-1");\n    if (iVar5 == 0) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_000175ed;\n    }\nLAB_00017647:\n    iVar5 = strcmp((char *)param_1,"-2");\n    if (iVar5 == 0) {\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_000175ad:\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n      if (param_3 != 0) {\nLAB_00015c78:\n        FUN_00015950();\n        return 1;\n      }\nLAB_00016b67:\n      uVar7 = 1;\n      FUN_000183f0();\n    }\n  }\n  else {\n    iVar5 = 9;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)"-loghost";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar13 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar15 = false;\n    bVar12 = (!bVar13 && !bVar12) == bVar13;\n    if (!bVar12) {\n      iVar5 = 9;\n      pbVar9 = param_1;\n      pbVar11 = (byte *)"-hostkey";\n      do {\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        bVar15 = *pbVar9 < *pbVar11;\n        bVar12 = *pbVar9 == *pbVar11;\n        pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n      } while (bVar12);\n      bVar12 = (!bVar15 && !bVar12) == bVar15;\n      if (bVar12) {\n        if (param_2 == (char *)0x0) {\n          return 0xfffffffe;\n        }\n        if (param_3 < 0) {\n          return 2;\n        }\nLAB_00016218:\n        if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n        if (param_3 != 0) goto LAB_00016123;\n        goto LAB_00015f0d;\n      }\n      goto LAB_0001624d;\n    }\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n    if (param_3 != 0) goto LAB_00016123;\nLAB_00015ec5:\n    uVar14 = auStack_2c < (undefined1 *)0x4;\n    uVar16 = &stack0x00000000 == (undefined1 *)0x30;\n    FUN_00018530();\n    iVar5 = 9;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)"-hostkey";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);\n    bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n    if (!bVar12) goto LAB_00016248;\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\nLAB_00015f0d:\n    FUN_00019990();\n    iVar5 = FUN_0001a210();\n    uVar14 = 0;\n    uVar16 = iVar5 == 0;\n    if ((bool)uVar16) {\n      FUN_00044820();\n      FUN_0001a110();\n      return 2;\n    }\n    uVar7 = 2;\n    FUN_000185e0();\n    FUN_0001a110();\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b0ec;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);\n    bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n    if (!bVar12) goto LAB_0001626b;\n    bVar12 = (DAT_0006f0a0 & 3) == 0;\n    if (!bVar12) goto LAB_000161c3;\nLAB_00015f8f:\n    bVar15 = false;\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)0x53a3b;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    if ((!bVar15 && !bVar12) == bVar15) {\n      FUN_00019ef0();\n      FUN_00019990();\n    }\n    else {\n      iVar5 = FUN_00019140();\n      if (iVar5 == 0) {\n        FUN_00044820();\n        return 2;\n      }\n      do {\n        iVar5 = FUN_00019140();\n      } while (iVar5 != 0);\n      FUN_00019ef0();\n      FUN_00019990();\n    }\n    uVar14 = (undefined1 *)0xffffffef < &stack0xffffffc4;\n    uVar16 = &stack0x00000000 == (undefined1 *)0x2c;\n    uVar7 = 2;\n    FUN_000185e0();\n    FUN_0001a110();\n    FUN_0001a110();\n    iVar5 = 4;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b0fd;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);\n    bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n    if (bVar12) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;\n      goto LAB_000162ed;\n    }\nLAB_00016698:\n    bVar15 = false;\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b101;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar12 = (!bVar15 && !bVar12) == bVar15;\n    if (bVar12) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;\n      if (param_3 != 0) goto LAB_00016123;\n      goto LAB_0001639b;\n    }\nLAB_000166e0:\n    bVar15 = false;\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b104;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar12 = (!bVar15 && !bVar12) == bVar15;\n    if (bVar12) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n      if (param_3 != 0) goto LAB_00016723;\n      goto LAB_000164a7;\n    }\nLAB_00016777:\n    bVar15 = false;\n    iVar5 = 4;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b107;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    if ((!bVar15 && !bVar12) == bVar15) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n      if (param_3 != 0) goto LAB_00016723;\n      goto LAB_000164f6;\n    }\n    iVar5 = strcmp((char *)param_1,"-agent");\n    if ((iVar5 != 0) && (iVar5 = strcmp((char *)param_1,"-pagent"), iVar5 != 0)) goto LAB_0001685f;\nLAB_00016884:\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_0001688c:\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n    if (param_3 != 0) goto LAB_00015c78;\nLAB_000168a1:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-noagent");\n    if (iVar5 != 0) {\n      uVar7 = 1;\n      iVar5 = strcmp((char *)param_1,"-nopagent");\n      if (iVar5 != 0) goto LAB_000165eb;\n      goto LAB_00016e44;\n    }\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\nLAB_000168e1:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-A");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      goto LAB_00016921;\n    }\n    uVar7 = 1;\n    iVar5 = strcmp((char *)param_1,"-a");\n    if (iVar5 == 0) {\nLAB_0001700b:\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\n      goto LAB_00016961;\n    }\nLAB_00016f0f:\n    iVar5 = strcmp((char *)param_1,"-X");\n    if (iVar5 != 0) goto LAB_00016f97;\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_00016f38:\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n    if (param_3 != 0) goto LAB_00015c78;\nLAB_000169a1:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-x");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\nLAB_000169e4:\n      FUN_000183f0();\n      iVar5 = strcmp((char *)param_1,"-t");\n      if (iVar5 == 0) {\n        if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n        goto LAB_00016a27;\n      }\n      uVar7 = 1;\n      iVar5 = strcmp((char *)param_1,"-T");\n      if (iVar5 == 0) goto LAB_0001770d;\nLAB_00017759:\n      iVar5 = strcmp((char *)param_1,"-N");\n      if (iVar5 != 0) goto LAB_00017727;\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_000176cd:\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\n      goto LAB_00016aa7;\n    }\n    uVar7 = 1;\n    iVar5 = strcmp((char *)param_1,"-t");\n    if (iVar5 != 0) goto LAB_000177b1;\nLAB_0001707c:\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n    if (param_3 != 0) goto LAB_00017091;\nLAB_00016a27:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-T");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      goto LAB_00016a67;\n    }\n    uVar7 = 1;\n    iVar5 = strcmp((char *)param_1,"-N");\n    if (iVar5 == 0) goto LAB_000176cd;\nLAB_00017727:\n    iVar5 = strcmp((char *)param_1,"-C");\n    if (iVar5 != 0) goto LAB_00017679;\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_0001762d:\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n    if (param_3 != 0) goto LAB_00015c78;\nLAB_00016ae7:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-1");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\nLAB_00016b27:\n      FUN_000183f0();\n      iVar5 = strcmp((char *)param_1,"-2");\n      if (iVar5 == 0) {\n        if ((DAT_0006f0a0 & 2) != 0) {\nLAB_00015d50:\n          FUN_00044820();\n          return 1;\n        }\n        goto LAB_00016b67;\n      }\n    }\n    else {\n      iVar5 = strcmp((char *)param_1,"-2");\n      if (iVar5 == 0) goto LAB_000175ad;\n    }\n    uVar7 = 1;\n  }" (if "if") (parenthesized_expression "(bVar12)" (( "(") (identifier "bVar12") () ")")) (compound_statement "{\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n    if (param_3 != 0) goto LAB_00016123;\n    uVar14 = auStack_2c < (undefined1 *)0x4;\n    uVar16 = &stack0x00000000 == (undefined1 *)0x30;\n    FUN_00018530();\n    iVar5 = 9;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)"-loghost";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);\n    bVar12 = false;\n    bVar15 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n    if (bVar15) {\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n      goto LAB_00015ec5;\n    }\n    iVar5 = 9;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)"-hostkey";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar12 = *pbVar9 < *pbVar11;\n      bVar15 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar15);\n    bVar12 = (!bVar12 && !bVar15) == bVar12;\n    if (bVar12) goto LAB_00016218;\nLAB_00016248:\n    uVar7 = 2;\nLAB_0001624d:\n    bVar15 = false;\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b0ec;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar12 = (!bVar15 && !bVar12) == bVar15;\n    if (bVar12) {\nLAB_00016647:\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;\n      bVar12 = param_3 == 0;\n      if (!bVar12) goto LAB_00016123;\n      goto LAB_00015f8f;\n    }\nLAB_0001626b:\n    bVar15 = false;\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b0ef;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar13 = false;\n    bVar12 = (!bVar15 && !bVar12) == bVar15;\n    if (bVar12) goto LAB_00016647;\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)0x53a3b;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar13 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar15 = false;\n    bVar12 = (!bVar13 && !bVar12) == bVar13;\n    if (bVar12) goto LAB_00016647;\n    iVar5 = 4;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b0fd;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar12 = (!bVar15 && !bVar12) == bVar15;\n    if (!bVar12) goto LAB_00016698;\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;\n    if (param_3 != 0) goto LAB_00016123;\nLAB_000162ed:\n    iVar5 = FUN_00019140();\n    if (iVar5 == 0) {\n      FUN_00044820();\n      return 2;\n    }\n    uVar7 = 2;\n    FUN_00019ef0();\n    FUN_00018530();\n    strtol((char *)(iVar5 + 1),(char **)0x0,10);\n    uVar14 = (undefined1 *)0xfffffff3 < &stack0xffffffc4;\n    uVar16 = &stack0x00000000 == (undefined1 *)0x30;\n    FUN_000183f0();\n    FUN_0001a110();\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b101;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);\n    bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n    if (!bVar12) goto LAB_000166e0;\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;\nLAB_0001639b:\n    iVar10 = 0;\n    iVar5 = 0;\n    __stream = fopen64(param_2,"r");\n    local_24 = 0;\n    if (__stream == (FILE *)0x0) {\n      FUN_00044820();\n      return 2;\n    }\n    while (iVar2 = fgetc(__stream), iVar2 != -1) {\n      if (iVar10 < local_24) {\n        *(char *)(iVar5 + iVar10) = (char)iVar2;\n      }\n      else {\n        local_24 = iVar10 + 0x200;\n        local_20 = iVar2;\n        iVar5 = FUN_00019c80();\n        *(char *)(iVar5 + iVar10) = (char)local_20;\n      }\n      iVar10 = iVar10 + 1;\n    }\n    if (iVar10 < local_24) {\n      *(undefined1 *)(iVar5 + iVar10) = 0;\n    }\n    else {\n      iVar5 = FUN_00019c80();\n      *(undefined1 *)(iVar5 + iVar10) = 0;\n    }\n    uVar7 = 2;\n    fclose(__stream);\n    FUN_00018530();\n    FUN_00018530();\n    uVar14 = (undefined1 *)0xfffffff3 < &stack0xffffffc4;\n    uVar16 = &stack0x00000000 == (undefined1 *)0x30;\n    FUN_000183f0();\n    FUN_0001a110();\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b104;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);\n    bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n    if (!bVar12) goto LAB_00016777;\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\nLAB_000164a7:\n    strtol(param_2,(char **)0x0,10);\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-pw");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\nLAB_000164f6:\n      iVar5 = FUN_00017cd0();\n      if (iVar5 == 3) {\n        DAT_0006f0a8 = FUN_00019990();\n        iVar5 = -1;\n        pcVar8 = param_2;\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          cVar1 = *pcVar8;\n          pcVar8 = pcVar8 + (uint)bVar17 * -2 + 1;\n        } while (cVar1 != '\0');\n        FUN_0001a1f0();\n      }\n      else {\n        FUN_00044820();\n      }\n      iVar5 = strcmp((char *)param_1,"-agent");\n      if ((iVar5 == 0) || (iVar5 = strcmp((char *)param_1,"-pagent"), iVar5 == 0))\n      goto LAB_00015d3a;\n      uVar7 = 2;\n      iVar5 = strcmp((char *)param_1,"-pageant");\n      if (iVar5 == 0) goto LAB_0001688c;\n    }\n    else {\n      iVar5 = strcmp((char *)param_1,"-agent");\n      if (iVar5 == 0) {\nLAB_00015d3a:\n        if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n        goto LAB_000168a1;\n      }\n      uVar7 = 2;\n      iVar5 = strcmp((char *)param_1,"-pagent");\n      if (iVar5 == 0) goto LAB_0001688c;\nLAB_0001685f:\n      iVar5 = strcmp((char *)param_1,"-pageant");\n      if (iVar5 == 0) goto LAB_00016884;\n    }\n    iVar5 = strcmp((char *)param_1,"-noagent");\n    if ((iVar5 == 0) || (iVar5 = strcmp((char *)param_1,"-nopagent"), iVar5 == 0)) {\nLAB_00016e5e:\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_00016e44:\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\n      goto LAB_000168e1;\n    }\nLAB_000165eb:\n    iVar5 = strcmp((char *)param_1,"-nopageant");\n    if (iVar5 == 0) goto LAB_00016e5e;\n    iVar5 = strcmp((char *)param_1,"-A");\n    if (iVar5 != 0) {\n      iVar5 = strcmp((char *)param_1,"-a");\n      if (iVar5 != 0) goto LAB_00016f0f;\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_0001700b;\n    }\n    if (param_3 < 0) {\n      return 1;\n    }\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n    if (param_3 != 0) goto LAB_00015c78;\nLAB_00016921:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-a");\n    if (iVar5 != 0) {\n      uVar7 = 1;\n      iVar5 = strcmp((char *)param_1,"-X");\n      if (iVar5 == 0) goto LAB_00016f38;\nLAB_00016f97:\n      iVar5 = strcmp((char *)param_1,"-x");\n      if (iVar5 != 0) goto LAB_0001704f;\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_00016fc4:\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\n      goto LAB_000169e4;\n    }\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\nLAB_00016961:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-X");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      goto LAB_000169a1;\n    }\n    uVar7 = 1;\n    iVar5 = strcmp((char *)param_1,"-x");\n    if (iVar5 == 0) goto LAB_00016fc4;\nLAB_0001704f:\n    iVar5 = strcmp((char *)param_1,"-t");\n    if (iVar5 == 0) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_0001707c;\n    }\nLAB_000177b1:\n    iVar5 = strcmp((char *)param_1,"-T");\n    if (iVar5 != 0) goto LAB_00017759;\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_0001770d:\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n    if (param_3 != 0) goto LAB_00017091;\nLAB_00016a67:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-N");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\nLAB_00016aa7:\n      FUN_000183f0();\n      iVar5 = strcmp((char *)param_1,"-C");\n      if (iVar5 == 0) {\n        if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n        goto LAB_00016ae7;\n      }\n      uVar7 = 1;\n      iVar5 = strcmp((char *)param_1,"-1");\n      if (iVar5 != 0) goto LAB_00017647;\nLAB_000175ed:\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\n      goto LAB_00016b27;\n    }\n    uVar7 = 1;\n    iVar5 = strcmp((char *)param_1,"-C");\n    if (iVar5 == 0) goto LAB_0001762d;\nLAB_00017679:\n    iVar5 = strcmp((char *)param_1,"-1");\n    if (iVar5 == 0) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_000175ed;\n    }\nLAB_00017647:\n    iVar5 = strcmp((char *)param_1,"-2");\n    if (iVar5 == 0) {\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_000175ad:\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n      if (param_3 != 0) {\nLAB_00015c78:\n        FUN_00015950();\n        return 1;\n      }\nLAB_00016b67:\n      uVar7 = 1;\n      FUN_000183f0();\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") (; ";")) (} "}"))) (if_statement "if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;" (if "if") (parenthesized_expression "((DAT_0006f0a0 & 2) != 0)" (( "(") (binary_expression "(DAT_0006f0a0 & 2) != 0" (parenthesized_expression "(DAT_0006f0a0 & 2)" (( "(") (binary_expression "DAT_0006f0a0 & 2" (identifier "DAT_0006f0a0") (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_000161c3;" (goto "goto") (statement_identifier "LAB_000161c3") (; ";"))) (if_statement "if (param_3 != 0) goto LAB_00016123;" (if "if") (parenthesized_expression "(param_3 != 0)" (( "(") (binary_expression "param_3 != 0" (identifier "param_3") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00016123;" (goto "goto") (statement_identifier "LAB_00016123") (; ";"))) (expression_statement "uVar14 = auStack_2c < (undefined1 *)0x4;" (assignment_expression "uVar14 = auStack_2c < (undefined1 *)0x4" (identifier "uVar14") (= "=") (binary_expression "auStack_2c < (undefined1 *)0x4" (identifier "auStack_2c") (< "<") (cast_expression "(undefined1 *)0x4" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x4")))) (; ";")) (expression_statement "uVar16 = &stack0x00000000 == (undefined1 *)0x30;" (assignment_expression "uVar16 = &stack0x00000000 == (undefined1 *)0x30" (identifier "uVar16") (= "=") (binary_expression "&stack0x00000000 == (undefined1 *)0x30" (pointer_expression "&stack0x00000000" (& "&") (identifier "stack0x00000000")) (== "==") (cast_expression "(undefined1 *)0x30" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x30")))) (; ";")) (expression_statement "FUN_00018530();" (call_expression "FUN_00018530()" (identifier "FUN_00018530") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar5 = 9;" (assignment_expression "iVar5 = 9" (identifier "iVar5") (= "=") (number_literal "9")) (; ";")) (expression_statement "pbVar9 = param_1;" (assignment_expression "pbVar9 = param_1" (identifier "pbVar9") (= "=") (identifier "param_1")) (; ";")) (expression_statement "pbVar11 = (byte *)"-loghost";" (assignment_expression "pbVar11 = (byte *)"-loghost"" (identifier "pbVar11") (= "=") (cast_expression "(byte *)"-loghost"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal ""-loghost"" (" """) (string_content "-loghost") (" """)))) (; ";")) (do_statement "do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);" (do "do") (compound_statement "{\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    }" ({ "{") (if_statement "if (iVar5 == 0) break;" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" (identifier "iVar5") (= "=") (binary_expression "iVar5 + -1" (identifier "iVar5") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "uVar14 = *pbVar9 < *pbVar11;" (assignment_expression "uVar14 = *pbVar9 < *pbVar11" (identifier "uVar14") (= "=") (binary_expression "*pbVar9 < *pbVar11" (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")) (< "<") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")))) (; ";")) (expression_statement "uVar16 = *pbVar9 == *pbVar11;" (assignment_expression "uVar16 = *pbVar9 == *pbVar11" (identifier "uVar16") (= "=") (binary_expression "*pbVar9 == *pbVar11" (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")) (== "==") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")))) (; ";")) (expression_statement "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1" (identifier "pbVar9") (= "=") (binary_expression "pbVar9 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar17 * -2" (identifier "pbVar9") (+ "+") (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar17")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1" (identifier "pbVar11") (= "=") (binary_expression "pbVar11 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar17 * -2" (identifier "pbVar11") (+ "+") (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar17")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((bool)uVar16)" (( "(") (cast_expression "(bool)uVar16" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar16")) () ")")) (; ";")) (expression_statement "bVar12 = false;" (assignment_expression "bVar12 = false" (identifier "bVar12") (= "=") (false "false")) (; ";")) (expression_statement "bVar15 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;" (assignment_expression "bVar15 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14" (identifier "bVar15") (= "=") (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 "bool")) () ")") (identifier "uVar14"))) (&& "&&") (unary_expression "!(bool)uVar16" (! "!") (cast_expression "(bool)uVar16" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar16")))) () ")")) (== "==") (cast_expression "(bool)uVar14" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar14")))) (; ";")) (if_statement "if (bVar15) {\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n      goto LAB_00015ec5;\n    }" (if "if") (parenthesized_expression "(bVar15)" (( "(") (identifier "bVar15") () ")")) (compound_statement "{\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n      goto LAB_00015ec5;\n    }" ({ "{") (if_statement "if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;" (if "if") (parenthesized_expression "((DAT_0006f0a0 & 2) != 0)" (( "(") (binary_expression "(DAT_0006f0a0 & 2) != 0" (parenthesized_expression "(DAT_0006f0a0 & 2)" (( "(") (binary_expression "DAT_0006f0a0 & 2" (identifier "DAT_0006f0a0") (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_000161c3;" (goto "goto") (statement_identifier "LAB_000161c3") (; ";"))) (goto_statement "goto LAB_00015ec5;" (goto "goto") (statement_identifier "LAB_00015ec5") (; ";")) (} "}"))) (expression_statement "iVar5 = 9;" (assignment_expression "iVar5 = 9" (identifier "iVar5") (= "=") (number_literal "9")) (; ";")) (expression_statement "pbVar9 = param_1;" (assignment_expression "pbVar9 = param_1" (identifier "pbVar9") (= "=") (identifier "param_1")) (; ";")) (expression_statement "pbVar11 = (byte *)"-hostkey";" (assignment_expression "pbVar11 = (byte *)"-hostkey"" (identifier "pbVar11") (= "=") (cast_expression "(byte *)"-hostkey"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal ""-hostkey"" (" """) (string_content "-hostkey") (" """)))) (; ";")) (do_statement "do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar12 = *pbVar9 < *pbVar11;\n      bVar15 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar15);" (do "do") (compound_statement "{\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar12 = *pbVar9 < *pbVar11;\n      bVar15 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    }" ({ "{") (if_statement "if (iVar5 == 0) break;" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" (identifier "iVar5") (= "=") (binary_expression "iVar5 + -1" (identifier "iVar5") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar12 = *pbVar9 < *pbVar11;" (assignment_expression "bVar12 = *pbVar9 < *pbVar11" (identifier "bVar12") (= "=") (binary_expression "*pbVar9 < *pbVar11" (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")) (< "<") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")))) (; ";")) (expression_statement "bVar15 = *pbVar9 == *pbVar11;" (assignment_expression "bVar15 = *pbVar9 == *pbVar11" (identifier "bVar15") (= "=") (binary_expression "*pbVar9 == *pbVar11" (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")) (== "==") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")))) (; ";")) (expression_statement "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1" (identifier "pbVar9") (= "=") (binary_expression "pbVar9 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar17 * -2" (identifier "pbVar9") (+ "+") (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar17")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1" (identifier "pbVar11") (= "=") (binary_expression "pbVar11 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar17 * -2" (identifier "pbVar11") (+ "+") (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar17")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar15)" (( "(") (identifier "bVar15") () ")")) (; ";")) (expression_statement "bVar12 = (!bVar12 && !bVar15) == bVar12;" (assignment_expression "bVar12 = (!bVar12 && !bVar15) == bVar12" (identifier "bVar12") (= "=") (binary_expression "(!bVar12 && !bVar15) == bVar12" (parenthesized_expression "(!bVar12 && !bVar15)" (( "(") (binary_expression "!bVar12 && !bVar15" (unary_expression "!bVar12" (! "!") (identifier "bVar12")) (&& "&&") (unary_expression "!bVar15" (! "!") (identifier "bVar15"))) () ")")) (== "==") (identifier "bVar12"))) (; ";")) (if_statement "if (bVar12) goto LAB_00016218;" (if "if") (parenthesized_expression "(bVar12)" (( "(") (identifier "bVar12") () ")")) (goto_statement "goto LAB_00016218;" (goto "goto") (statement_identifier "LAB_00016218") (; ";"))) (labeled_statement "LAB_00016248:\n    uVar7 = 2;" (statement_identifier "LAB_00016248") (: ":") (expression_statement "uVar7 = 2;" (assignment_expression "uVar7 = 2" (identifier "uVar7") (= "=") (number_literal "2")) (; ";"))) (labeled_statement "LAB_0001624d:\n    bVar15 = false;" (statement_identifier "LAB_0001624d") (: ":") (expression_statement "bVar15 = false;" (assignment_expression "bVar15 = false" (identifier "bVar15") (= "=") (false "false")) (; ";"))) (expression_statement "iVar5 = 3;" (assignment_expression "iVar5 = 3" (identifier "iVar5") (= "=") (number_literal "3")) (; ";")) (expression_statement "pbVar9 = param_1;" (assignment_expression "pbVar9 = param_1" (identifier "pbVar9") (= "=") (identifier "param_1")) (; ";")) (expression_statement "pbVar11 = &DAT_0004b0ec;" (assignment_expression "pbVar11 = &DAT_0004b0ec" (identifier "pbVar11") (= "=") (pointer_expression "&DAT_0004b0ec" (& "&") (identifier "DAT_0004b0ec"))) (; ";")) (do_statement "do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);" (do "do") (compound_statement "{\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    }" ({ "{") (if_statement "if (iVar5 == 0) break;" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" (identifier "iVar5") (= "=") (binary_expression "iVar5 + -1" (identifier "iVar5") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar15 = *pbVar9 < *pbVar11;" (assignment_expression "bVar15 = *pbVar9 < *pbVar11" (identifier "bVar15") (= "=") (binary_expression "*pbVar9 < *pbVar11" (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")) (< "<") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")))) (; ";")) (expression_statement "bVar12 = *pbVar9 == *pbVar11;" (assignment_expression "bVar12 = *pbVar9 == *pbVar11" (identifier "bVar12") (= "=") (binary_expression "*pbVar9 == *pbVar11" (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")) (== "==") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")))) (; ";")) (expression_statement "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1" (identifier "pbVar9") (= "=") (binary_expression "pbVar9 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar17 * -2" (identifier "pbVar9") (+ "+") (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar17")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1" (identifier "pbVar11") (= "=") (binary_expression "pbVar11 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar17 * -2" (identifier "pbVar11") (+ "+") (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar17")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar12)" (( "(") (identifier "bVar12") () ")")) (; ";")) (expression_statement "bVar12 = (!bVar15 && !bVar12) == bVar15;" (assignment_expression "bVar12 = (!bVar15 && !bVar12) == bVar15" (identifier "bVar12") (= "=") (binary_expression "(!bVar15 && !bVar12) == bVar15" (parenthesized_expression "(!bVar15 && !bVar12)" (( "(") (binary_expression "!bVar15 && !bVar12" (unary_expression "!bVar15" (! "!") (identifier "bVar15")) (&& "&&") (unary_expression "!bVar12" (! "!") (identifier "bVar12"))) () ")")) (== "==") (identifier "bVar15"))) (; ";")) (if_statement "if (bVar12) {\nLAB_00016647:\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;\n      bVar12 = param_3 == 0;\n      if (!bVar12) goto LAB_00016123;\n      goto LAB_00015f8f;\n    }" (if "if") (parenthesized_expression "(bVar12)" (( "(") (identifier "bVar12") () ")")) (compound_statement "{\nLAB_00016647:\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;\n      bVar12 = param_3 == 0;\n      if (!bVar12) goto LAB_00016123;\n      goto LAB_00015f8f;\n    }" ({ "{") (labeled_statement "LAB_00016647:\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }" (statement_identifier "LAB_00016647") (: ":") (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") (; ";")) (} "}"))) (if_statement "if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;" (if "if") (parenthesized_expression "((DAT_0006f0a0 & 3) != 0)" (( "(") (binary_expression "(DAT_0006f0a0 & 3) != 0" (parenthesized_expression "(DAT_0006f0a0 & 3)" (( "(") (binary_expression "DAT_0006f0a0 & 3" (identifier "DAT_0006f0a0") (& "&") (number_literal "3")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_000161c3;" (goto "goto") (statement_identifier "LAB_000161c3") (; ";"))) (expression_statement "bVar12 = param_3 == 0;" (assignment_expression "bVar12 = param_3 == 0" (identifier "bVar12") (= "=") (binary_expression "param_3 == 0" (identifier "param_3") (== "==") (number_literal "0"))) (; ";")) (if_statement "if (!bVar12) goto LAB_00016123;" (if "if") (parenthesized_expression "(!bVar12)" (( "(") (unary_expression "!bVar12" (! "!") (identifier "bVar12")) () ")")) (goto_statement "goto LAB_00016123;" (goto "goto") (statement_identifier "LAB_00016123") (; ";"))) (goto_statement "goto LAB_00015f8f;" (goto "goto") (statement_identifier "LAB_00015f8f") (; ";")) (} "}"))) (labeled_statement "LAB_0001626b:\n    bVar15 = false;" (statement_identifier "LAB_0001626b") (: ":") (expression_statement "bVar15 = false;" (assignment_expression "bVar15 = false" (identifier "bVar15") (= "=") (false "false")) (; ";"))) (expression_statement "iVar5 = 3;" (assignment_expression "iVar5 = 3" (identifier "iVar5") (= "=") (number_literal "3")) (; ";")) (expression_statement "pbVar9 = param_1;" (assignment_expression "pbVar9 = param_1" (identifier "pbVar9") (= "=") (identifier "param_1")) (; ";")) (expression_statement "pbVar11 = &DAT_0004b0ef;" (assignment_expression "pbVar11 = &DAT_0004b0ef" (identifier "pbVar11") (= "=") (pointer_expression "&DAT_0004b0ef" (& "&") (identifier "DAT_0004b0ef"))) (; ";")) (do_statement "do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);" (do "do") (compound_statement "{\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    }" ({ "{") (if_statement "if (iVar5 == 0) break;" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" (identifier "iVar5") (= "=") (binary_expression "iVar5 + -1" (identifier "iVar5") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar15 = *pbVar9 < *pbVar11;" (assignment_expression "bVar15 = *pbVar9 < *pbVar11" (identifier "bVar15") (= "=") (binary_expression "*pbVar9 < *pbVar11" (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")) (< "<") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")))) (; ";")) (expression_statement "bVar12 = *pbVar9 == *pbVar11;" (assignment_expression "bVar12 = *pbVar9 == *pbVar11" (identifier "bVar12") (= "=") (binary_expression "*pbVar9 == *pbVar11" (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")) (== "==") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")))) (; ";")) (expression_statement "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1" (identifier "pbVar9") (= "=") (binary_expression "pbVar9 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar17 * -2" (identifier "pbVar9") (+ "+") (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar17")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1" (identifier "pbVar11") (= "=") (binary_expression "pbVar11 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar17 * -2" (identifier "pbVar11") (+ "+") (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar17")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar12)" (( "(") (identifier "bVar12") () ")")) (; ";")) (expression_statement "bVar13 = false;" (assignment_expression "bVar13 = false" (identifier "bVar13") (= "=") (false "false")) (; ";")) (expression_statement "bVar12 = (!bVar15 && !bVar12) == bVar15;" (assignment_expression "bVar12 = (!bVar15 && !bVar12) == bVar15" (identifier "bVar12") (= "=") (binary_expression "(!bVar15 && !bVar12) == bVar15" (parenthesized_expression "(!bVar15 && !bVar12)" (( "(") (binary_expression "!bVar15 && !bVar12" (unary_expression "!bVar15" (! "!") (identifier "bVar15")) (&& "&&") (unary_expression "!bVar12" (! "!") (identifier "bVar12"))) () ")")) (== "==") (identifier "bVar15"))) (; ";")) (if_statement "if (bVar12) goto LAB_00016647;" (if "if") (parenthesized_expression "(bVar12)" (( "(") (identifier "bVar12") () ")")) (goto_statement "goto LAB_00016647;" (goto "goto") (statement_identifier "LAB_00016647") (; ";"))) (expression_statement "iVar5 = 3;" (assignment_expression "iVar5 = 3" (identifier "iVar5") (= "=") (number_literal "3")) (; ";")) (expression_statement "pbVar9 = param_1;" (assignment_expression "pbVar9 = param_1" (identifier "pbVar9") (= "=") (identifier "param_1")) (; ";")) (expression_statement "pbVar11 = (byte *)0x53a3b;" (assignment_expression "pbVar11 = (byte *)0x53a3b" (identifier "pbVar11") (= "=") (cast_expression "(byte *)0x53a3b" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x53a3b"))) (; ";")) (do_statement "do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar13 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);" (do "do") (compound_statement "{\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar13 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    }" ({ "{") (if_statement "if (iVar5 == 0) break;" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" (identifier "iVar5") (= "=") (binary_expression "iVar5 + -1" (identifier "iVar5") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar13 = *pbVar9 < *pbVar11;" (assignment_expression "bVar13 = *pbVar9 < *pbVar11" (identifier "bVar13") (= "=") (binary_expression "*pbVar9 < *pbVar11" (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")) (< "<") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")))) (; ";")) (expression_statement "bVar12 = *pbVar9 == *pbVar11;" (assignment_expression "bVar12 = *pbVar9 == *pbVar11" (identifier "bVar12") (= "=") (binary_expression "*pbVar9 == *pbVar11" (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")) (== "==") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")))) (; ";")) (expression_statement "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1" (identifier "pbVar9") (= "=") (binary_expression "pbVar9 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar17 * -2" (identifier "pbVar9") (+ "+") (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar17")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1" (identifier "pbVar11") (= "=") (binary_expression "pbVar11 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar17 * -2" (identifier "pbVar11") (+ "+") (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar17")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar12)" (( "(") (identifier "bVar12") () ")")) (; ";")) (expression_statement "bVar15 = false;" (assignment_expression "bVar15 = false" (identifier "bVar15") (= "=") (false "false")) (; ";")) (expression_statement "bVar12 = (!bVar13 && !bVar12) == bVar13;" (assignment_expression "bVar12 = (!bVar13 && !bVar12) == bVar13" (identifier "bVar12") (= "=") (binary_expression "(!bVar13 && !bVar12) == bVar13" (parenthesized_expression "(!bVar13 && !bVar12)" (( "(") (binary_expression "!bVar13 && !bVar12" (unary_expression "!bVar13" (! "!") (identifier "bVar13")) (&& "&&") (unary_expression "!bVar12" (! "!") (identifier "bVar12"))) () ")")) (== "==") (identifier "bVar13"))) (; ";")) (if_statement "if (bVar12) goto LAB_00016647;" (if "if") (parenthesized_expression "(bVar12)" (( "(") (identifier "bVar12") () ")")) (goto_statement "goto LAB_00016647;" (goto "goto") (statement_identifier "LAB_00016647") (; ";"))) (expression_statement "iVar5 = 4;" (assignment_expression "iVar5 = 4" (identifier "iVar5") (= "=") (number_literal "4")) (; ";")) (expression_statement "pbVar9 = param_1;" (assignment_expression "pbVar9 = param_1" (identifier "pbVar9") (= "=") (identifier "param_1")) (; ";")) (expression_statement "pbVar11 = &DAT_0004b0fd;" (assignment_expression "pbVar11 = &DAT_0004b0fd" (identifier "pbVar11") (= "=") (pointer_expression "&DAT_0004b0fd" (& "&") (identifier "DAT_0004b0fd"))) (; ";")) (do_statement "do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);" (do "do") (compound_statement "{\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    }" ({ "{") (if_statement "if (iVar5 == 0) break;" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" (identifier "iVar5") (= "=") (binary_expression "iVar5 + -1" (identifier "iVar5") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar15 = *pbVar9 < *pbVar11;" (assignment_expression "bVar15 = *pbVar9 < *pbVar11" (identifier "bVar15") (= "=") (binary_expression "*pbVar9 < *pbVar11" (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")) (< "<") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")))) (; ";")) (expression_statement "bVar12 = *pbVar9 == *pbVar11;" (assignment_expression "bVar12 = *pbVar9 == *pbVar11" (identifier "bVar12") (= "=") (binary_expression "*pbVar9 == *pbVar11" (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")) (== "==") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")))) (; ";")) (expression_statement "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1" (identifier "pbVar9") (= "=") (binary_expression "pbVar9 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar17 * -2" (identifier "pbVar9") (+ "+") (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar17")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1" (identifier "pbVar11") (= "=") (binary_expression "pbVar11 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar17 * -2" (identifier "pbVar11") (+ "+") (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar17")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar12)" (( "(") (identifier "bVar12") () ")")) (; ";")) (expression_statement "bVar12 = (!bVar15 && !bVar12) == bVar15;" (assignment_expression "bVar12 = (!bVar15 && !bVar12) == bVar15" (identifier "bVar12") (= "=") (binary_expression "(!bVar15 && !bVar12) == bVar15" (parenthesized_expression "(!bVar15 && !bVar12)" (( "(") (binary_expression "!bVar15 && !bVar12" (unary_expression "!bVar15" (! "!") (identifier "bVar15")) (&& "&&") (unary_expression "!bVar12" (! "!") (identifier "bVar12"))) () ")")) (== "==") (identifier "bVar15"))) (; ";")) (if_statement "if (!bVar12) goto LAB_00016698;" (if "if") (parenthesized_expression "(!bVar12)" (( "(") (unary_expression "!bVar12" (! "!") (identifier "bVar12")) () ")")) (goto_statement "goto LAB_00016698;" (goto "goto") (statement_identifier "LAB_00016698") (; ";"))) (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") (; ";")) (} "}"))) (if_statement "if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;" (if "if") (parenthesized_expression "((DAT_0006f0a0 & 3) != 0)" (( "(") (binary_expression "(DAT_0006f0a0 & 3) != 0" (parenthesized_expression "(DAT_0006f0a0 & 3)" (( "(") (binary_expression "DAT_0006f0a0 & 3" (identifier "DAT_0006f0a0") (& "&") (number_literal "3")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_000161c3;" (goto "goto") (statement_identifier "LAB_000161c3") (; ";"))) (if_statement "if (param_3 != 0) goto LAB_00016123;" (if "if") (parenthesized_expression "(param_3 != 0)" (( "(") (binary_expression "param_3 != 0" (identifier "param_3") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00016123;" (goto "goto") (statement_identifier "LAB_00016123") (; ";"))) (labeled_statement "LAB_000162ed:\n    iVar5 = FUN_00019140();" (statement_identifier "LAB_000162ed") (: ":") (expression_statement "iVar5 = FUN_00019140();" (assignment_expression "iVar5 = FUN_00019140()" (identifier "iVar5") (= "=") (call_expression "FUN_00019140()" (identifier "FUN_00019140") (argument_list "()" (( "(") () ")")))) (; ";"))) (if_statement "if (iVar5 == 0) {\n      FUN_00044820();\n      return 2;\n    }" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      FUN_00044820();\n      return 2;\n    }" ({ "{") (expression_statement "FUN_00044820();" (call_expression "FUN_00044820()" (identifier "FUN_00044820") (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return 2;" (return "return") (number_literal "2") (; ";")) (} "}"))) (expression_statement "uVar7 = 2;" (assignment_expression "uVar7 = 2" (identifier "uVar7") (= "=") (number_literal "2")) (; ";")) (expression_statement "FUN_00019ef0();" (call_expression "FUN_00019ef0()" (identifier "FUN_00019ef0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00018530();" (call_expression "FUN_00018530()" (identifier "FUN_00018530") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "strtol((char *)(iVar5 + 1),(char **)0x0,10);" (call_expression "strtol((char *)(iVar5 + 1),(char **)0x0,10)" (identifier "strtol") (argument_list "((char *)(iVar5 + 1),(char **)0x0,10)" (( "(") (cast_expression "(char *)(iVar5 + 1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 1)" (( "(") (binary_expression "iVar5 + 1" (identifier "iVar5") (+ "+") (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 "uVar14 = (undefined1 *)0xfffffff3 < &stack0xffffffc4;" (assignment_expression "uVar14 = (undefined1 *)0xfffffff3 < &stack0xffffffc4" (identifier "uVar14") (= "=") (binary_expression "(undefined1 *)0xfffffff3 < &stack0xffffffc4" (cast_expression "(undefined1 *)0xfffffff3" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xfffffff3")) (< "<") (pointer_expression "&stack0xffffffc4" (& "&") (identifier "stack0xffffffc4")))) (; ";")) (expression_statement "uVar16 = &stack0x00000000 == (undefined1 *)0x30;" (assignment_expression "uVar16 = &stack0x00000000 == (undefined1 *)0x30" (identifier "uVar16") (= "=") (binary_expression "&stack0x00000000 == (undefined1 *)0x30" (pointer_expression "&stack0x00000000" (& "&") (identifier "stack0x00000000")) (== "==") (cast_expression "(undefined1 *)0x30" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x30")))) (; ";")) (expression_statement "FUN_000183f0();" (call_expression "FUN_000183f0()" (identifier "FUN_000183f0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_0001a110();" (call_expression "FUN_0001a110()" (identifier "FUN_0001a110") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar5 = 3;" (assignment_expression "iVar5 = 3" (identifier "iVar5") (= "=") (number_literal "3")) (; ";")) (expression_statement "pbVar9 = param_1;" (assignment_expression "pbVar9 = param_1" (identifier "pbVar9") (= "=") (identifier "param_1")) (; ";")) (expression_statement "pbVar11 = &DAT_0004b101;" (assignment_expression "pbVar11 = &DAT_0004b101" (identifier "pbVar11") (= "=") (pointer_expression "&DAT_0004b101" (& "&") (identifier "DAT_0004b101"))) (; ";")) (do_statement "do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);" (do "do") (compound_statement "{\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    }" ({ "{") (if_statement "if (iVar5 == 0) break;" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" (identifier "iVar5") (= "=") (binary_expression "iVar5 + -1" (identifier "iVar5") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "uVar14 = *pbVar9 < *pbVar11;" (assignment_expression "uVar14 = *pbVar9 < *pbVar11" (identifier "uVar14") (= "=") (binary_expression "*pbVar9 < *pbVar11" (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")) (< "<") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")))) (; ";")) (expression_statement "uVar16 = *pbVar9 == *pbVar11;" (assignment_expression "uVar16 = *pbVar9 == *pbVar11" (identifier "uVar16") (= "=") (binary_expression "*pbVar9 == *pbVar11" (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")) (== "==") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")))) (; ";")) (expression_statement "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1" (identifier "pbVar9") (= "=") (binary_expression "pbVar9 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar17 * -2" (identifier "pbVar9") (+ "+") (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar17")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1" (identifier "pbVar11") (= "=") (binary_expression "pbVar11 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar17 * -2" (identifier "pbVar11") (+ "+") (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar17")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((bool)uVar16)" (( "(") (cast_expression "(bool)uVar16" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar16")) () ")")) (; ";")) (expression_statement "bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;" (assignment_expression "bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14" (identifier "bVar12") (= "=") (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 "bool")) () ")") (identifier "uVar14"))) (&& "&&") (unary_expression "!(bool)uVar16" (! "!") (cast_expression "(bool)uVar16" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar16")))) () ")")) (== "==") (cast_expression "(bool)uVar14" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar14")))) (; ";")) (if_statement "if (!bVar12) goto LAB_000166e0;" (if "if") (parenthesized_expression "(!bVar12)" (( "(") (unary_expression "!bVar12" (! "!") (identifier "bVar12")) () ")")) (goto_statement "goto LAB_000166e0;" (goto "goto") (statement_identifier "LAB_000166e0") (; ";"))) (if_statement "if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;" (if "if") (parenthesized_expression "((DAT_0006f0a0 & 3) != 0)" (( "(") (binary_expression "(DAT_0006f0a0 & 3) != 0" (parenthesized_expression "(DAT_0006f0a0 & 3)" (( "(") (binary_expression "DAT_0006f0a0 & 3" (identifier "DAT_0006f0a0") (& "&") (number_literal "3")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_000161c3;" (goto "goto") (statement_identifier "LAB_000161c3") (; ";"))) (labeled_statement "LAB_0001639b:\n    iVar10 = 0;" (statement_identifier "LAB_0001639b") (: ":") (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" (identifier "iVar10") (= "=") (number_literal "0")) (; ";"))) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" (identifier "iVar5") (= "=") (number_literal "0")) (; ";")) (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") (" """)) () ")")))) (; ";")) (expression_statement "local_24 = 0;" (assignment_expression "local_24 = 0" (identifier "local_24") (= "=") (number_literal "0")) (; ";")) (if_statement "if (__stream == (FILE *)0x0) {\n      FUN_00044820();\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_00044820();\n      return 2;\n    }" ({ "{") (expression_statement "FUN_00044820();" (call_expression "FUN_00044820()" (identifier "FUN_00044820") (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return 2;" (return "return") (number_literal "2") (; ";")) (} "}"))) (while_statement "while (iVar2 = fgetc(__stream), iVar2 != -1) {\n      if (iVar10 < local_24) {\n        *(char *)(iVar5 + iVar10) = (char)iVar2;\n      }\n      else {\n        local_24 = iVar10 + 0x200;\n        local_20 = iVar2;\n        iVar5 = FUN_00019c80();\n        *(char *)(iVar5 + iVar10) = (char)local_20;\n      }\n      iVar10 = iVar10 + 1;\n    }" (while "while") (parenthesized_expression "(iVar2 = fgetc(__stream), iVar2 != -1)" (( "(") (comma_expression "iVar2 = fgetc(__stream), iVar2 != -1" (assignment_expression "iVar2 = fgetc(__stream)" (identifier "iVar2") (= "=") (call_expression "fgetc(__stream)" (identifier "fgetc") (argument_list "(__stream)" (( "(") (identifier "__stream") () ")")))) (, ",") (binary_expression "iVar2 != -1" (identifier "iVar2") (!= "!=") (number_literal "-1"))) () ")")) (compound_statement "{\n      if (iVar10 < local_24) {\n        *(char *)(iVar5 + iVar10) = (char)iVar2;\n      }\n      else {\n        local_24 = iVar10 + 0x200;\n        local_20 = iVar2;\n        iVar5 = FUN_00019c80();\n        *(char *)(iVar5 + iVar10) = (char)local_20;\n      }\n      iVar10 = iVar10 + 1;\n    }" ({ "{") (if_statement "if (iVar10 < local_24) {\n        *(char *)(iVar5 + iVar10) = (char)iVar2;\n      }\n      else {\n        local_24 = iVar10 + 0x200;\n        local_20 = iVar2;\n        iVar5 = FUN_00019c80();\n        *(char *)(iVar5 + iVar10) = (char)local_20;\n      }" (if "if") (parenthesized_expression "(iVar10 < local_24)" (( "(") (binary_expression "iVar10 < local_24" (identifier "iVar10") (< "<") (identifier "local_24")) () ")")) (compound_statement "{\n        *(char *)(iVar5 + iVar10) = (char)iVar2;\n      }" ({ "{") (expression_statement "*(char *)(iVar5 + iVar10) = (char)iVar2;" (assignment_expression "*(char *)(iVar5 + iVar10) = (char)iVar2" (pointer_expression "*(char *)(iVar5 + iVar10)" (* "*") (cast_expression "(char *)(iVar5 + iVar10)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + iVar10)" (( "(") (binary_expression "iVar5 + iVar10" (identifier "iVar5") (+ "+") (identifier "iVar10")) () ")")))) (= "=") (cast_expression "(char)iVar2" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "iVar2"))) (; ";")) (} "}")) (else_clause "else {\n        local_24 = iVar10 + 0x200;\n        local_20 = iVar2;\n        iVar5 = FUN_00019c80();\n        *(char *)(iVar5 + iVar10) = (char)local_20;\n      }" (else "else") (compound_statement "{\n        local_24 = iVar10 + 0x200;\n        local_20 = iVar2;\n        iVar5 = FUN_00019c80();\n        *(char *)(iVar5 + iVar10) = (char)local_20;\n      }" ({ "{") (expression_statement "local_24 = iVar10 + 0x200;" (assignment_expression "local_24 = iVar10 + 0x200" (identifier "local_24") (= "=") (binary_expression "iVar10 + 0x200" (identifier "iVar10") (+ "+") (number_literal "0x200"))) (; ";")) (expression_statement "local_20 = iVar2;" (assignment_expression "local_20 = iVar2" (identifier "local_20") (= "=") (identifier "iVar2")) (; ";")) (expression_statement "iVar5 = FUN_00019c80();" (assignment_expression "iVar5 = FUN_00019c80()" (identifier "iVar5") (= "=") (call_expression "FUN_00019c80()" (identifier "FUN_00019c80") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*(char *)(iVar5 + iVar10) = (char)local_20;" (assignment_expression "*(char *)(iVar5 + iVar10) = (char)local_20" (pointer_expression "*(char *)(iVar5 + iVar10)" (* "*") (cast_expression "(char *)(iVar5 + iVar10)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + iVar10)" (( "(") (binary_expression "iVar5 + iVar10" (identifier "iVar5") (+ "+") (identifier "iVar10")) () ")")))) (= "=") (cast_expression "(char)local_20" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "local_20"))) (; ";")) (} "}")))) (expression_statement "iVar10 = iVar10 + 1;" (assignment_expression "iVar10 = iVar10 + 1" (identifier "iVar10") (= "=") (binary_expression "iVar10 + 1" (identifier "iVar10") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (if_statement "if (iVar10 < local_24) {\n      *(undefined1 *)(iVar5 + iVar10) = 0;\n    }\n    else {\n      iVar5 = FUN_00019c80();\n      *(undefined1 *)(iVar5 + iVar10) = 0;\n    }" (if "if") (parenthesized_expression "(iVar10 < local_24)" (( "(") (binary_expression "iVar10 < local_24" (identifier "iVar10") (< "<") (identifier "local_24")) () ")")) (compound_statement "{\n      *(undefined1 *)(iVar5 + iVar10) = 0;\n    }" ({ "{") (expression_statement "*(undefined1 *)(iVar5 + iVar10) = 0;" (assignment_expression "*(undefined1 *)(iVar5 + iVar10) = 0" (pointer_expression "*(undefined1 *)(iVar5 + iVar10)" (* "*") (cast_expression "(undefined1 *)(iVar5 + iVar10)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + iVar10)" (( "(") (binary_expression "iVar5 + iVar10" (identifier "iVar5") (+ "+") (identifier "iVar10")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n      iVar5 = FUN_00019c80();\n      *(undefined1 *)(iVar5 + iVar10) = 0;\n    }" (else "else") (compound_statement "{\n      iVar5 = FUN_00019c80();\n      *(undefined1 *)(iVar5 + iVar10) = 0;\n    }" ({ "{") (expression_statement "iVar5 = FUN_00019c80();" (assignment_expression "iVar5 = FUN_00019c80()" (identifier "iVar5") (= "=") (call_expression "FUN_00019c80()" (identifier "FUN_00019c80") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*(undefined1 *)(iVar5 + iVar10) = 0;" (assignment_expression "*(undefined1 *)(iVar5 + iVar10) = 0" (pointer_expression "*(undefined1 *)(iVar5 + iVar10)" (* "*") (cast_expression "(undefined1 *)(iVar5 + iVar10)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + iVar10)" (( "(") (binary_expression "iVar5 + iVar10" (identifier "iVar5") (+ "+") (identifier "iVar10")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}")))) (expression_statement "uVar7 = 2;" (assignment_expression "uVar7 = 2" (identifier "uVar7") (= "=") (number_literal "2")) (; ";")) (expression_statement "fclose(__stream);" (call_expression "fclose(__stream)" (identifier "fclose") (argument_list "(__stream)" (( "(") (identifier "__stream") () ")"))) (; ";")) (expression_statement "FUN_00018530();" (call_expression "FUN_00018530()" (identifier "FUN_00018530") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00018530();" (call_expression "FUN_00018530()" (identifier "FUN_00018530") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "uVar14 = (undefined1 *)0xfffffff3 < &stack0xffffffc4;" (assignment_expression "uVar14 = (undefined1 *)0xfffffff3 < &stack0xffffffc4" (identifier "uVar14") (= "=") (binary_expression "(undefined1 *)0xfffffff3 < &stack0xffffffc4" (cast_expression "(undefined1 *)0xfffffff3" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xfffffff3")) (< "<") (pointer_expression "&stack0xffffffc4" (& "&") (identifier "stack0xffffffc4")))) (; ";")) (expression_statement "uVar16 = &stack0x00000000 == (undefined1 *)0x30;" (assignment_expression "uVar16 = &stack0x00000000 == (undefined1 *)0x30" (identifier "uVar16") (= "=") (binary_expression "&stack0x00000000 == (undefined1 *)0x30" (pointer_expression "&stack0x00000000" (& "&") (identifier "stack0x00000000")) (== "==") (cast_expression "(undefined1 *)0x30" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x30")))) (; ";")) (expression_statement "FUN_000183f0();" (call_expression "FUN_000183f0()" (identifier "FUN_000183f0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_0001a110();" (call_expression "FUN_0001a110()" (identifier "FUN_0001a110") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar5 = 3;" (assignment_expression "iVar5 = 3" (identifier "iVar5") (= "=") (number_literal "3")) (; ";")) (expression_statement "pbVar9 = param_1;" (assignment_expression "pbVar9 = param_1" (identifier "pbVar9") (= "=") (identifier "param_1")) (; ";")) (expression_statement "pbVar11 = &DAT_0004b104;" (assignment_expression "pbVar11 = &DAT_0004b104" (identifier "pbVar11") (= "=") (pointer_expression "&DAT_0004b104" (& "&") (identifier "DAT_0004b104"))) (; ";")) (do_statement "do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);" (do "do") (compound_statement "{\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    }" ({ "{") (if_statement "if (iVar5 == 0) break;" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" (identifier "iVar5") (= "=") (binary_expression "iVar5 + -1" (identifier "iVar5") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "uVar14 = *pbVar9 < *pbVar11;" (assignment_expression "uVar14 = *pbVar9 < *pbVar11" (identifier "uVar14") (= "=") (binary_expression "*pbVar9 < *pbVar11" (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")) (< "<") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")))) (; ";")) (expression_statement "uVar16 = *pbVar9 == *pbVar11;" (assignment_expression "uVar16 = *pbVar9 == *pbVar11" (identifier "uVar16") (= "=") (binary_expression "*pbVar9 == *pbVar11" (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")) (== "==") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")))) (; ";")) (expression_statement "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1" (identifier "pbVar9") (= "=") (binary_expression "pbVar9 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar17 * -2" (identifier "pbVar9") (+ "+") (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar17")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1" (identifier "pbVar11") (= "=") (binary_expression "pbVar11 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar17 * -2" (identifier "pbVar11") (+ "+") (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar17")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((bool)uVar16)" (( "(") (cast_expression "(bool)uVar16" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar16")) () ")")) (; ";")) (expression_statement "bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;" (assignment_expression "bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14" (identifier "bVar12") (= "=") (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 "bool")) () ")") (identifier "uVar14"))) (&& "&&") (unary_expression "!(bool)uVar16" (! "!") (cast_expression "(bool)uVar16" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar16")))) () ")")) (== "==") (cast_expression "(bool)uVar14" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar14")))) (; ";")) (if_statement "if (!bVar12) goto LAB_00016777;" (if "if") (parenthesized_expression "(!bVar12)" (( "(") (unary_expression "!bVar12" (! "!") (identifier "bVar12")) () ")")) (goto_statement "goto LAB_00016777;" (goto "goto") (statement_identifier "LAB_00016777") (; ";"))) (if_statement "if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;" (if "if") (parenthesized_expression "((DAT_0006f0a0 & 2) != 0)" (( "(") (binary_expression "(DAT_0006f0a0 & 2) != 0" (parenthesized_expression "(DAT_0006f0a0 & 2)" (( "(") (binary_expression "DAT_0006f0a0 & 2" (identifier "DAT_0006f0a0") (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_000161c3;" (goto "goto") (statement_identifier "LAB_000161c3") (; ";"))) (labeled_statement "LAB_000164a7:\n    strtol(param_2,(char **)0x0,10);" (statement_identifier "LAB_000164a7") (: ":") (expression_statement "strtol(param_2,(char **)0x0,10);" (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_000183f0();" (call_expression "FUN_000183f0()" (identifier "FUN_000183f0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar5 = strcmp((char *)param_1,"-pw");" (assignment_expression "iVar5 = strcmp((char *)param_1,"-pw")" (identifier "iVar5") (= "=") (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 (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\nLAB_000164f6:\n      iVar5 = FUN_00017cd0();\n      if (iVar5 == 3) {\n        DAT_0006f0a8 = FUN_00019990();\n        iVar5 = -1;\n        pcVar8 = param_2;\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          cVar1 = *pcVar8;\n          pcVar8 = pcVar8 + (uint)bVar17 * -2 + 1;\n        } while (cVar1 != '\0');\n        FUN_0001a1f0();\n      }\n      else {\n        FUN_00044820();\n      }\n      iVar5 = strcmp((char *)param_1,"-agent");\n      if ((iVar5 == 0) || (iVar5 = strcmp((char *)param_1,"-pagent"), iVar5 == 0))\n      goto LAB_00015d3a;\n      uVar7 = 2;\n      iVar5 = strcmp((char *)param_1,"-pageant");\n      if (iVar5 == 0) goto LAB_0001688c;\n    }\n    else {\n      iVar5 = strcmp((char *)param_1,"-agent");\n      if (iVar5 == 0) {\nLAB_00015d3a:\n        if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n        goto LAB_000168a1;\n      }\n      uVar7 = 2;\n      iVar5 = strcmp((char *)param_1,"-pagent");\n      if (iVar5 == 0) goto LAB_0001688c;\nLAB_0001685f:\n      iVar5 = strcmp((char *)param_1,"-pageant");\n      if (iVar5 == 0) goto LAB_00016884;\n    }" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\nLAB_000164f6:\n      iVar5 = FUN_00017cd0();\n      if (iVar5 == 3) {\n        DAT_0006f0a8 = FUN_00019990();\n        iVar5 = -1;\n        pcVar8 = param_2;\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          cVar1 = *pcVar8;\n          pcVar8 = pcVar8 + (uint)bVar17 * -2 + 1;\n        } while (cVar1 != '\0');\n        FUN_0001a1f0();\n      }\n      else {\n        FUN_00044820();\n      }\n      iVar5 = strcmp((char *)param_1,"-agent");\n      if ((iVar5 == 0) || (iVar5 = strcmp((char *)param_1,"-pagent"), iVar5 == 0))\n      goto LAB_00015d3a;\n      uVar7 = 2;\n      iVar5 = strcmp((char *)param_1,"-pageant");\n      if (iVar5 == 0) goto LAB_0001688c;\n    }" ({ "{") (if_statement "if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;" (if "if") (parenthesized_expression "((DAT_0006f0a0 & 2) != 0)" (( "(") (binary_expression "(DAT_0006f0a0 & 2) != 0" (parenthesized_expression "(DAT_0006f0a0 & 2)" (( "(") (binary_expression "DAT_0006f0a0 & 2" (identifier "DAT_0006f0a0") (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_000161c3;" (goto "goto") (statement_identifier "LAB_000161c3") (; ";"))) (labeled_statement "LAB_000164f6:\n      iVar5 = FUN_00017cd0();" (statement_identifier "LAB_000164f6") (: ":") (expression_statement "iVar5 = FUN_00017cd0();" (assignment_expression "iVar5 = FUN_00017cd0()" (identifier "iVar5") (= "=") (call_expression "FUN_00017cd0()" (identifier "FUN_00017cd0") (argument_list "()" (( "(") () ")")))) (; ";"))) (if_statement "if (iVar5 == 3) {\n        DAT_0006f0a8 = FUN_00019990();\n        iVar5 = -1;\n        pcVar8 = param_2;\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          cVar1 = *pcVar8;\n          pcVar8 = pcVar8 + (uint)bVar17 * -2 + 1;\n        } while (cVar1 != '\0');\n        FUN_0001a1f0();\n      }\n      else {\n        FUN_00044820();\n      }" (if "if") (parenthesized_expression "(iVar5 == 3)" (( "(") (binary_expression "iVar5 == 3" (identifier "iVar5") (== "==") (number_literal "3")) () ")")) (compound_statement "{\n        DAT_0006f0a8 = FUN_00019990();\n        iVar5 = -1;\n        pcVar8 = param_2;\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          cVar1 = *pcVar8;\n          pcVar8 = pcVar8 + (uint)bVar17 * -2 + 1;\n        } while (cVar1 != '\0');\n        FUN_0001a1f0();\n      }" ({ "{") (expression_statement "DAT_0006f0a8 = FUN_00019990();" (assignment_expression "DAT_0006f0a8 = FUN_00019990()" (identifier "DAT_0006f0a8") (= "=") (call_expression "FUN_00019990()" (identifier "FUN_00019990") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "iVar5 = -1;" (assignment_expression "iVar5 = -1" (identifier "iVar5") (= "=") (number_literal "-1")) (; ";")) (expression_statement "pcVar8 = param_2;" (assignment_expression "pcVar8 = param_2" (identifier "pcVar8") (= "=") (identifier "param_2")) (; ";")) (do_statement "do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          cVar1 = *pcVar8;\n          pcVar8 = pcVar8 + (uint)bVar17 * -2 + 1;\n        } while (cVar1 != '\0');" (do "do") (compound_statement "{\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          cVar1 = *pcVar8;\n          pcVar8 = pcVar8 + (uint)bVar17 * -2 + 1;\n        }" ({ "{") (if_statement "if (iVar5 == 0) break;" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" (identifier "iVar5") (= "=") (binary_expression "iVar5 + -1" (identifier "iVar5") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "cVar1 = *pcVar8;" (assignment_expression "cVar1 = *pcVar8" (identifier "cVar1") (= "=") (pointer_expression "*pcVar8" (* "*") (identifier "pcVar8"))) (; ";")) (expression_statement "pcVar8 = pcVar8 + (uint)bVar17 * -2 + 1;" (assignment_expression "pcVar8 = pcVar8 + (uint)bVar17 * -2 + 1" (identifier "pcVar8") (= "=") (binary_expression "pcVar8 + (uint)bVar17 * -2 + 1" (binary_expression "pcVar8 + (uint)bVar17 * -2" (identifier "pcVar8") (+ "+") (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar17")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(cVar1 != '\0')" (( "(") (binary_expression "cVar1 != '\0'" (identifier "cVar1") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (; ";")) (expression_statement "FUN_0001a1f0();" (call_expression "FUN_0001a1f0()" (identifier "FUN_0001a1f0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")) (else_clause "else {\n        FUN_00044820();\n      }" (else "else") (compound_statement "{\n        FUN_00044820();\n      }" ({ "{") (expression_statement "FUN_00044820();" (call_expression "FUN_00044820()" (identifier "FUN_00044820") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (expression_statement "iVar5 = strcmp((char *)param_1,"-agent");" (assignment_expression "iVar5 = strcmp((char *)param_1,"-agent")" (identifier "iVar5") (= "=") (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 ((iVar5 == 0) || (iVar5 = strcmp((char *)param_1,"-pagent"), iVar5 == 0))\n      goto LAB_00015d3a;" (if "if") (parenthesized_expression "((iVar5 == 0) || (iVar5 = strcmp((char *)param_1,"-pagent"), iVar5 == 0))" (( "(") (binary_expression "(iVar5 == 0) || (iVar5 = strcmp((char *)param_1,"-pagent"), iVar5 == 0)" (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(iVar5 = strcmp((char *)param_1,"-pagent"), iVar5 == 0)" (( "(") (comma_expression "iVar5 = strcmp((char *)param_1,"-pagent"), iVar5 == 0" (assignment_expression "iVar5 = strcmp((char *)param_1,"-pagent")" (identifier "iVar5") (= "=") (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") (" """)) () ")")))) (, ",") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0"))) () ")"))) () ")")) (goto_statement "goto LAB_00015d3a;" (goto "goto") (statement_identifier "LAB_00015d3a") (; ";"))) (expression_statement "uVar7 = 2;" (assignment_expression "uVar7 = 2" (identifier "uVar7") (= "=") (number_literal "2")) (; ";")) (expression_statement "iVar5 = strcmp((char *)param_1,"-pageant");" (assignment_expression "iVar5 = strcmp((char *)param_1,"-pageant")" (identifier "iVar5") (= "=") (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 (iVar5 == 0) goto LAB_0001688c;" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0001688c;" (goto "goto") (statement_identifier "LAB_0001688c") (; ";"))) (} "}")) (else_clause "else {\n      iVar5 = strcmp((char *)param_1,"-agent");\n      if (iVar5 == 0) {\nLAB_00015d3a:\n        if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n        goto LAB_000168a1;\n      }\n      uVar7 = 2;\n      iVar5 = strcmp((char *)param_1,"-pagent");\n      if (iVar5 == 0) goto LAB_0001688c;\nLAB_0001685f:\n      iVar5 = strcmp((char *)param_1,"-pageant");\n      if (iVar5 == 0) goto LAB_00016884;\n    }" (else "else") (compound_statement "{\n      iVar5 = strcmp((char *)param_1,"-agent");\n      if (iVar5 == 0) {\nLAB_00015d3a:\n        if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n        goto LAB_000168a1;\n      }\n      uVar7 = 2;\n      iVar5 = strcmp((char *)param_1,"-pagent");\n      if (iVar5 == 0) goto LAB_0001688c;\nLAB_0001685f:\n      iVar5 = strcmp((char *)param_1,"-pageant");\n      if (iVar5 == 0) goto LAB_00016884;\n    }" ({ "{") (expression_statement "iVar5 = strcmp((char *)param_1,"-agent");" (assignment_expression "iVar5 = strcmp((char *)param_1,"-agent")" (identifier "iVar5") (= "=") (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 (iVar5 == 0) {\nLAB_00015d3a:\n        if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n        goto LAB_000168a1;\n      }" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_00015d3a:\n        if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n        goto LAB_000168a1;\n      }" ({ "{") (labeled_statement "LAB_00015d3a:\n        if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;" (statement_identifier "LAB_00015d3a") (: ":") (if_statement "if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;" (if "if") (parenthesized_expression "((DAT_0006f0a0 & 2) != 0)" (( "(") (binary_expression "(DAT_0006f0a0 & 2) != 0" (parenthesized_expression "(DAT_0006f0a0 & 2)" (( "(") (binary_expression "DAT_0006f0a0 & 2" (identifier "DAT_0006f0a0") (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00015d50;" (goto "goto") (statement_identifier "LAB_00015d50") (; ";")))) (goto_statement "goto LAB_000168a1;" (goto "goto") (statement_identifier "LAB_000168a1") (; ";")) (} "}"))) (expression_statement "uVar7 = 2;" (assignment_expression "uVar7 = 2" (identifier "uVar7") (= "=") (number_literal "2")) (; ";")) (expression_statement "iVar5 = strcmp((char *)param_1,"-pagent");" (assignment_expression "iVar5 = strcmp((char *)param_1,"-pagent")" (identifier "iVar5") (= "=") (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 (iVar5 == 0) goto LAB_0001688c;" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0001688c;" (goto "goto") (statement_identifier "LAB_0001688c") (; ";"))) (labeled_statement "LAB_0001685f:\n      iVar5 = strcmp((char *)param_1,"-pageant");" (statement_identifier "LAB_0001685f") (: ":") (expression_statement "iVar5 = strcmp((char *)param_1,"-pageant");" (assignment_expression "iVar5 = strcmp((char *)param_1,"-pageant")" (identifier "iVar5") (= "=") (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 (iVar5 == 0) goto LAB_00016884;" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00016884;" (goto "goto") (statement_identifier "LAB_00016884") (; ";"))) (} "}")))) (expression_statement "iVar5 = strcmp((char *)param_1,"-noagent");" (assignment_expression "iVar5 = strcmp((char *)param_1,"-noagent")" (identifier "iVar5") (= "=") (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 ((iVar5 == 0) || (iVar5 = strcmp((char *)param_1,"-nopagent"), iVar5 == 0)) {\nLAB_00016e5e:\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_00016e44:\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\n      goto LAB_000168e1;\n    }" (if "if") (parenthesized_expression "((iVar5 == 0) || (iVar5 = strcmp((char *)param_1,"-nopagent"), iVar5 == 0))" (( "(") (binary_expression "(iVar5 == 0) || (iVar5 = strcmp((char *)param_1,"-nopagent"), iVar5 == 0)" (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(iVar5 = strcmp((char *)param_1,"-nopagent"), iVar5 == 0)" (( "(") (comma_expression "iVar5 = strcmp((char *)param_1,"-nopagent"), iVar5 == 0" (assignment_expression "iVar5 = strcmp((char *)param_1,"-nopagent")" (identifier "iVar5") (= "=") (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 "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\nLAB_00016e5e:\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_00016e44:\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\n      goto LAB_000168e1;\n    }" ({ "{") (labeled_statement "LAB_00016e5e:\n      if (param_3 < 0) {\n        return 1;\n      }" (statement_identifier "LAB_00016e5e") (: ":") (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_00016e44:\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;" (statement_identifier "LAB_00016e44") (: ":") (if_statement "if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;" (if "if") (parenthesized_expression "((DAT_0006f0a0 & 2) != 0)" (( "(") (binary_expression "(DAT_0006f0a0 & 2) != 0" (parenthesized_expression "(DAT_0006f0a0 & 2)" (( "(") (binary_expression "DAT_0006f0a0 & 2" (identifier "DAT_0006f0a0") (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00015d50;" (goto "goto") (statement_identifier "LAB_00015d50") (; ";")))) (if_statement "if (param_3 != 0) goto LAB_00015c78;" (if "if") (parenthesized_expression "(param_3 != 0)" (( "(") (binary_expression "param_3 != 0" (identifier "param_3") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00015c78;" (goto "goto") (statement_identifier "LAB_00015c78") (; ";"))) (goto_statement "goto LAB_000168e1;" (goto "goto") (statement_identifier "LAB_000168e1") (; ";")) (} "}"))) (labeled_statement "LAB_000165eb:\n    iVar5 = strcmp((char *)param_1,"-nopageant");" (statement_identifier "LAB_000165eb") (: ":") (expression_statement "iVar5 = strcmp((char *)param_1,"-nopageant");" (assignment_expression "iVar5 = strcmp((char *)param_1,"-nopageant")" (identifier "iVar5") (= "=") (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 (iVar5 == 0) goto LAB_00016e5e;" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00016e5e;" (goto "goto") (statement_identifier "LAB_00016e5e") (; ";"))) (expression_statement "iVar5 = strcmp((char *)param_1,"-A");" (assignment_expression "iVar5 = strcmp((char *)param_1,"-A")" (identifier "iVar5") (= "=") (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 (iVar5 != 0) {\n      iVar5 = strcmp((char *)param_1,"-a");\n      if (iVar5 != 0) goto LAB_00016f0f;\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_0001700b;\n    }" (if "if") (parenthesized_expression "(iVar5 != 0)" (( "(") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      iVar5 = strcmp((char *)param_1,"-a");\n      if (iVar5 != 0) goto LAB_00016f0f;\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_0001700b;\n    }" ({ "{") (expression_statement "iVar5 = strcmp((char *)param_1,"-a");" (assignment_expression "iVar5 = strcmp((char *)param_1,"-a")" (identifier "iVar5") (= "=") (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 (iVar5 != 0) goto LAB_00016f0f;" (if "if") (parenthesized_expression "(iVar5 != 0)" (( "(") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00016f0f;" (goto "goto") (statement_identifier "LAB_00016f0f") (; ";"))) (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_0001700b;" (goto "goto") (statement_identifier "LAB_0001700b") (; ";")) (} "}"))) (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 ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;" (if "if") (parenthesized_expression "((DAT_0006f0a0 & 3) != 0)" (( "(") (binary_expression "(DAT_0006f0a0 & 3) != 0" (parenthesized_expression "(DAT_0006f0a0 & 3)" (( "(") (binary_expression "DAT_0006f0a0 & 3" (identifier "DAT_0006f0a0") (& "&") (number_literal "3")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00015d50;" (goto "goto") (statement_identifier "LAB_00015d50") (; ";"))) (if_statement "if (param_3 != 0) goto LAB_00015c78;" (if "if") (parenthesized_expression "(param_3 != 0)" (( "(") (binary_expression "param_3 != 0" (identifier "param_3") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00015c78;" (goto "goto") (statement_identifier "LAB_00015c78") (; ";"))) (labeled_statement "LAB_00016921:\n    FUN_000183f0();" (statement_identifier "LAB_00016921") (: ":") (expression_statement "FUN_000183f0();" (call_expression "FUN_000183f0()" (identifier "FUN_000183f0") (argument_list "()" (( "(") () ")"))) (; ";"))) (expression_statement "iVar5 = strcmp((char *)param_1,"-a");" (assignment_expression "iVar5 = strcmp((char *)param_1,"-a")" (identifier "iVar5") (= "=") (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 (iVar5 != 0) {\n      uVar7 = 1;\n      iVar5 = strcmp((char *)param_1,"-X");\n      if (iVar5 == 0) goto LAB_00016f38;\nLAB_00016f97:\n      iVar5 = strcmp((char *)param_1,"-x");\n      if (iVar5 != 0) goto LAB_0001704f;\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_00016fc4:\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\n      goto LAB_000169e4;\n    }" (if "if") (parenthesized_expression "(iVar5 != 0)" (( "(") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      uVar7 = 1;\n      iVar5 = strcmp((char *)param_1,"-X");\n      if (iVar5 == 0) goto LAB_00016f38;\nLAB_00016f97:\n      iVar5 = strcmp((char *)param_1,"-x");\n      if (iVar5 != 0) goto LAB_0001704f;\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_00016fc4:\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\n      goto LAB_000169e4;\n    }" ({ "{") (expression_statement "uVar7 = 1;" (assignment_expression "uVar7 = 1" (identifier "uVar7") (= "=") (number_literal "1")) (; ";")) (expression_statement "iVar5 = strcmp((char *)param_1,"-X");" (assignment_expression "iVar5 = strcmp((char *)param_1,"-X")" (identifier "iVar5") (= "=") (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 (iVar5 == 0) goto LAB_00016f38;" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00016f38;" (goto "goto") (statement_identifier "LAB_00016f38") (; ";"))) (labeled_statement "LAB_00016f97:\n      iVar5 = strcmp((char *)param_1,"-x");" (statement_identifier "LAB_00016f97") (: ":") (expression_statement "iVar5 = strcmp((char *)param_1,"-x");" (assignment_expression "iVar5 = strcmp((char *)param_1,"-x")" (identifier "iVar5") (= "=") (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 (iVar5 != 0) goto LAB_0001704f;" (if "if") (parenthesized_expression "(iVar5 != 0)" (( "(") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0001704f;" (goto "goto") (statement_identifier "LAB_0001704f") (; ";"))) (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_00016fc4:\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;" (statement_identifier "LAB_00016fc4") (: ":") (if_statement "if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;" (if "if") (parenthesized_expression "((DAT_0006f0a0 & 3) != 0)" (( "(") (binary_expression "(DAT_0006f0a0 & 3) != 0" (parenthesized_expression "(DAT_0006f0a0 & 3)" (( "(") (binary_expression "DAT_0006f0a0 & 3" (identifier "DAT_0006f0a0") (& "&") (number_literal "3")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00015d50;" (goto "goto") (statement_identifier "LAB_00015d50") (; ";")))) (if_statement "if (param_3 != 0) goto LAB_00015c78;" (if "if") (parenthesized_expression "(param_3 != 0)" (( "(") (binary_expression "param_3 != 0" (identifier "param_3") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00015c78;" (goto "goto") (statement_identifier "LAB_00015c78") (; ";"))) (goto_statement "goto LAB_000169e4;" (goto "goto") (statement_identifier "LAB_000169e4") (; ";")) (} "}"))) (if_statement "if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;" (if "if") (parenthesized_expression "((DAT_0006f0a0 & 3) != 0)" (( "(") (binary_expression "(DAT_0006f0a0 & 3) != 0" (parenthesized_expression "(DAT_0006f0a0 & 3)" (( "(") (binary_expression "DAT_0006f0a0 & 3" (identifier "DAT_0006f0a0") (& "&") (number_literal "3")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00015d50;" (goto "goto") (statement_identifier "LAB_00015d50") (; ";"))) (labeled_statement "LAB_00016961:\n    FUN_000183f0();" (statement_identifier "LAB_00016961") (: ":") (expression_statement "FUN_000183f0();" (call_expression "FUN_000183f0()" (identifier "FUN_000183f0") (argument_list "()" (( "(") () ")"))) (; ";"))) (expression_statement "iVar5 = strcmp((char *)param_1,"-X");" (assignment_expression "iVar5 = strcmp((char *)param_1,"-X")" (identifier "iVar5") (= "=") (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 (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      goto LAB_000169a1;\n    }" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      goto LAB_000169a1;\n    }" ({ "{") (if_statement "if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;" (if "if") (parenthesized_expression "((DAT_0006f0a0 & 3) != 0)" (( "(") (binary_expression "(DAT_0006f0a0 & 3) != 0" (parenthesized_expression "(DAT_0006f0a0 & 3)" (( "(") (binary_expression "DAT_0006f0a0 & 3" (identifier "DAT_0006f0a0") (& "&") (number_literal "3")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00015d50;" (goto "goto") (statement_identifier "LAB_00015d50") (; ";"))) (goto_statement "goto LAB_000169a1;" (goto "goto") (statement_identifier "LAB_000169a1") (; ";")) (} "}"))) (expression_statement "uVar7 = 1;" (assignment_expression "uVar7 = 1" (identifier "uVar7") (= "=") (number_literal "1")) (; ";")) (expression_statement "iVar5 = strcmp((char *)param_1,"-x");" (assignment_expression "iVar5 = strcmp((char *)param_1,"-x")" (identifier "iVar5") (= "=") (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 (iVar5 == 0) goto LAB_00016fc4;" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00016fc4;" (goto "goto") (statement_identifier "LAB_00016fc4") (; ";"))) (labeled_statement "LAB_0001704f:\n    iVar5 = strcmp((char *)param_1,"-t");" (statement_identifier "LAB_0001704f") (: ":") (expression_statement "iVar5 = strcmp((char *)param_1,"-t");" (assignment_expression "iVar5 = strcmp((char *)param_1,"-t")" (identifier "iVar5") (= "=") (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 (iVar5 == 0) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_0001707c;\n    }" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_0001707c;\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_0001707c;" (goto "goto") (statement_identifier "LAB_0001707c") (; ";")) (} "}"))) (labeled_statement "LAB_000177b1:\n    iVar5 = strcmp((char *)param_1,"-T");" (statement_identifier "LAB_000177b1") (: ":") (expression_statement "iVar5 = strcmp((char *)param_1,"-T");" (assignment_expression "iVar5 = strcmp((char *)param_1,"-T")" (identifier "iVar5") (= "=") (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 (iVar5 != 0) goto LAB_00017759;" (if "if") (parenthesized_expression "(iVar5 != 0)" (( "(") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00017759;" (goto "goto") (statement_identifier "LAB_00017759") (; ";"))) (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_0001770d:\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;" (statement_identifier "LAB_0001770d") (: ":") (if_statement "if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;" (if "if") (parenthesized_expression "((DAT_0006f0a0 & 3) != 0)" (( "(") (binary_expression "(DAT_0006f0a0 & 3) != 0" (parenthesized_expression "(DAT_0006f0a0 & 3)" (( "(") (binary_expression "DAT_0006f0a0 & 3" (identifier "DAT_0006f0a0") (& "&") (number_literal "3")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00015d50;" (goto "goto") (statement_identifier "LAB_00015d50") (; ";")))) (if_statement "if (param_3 != 0) goto LAB_00017091;" (if "if") (parenthesized_expression "(param_3 != 0)" (( "(") (binary_expression "param_3 != 0" (identifier "param_3") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00017091;" (goto "goto") (statement_identifier "LAB_00017091") (; ";"))) (labeled_statement "LAB_00016a67:\n    FUN_000183f0();" (statement_identifier "LAB_00016a67") (: ":") (expression_statement "FUN_000183f0();" (call_expression "FUN_000183f0()" (identifier "FUN_000183f0") (argument_list "()" (( "(") () ")"))) (; ";"))) (expression_statement "iVar5 = strcmp((char *)param_1,"-N");" (assignment_expression "iVar5 = strcmp((char *)param_1,"-N")" (identifier "iVar5") (= "=") (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 (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\nLAB_00016aa7:\n      FUN_000183f0();\n      iVar5 = strcmp((char *)param_1,"-C");\n      if (iVar5 == 0) {\n        if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n        goto LAB_00016ae7;\n      }\n      uVar7 = 1;\n      iVar5 = strcmp((char *)param_1,"-1");\n      if (iVar5 != 0) goto LAB_00017647;\nLAB_000175ed:\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\n      goto LAB_00016b27;\n    }" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\nLAB_00016aa7:\n      FUN_000183f0();\n      iVar5 = strcmp((char *)param_1,"-C");\n      if (iVar5 == 0) {\n        if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n        goto LAB_00016ae7;\n      }\n      uVar7 = 1;\n      iVar5 = strcmp((char *)param_1,"-1");\n      if (iVar5 != 0) goto LAB_00017647;\nLAB_000175ed:\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\n      goto LAB_00016b27;\n    }" ({ "{") (if_statement "if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;" (if "if") (parenthesized_expression "((DAT_0006f0a0 & 3) != 0)" (( "(") (binary_expression "(DAT_0006f0a0 & 3) != 0" (parenthesized_expression "(DAT_0006f0a0 & 3)" (( "(") (binary_expression "DAT_0006f0a0 & 3" (identifier "DAT_0006f0a0") (& "&") (number_literal "3")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00015d50;" (goto "goto") (statement_identifier "LAB_00015d50") (; ";"))) (labeled_statement "LAB_00016aa7:\n      FUN_000183f0();" (statement_identifier "LAB_00016aa7") (: ":") (expression_statement "FUN_000183f0();" (call_expression "FUN_000183f0()" (identifier "FUN_000183f0") (argument_list "()" (( "(") () ")"))) (; ";"))) (expression_statement "iVar5 = strcmp((char *)param_1,"-C");" (assignment_expression "iVar5 = strcmp((char *)param_1,"-C")" (identifier "iVar5") (= "=") (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 (iVar5 == 0) {\n        if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n        goto LAB_00016ae7;\n      }" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n        goto LAB_00016ae7;\n      }" ({ "{") (if_statement "if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;" (if "if") (parenthesized_expression "((DAT_0006f0a0 & 2) != 0)" (( "(") (binary_expression "(DAT_0006f0a0 & 2) != 0" (parenthesized_expression "(DAT_0006f0a0 & 2)" (( "(") (binary_expression "DAT_0006f0a0 & 2" (identifier "DAT_0006f0a0") (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00015d50;" (goto "goto") (statement_identifier "LAB_00015d50") (; ";"))) (goto_statement "goto LAB_00016ae7;" (goto "goto") (statement_identifier "LAB_00016ae7") (; ";")) (} "}"))) (expression_statement "uVar7 = 1;" (assignment_expression "uVar7 = 1" (identifier "uVar7") (= "=") (number_literal "1")) (; ";")) (expression_statement "iVar5 = strcmp((char *)param_1,"-1");" (assignment_expression "iVar5 = strcmp((char *)param_1,"-1")" (identifier "iVar5") (= "=") (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 (iVar5 != 0) goto LAB_00017647;" (if "if") (parenthesized_expression "(iVar5 != 0)" (( "(") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00017647;" (goto "goto") (statement_identifier "LAB_00017647") (; ";"))) (labeled_statement "LAB_000175ed:\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;" (statement_identifier "LAB_000175ed") (: ":") (if_statement "if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;" (if "if") (parenthesized_expression "((DAT_0006f0a0 & 2) != 0)" (( "(") (binary_expression "(DAT_0006f0a0 & 2) != 0" (parenthesized_expression "(DAT_0006f0a0 & 2)" (( "(") (binary_expression "DAT_0006f0a0 & 2" (identifier "DAT_0006f0a0") (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00015d50;" (goto "goto") (statement_identifier "LAB_00015d50") (; ";")))) (if_statement "if (param_3 != 0) goto LAB_00015c78;" (if "if") (parenthesized_expression "(param_3 != 0)" (( "(") (binary_expression "param_3 != 0" (identifier "param_3") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00015c78;" (goto "goto") (statement_identifier "LAB_00015c78") (; ";"))) (goto_statement "goto LAB_00016b27;" (goto "goto") (statement_identifier "LAB_00016b27") (; ";")) (} "}"))) (expression_statement "uVar7 = 1;" (assignment_expression "uVar7 = 1" (identifier "uVar7") (= "=") (number_literal "1")) (; ";")) (expression_statement "iVar5 = strcmp((char *)param_1,"-C");" (assignment_expression "iVar5 = strcmp((char *)param_1,"-C")" (identifier "iVar5") (= "=") (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 (iVar5 == 0) goto LAB_0001762d;" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0001762d;" (goto "goto") (statement_identifier "LAB_0001762d") (; ";"))) (labeled_statement "LAB_00017679:\n    iVar5 = strcmp((char *)param_1,"-1");" (statement_identifier "LAB_00017679") (: ":") (expression_statement "iVar5 = strcmp((char *)param_1,"-1");" (assignment_expression "iVar5 = strcmp((char *)param_1,"-1")" (identifier "iVar5") (= "=") (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 (iVar5 == 0) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_000175ed;\n    }" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      if (param_3 < 0) {\n        return 1;\n      }\n      goto LAB_000175ed;\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_000175ed;" (goto "goto") (statement_identifier "LAB_000175ed") (; ";")) (} "}"))) (labeled_statement "LAB_00017647:\n    iVar5 = strcmp((char *)param_1,"-2");" (statement_identifier "LAB_00017647") (: ":") (expression_statement "iVar5 = strcmp((char *)param_1,"-2");" (assignment_expression "iVar5 = strcmp((char *)param_1,"-2")" (identifier "iVar5") (= "=") (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 (iVar5 == 0) {\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_000175ad:\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n      if (param_3 != 0) {\nLAB_00015c78:\n        FUN_00015950();\n        return 1;\n      }\nLAB_00016b67:\n      uVar7 = 1;\n      FUN_000183f0();\n    }" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_000175ad:\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n      if (param_3 != 0) {\nLAB_00015c78:\n        FUN_00015950();\n        return 1;\n      }\nLAB_00016b67:\n      uVar7 = 1;\n      FUN_000183f0();\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_000175ad:\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;" (statement_identifier "LAB_000175ad") (: ":") (if_statement "if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;" (if "if") (parenthesized_expression "((DAT_0006f0a0 & 2) != 0)" (( "(") (binary_expression "(DAT_0006f0a0 & 2) != 0" (parenthesized_expression "(DAT_0006f0a0 & 2)" (( "(") (binary_expression "DAT_0006f0a0 & 2" (identifier "DAT_0006f0a0") (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00015d50;" (goto "goto") (statement_identifier "LAB_00015d50") (; ";")))) (if_statement "if (param_3 != 0) {\nLAB_00015c78:\n        FUN_00015950();\n        return 1;\n      }" (if "if") (parenthesized_expression "(param_3 != 0)" (( "(") (binary_expression "param_3 != 0" (identifier "param_3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\nLAB_00015c78:\n        FUN_00015950();\n        return 1;\n      }" ({ "{") (labeled_statement "LAB_00015c78:\n        FUN_00015950();" (statement_identifier "LAB_00015c78") (: ":") (expression_statement "FUN_00015950();" (call_expression "FUN_00015950()" (identifier "FUN_00015950") (argument_list "()" (( "(") () ")"))) (; ";"))) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (labeled_statement "LAB_00016b67:\n      uVar7 = 1;" (statement_identifier "LAB_00016b67") (: ":") (expression_statement "uVar7 = 1;" (assignment_expression "uVar7 = 1" (identifier "uVar7") (= "=") (number_literal "1")) (; ";"))) (expression_statement "FUN_000183f0();" (call_expression "FUN_000183f0()" (identifier "FUN_000183f0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    iVar5 = 9;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)"-loghost";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar13 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar15 = false;\n    bVar12 = (!bVar13 && !bVar12) == bVar13;\n    if (!bVar12) {\n      iVar5 = 9;\n      pbVar9 = param_1;\n      pbVar11 = (byte *)"-hostkey";\n      do {\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        bVar15 = *pbVar9 < *pbVar11;\n        bVar12 = *pbVar9 == *pbVar11;\n        pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n      } while (bVar12);\n      bVar12 = (!bVar15 && !bVar12) == bVar15;\n      if (bVar12) {\n        if (param_2 == (char *)0x0) {\n          return 0xfffffffe;\n        }\n        if (param_3 < 0) {\n          return 2;\n        }\nLAB_00016218:\n        if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n        if (param_3 != 0) goto LAB_00016123;\n        goto LAB_00015f0d;\n      }\n      goto LAB_0001624d;\n    }\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n    if (param_3 != 0) goto LAB_00016123;\nLAB_00015ec5:\n    uVar14 = auStack_2c < (undefined1 *)0x4;\n    uVar16 = &stack0x00000000 == (undefined1 *)0x30;\n    FUN_00018530();\n    iVar5 = 9;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)"-hostkey";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);\n    bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n    if (!bVar12) goto LAB_00016248;\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\nLAB_00015f0d:\n    FUN_00019990();\n    iVar5 = FUN_0001a210();\n    uVar14 = 0;\n    uVar16 = iVar5 == 0;\n    if ((bool)uVar16) {\n      FUN_00044820();\n      FUN_0001a110();\n      return 2;\n    }\n    uVar7 = 2;\n    FUN_000185e0();\n    FUN_0001a110();\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b0ec;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);\n    bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n    if (!bVar12) goto LAB_0001626b;\n    bVar12 = (DAT_0006f0a0 & 3) == 0;\n    if (!bVar12) goto LAB_000161c3;\nLAB_00015f8f:\n    bVar15 = false;\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)0x53a3b;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    if ((!bVar15 && !bVar12) == bVar15) {\n      FUN_00019ef0();\n      FUN_00019990();\n    }\n    else {\n      iVar5 = FUN_00019140();\n      if (iVar5 == 0) {\n        FUN_00044820();\n        return 2;\n      }\n      do {\n        iVar5 = FUN_00019140();\n      } while (iVar5 != 0);\n      FUN_00019ef0();\n      FUN_00019990();\n    }\n    uVar14 = (undefined1 *)0xffffffef < &stack0xffffffc4;\n    uVar16 = &stack0x00000000 == (undefined1 *)0x2c;\n    uVar7 = 2;\n    FUN_000185e0();\n    FUN_0001a110();\n    FUN_0001a110();\n    iVar5 = 4;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b0fd;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);\n    bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n    if (bVar12) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;\n      goto LAB_000162ed;\n    }\nLAB_00016698:\n    bVar15 = false;\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b101;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar12 = (!bVar15 && !bVar12) == bVar15;\n    if (bVar12) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;\n      if (param_3 != 0) goto LAB_00016123;\n      goto LAB_0001639b;\n    }\nLAB_000166e0:\n    bVar15 = false;\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b104;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar12 = (!bVar15 && !bVar12) == bVar15;\n    if (bVar12) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n      if (param_3 != 0) goto LAB_00016723;\n      goto LAB_000164a7;\n    }\nLAB_00016777:\n    bVar15 = false;\n    iVar5 = 4;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b107;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    if ((!bVar15 && !bVar12) == bVar15) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n      if (param_3 != 0) goto LAB_00016723;\n      goto LAB_000164f6;\n    }\n    iVar5 = strcmp((char *)param_1,"-agent");\n    if ((iVar5 != 0) && (iVar5 = strcmp((char *)param_1,"-pagent"), iVar5 != 0)) goto LAB_0001685f;\nLAB_00016884:\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_0001688c:\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n    if (param_3 != 0) goto LAB_00015c78;\nLAB_000168a1:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-noagent");\n    if (iVar5 != 0) {\n      uVar7 = 1;\n      iVar5 = strcmp((char *)param_1,"-nopagent");\n      if (iVar5 != 0) goto LAB_000165eb;\n      goto LAB_00016e44;\n    }\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\nLAB_000168e1:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-A");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      goto LAB_00016921;\n    }\n    uVar7 = 1;\n    iVar5 = strcmp((char *)param_1,"-a");\n    if (iVar5 == 0) {\nLAB_0001700b:\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\n      goto LAB_00016961;\n    }\nLAB_00016f0f:\n    iVar5 = strcmp((char *)param_1,"-X");\n    if (iVar5 != 0) goto LAB_00016f97;\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_00016f38:\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n    if (param_3 != 0) goto LAB_00015c78;\nLAB_000169a1:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-x");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\nLAB_000169e4:\n      FUN_000183f0();\n      iVar5 = strcmp((char *)param_1,"-t");\n      if (iVar5 == 0) {\n        if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n        goto LAB_00016a27;\n      }\n      uVar7 = 1;\n      iVar5 = strcmp((char *)param_1,"-T");\n      if (iVar5 == 0) goto LAB_0001770d;\nLAB_00017759:\n      iVar5 = strcmp((char *)param_1,"-N");\n      if (iVar5 != 0) goto LAB_00017727;\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_000176cd:\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\n      goto LAB_00016aa7;\n    }\n    uVar7 = 1;\n    iVar5 = strcmp((char *)param_1,"-t");\n    if (iVar5 != 0) goto LAB_000177b1;\nLAB_0001707c:\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n    if (param_3 != 0) goto LAB_00017091;\nLAB_00016a27:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-T");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      goto LAB_00016a67;\n    }\n    uVar7 = 1;\n    iVar5 = strcmp((char *)param_1,"-N");\n    if (iVar5 == 0) goto LAB_000176cd;\nLAB_00017727:\n    iVar5 = strcmp((char *)param_1,"-C");\n    if (iVar5 != 0) goto LAB_00017679;\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_0001762d:\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n    if (param_3 != 0) goto LAB_00015c78;\nLAB_00016ae7:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-1");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\nLAB_00016b27:\n      FUN_000183f0();\n      iVar5 = strcmp((char *)param_1,"-2");\n      if (iVar5 == 0) {\n        if ((DAT_0006f0a0 & 2) != 0) {\nLAB_00015d50:\n          FUN_00044820();\n          return 1;\n        }\n        goto LAB_00016b67;\n      }\n    }\n    else {\n      iVar5 = strcmp((char *)param_1,"-2");\n      if (iVar5 == 0) goto LAB_000175ad;\n    }\n    uVar7 = 1;\n  }" (else "else") (compound_statement "{\n    iVar5 = 9;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)"-loghost";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar13 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar15 = false;\n    bVar12 = (!bVar13 && !bVar12) == bVar13;\n    if (!bVar12) {\n      iVar5 = 9;\n      pbVar9 = param_1;\n      pbVar11 = (byte *)"-hostkey";\n      do {\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        bVar15 = *pbVar9 < *pbVar11;\n        bVar12 = *pbVar9 == *pbVar11;\n        pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n      } while (bVar12);\n      bVar12 = (!bVar15 && !bVar12) == bVar15;\n      if (bVar12) {\n        if (param_2 == (char *)0x0) {\n          return 0xfffffffe;\n        }\n        if (param_3 < 0) {\n          return 2;\n        }\nLAB_00016218:\n        if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n        if (param_3 != 0) goto LAB_00016123;\n        goto LAB_00015f0d;\n      }\n      goto LAB_0001624d;\n    }\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n    if (param_3 != 0) goto LAB_00016123;\nLAB_00015ec5:\n    uVar14 = auStack_2c < (undefined1 *)0x4;\n    uVar16 = &stack0x00000000 == (undefined1 *)0x30;\n    FUN_00018530();\n    iVar5 = 9;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)"-hostkey";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);\n    bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n    if (!bVar12) goto LAB_00016248;\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\nLAB_00015f0d:\n    FUN_00019990();\n    iVar5 = FUN_0001a210();\n    uVar14 = 0;\n    uVar16 = iVar5 == 0;\n    if ((bool)uVar16) {\n      FUN_00044820();\n      FUN_0001a110();\n      return 2;\n    }\n    uVar7 = 2;\n    FUN_000185e0();\n    FUN_0001a110();\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b0ec;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);\n    bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n    if (!bVar12) goto LAB_0001626b;\n    bVar12 = (DAT_0006f0a0 & 3) == 0;\n    if (!bVar12) goto LAB_000161c3;\nLAB_00015f8f:\n    bVar15 = false;\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = (byte *)0x53a3b;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    if ((!bVar15 && !bVar12) == bVar15) {\n      FUN_00019ef0();\n      FUN_00019990();\n    }\n    else {\n      iVar5 = FUN_00019140();\n      if (iVar5 == 0) {\n        FUN_00044820();\n        return 2;\n      }\n      do {\n        iVar5 = FUN_00019140();\n      } while (iVar5 != 0);\n      FUN_00019ef0();\n      FUN_00019990();\n    }\n    uVar14 = (undefined1 *)0xffffffef < &stack0xffffffc4;\n    uVar16 = &stack0x00000000 == (undefined1 *)0x2c;\n    uVar7 = 2;\n    FUN_000185e0();\n    FUN_0001a110();\n    FUN_0001a110();\n    iVar5 = 4;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b0fd;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);\n    bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;\n    if (bVar12) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;\n      goto LAB_000162ed;\n    }\nLAB_00016698:\n    bVar15 = false;\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b101;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar12 = (!bVar15 && !bVar12) == bVar15;\n    if (bVar12) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;\n      if (param_3 != 0) goto LAB_00016123;\n      goto LAB_0001639b;\n    }\nLAB_000166e0:\n    bVar15 = false;\n    iVar5 = 3;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b104;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    bVar12 = (!bVar15 && !bVar12) == bVar15;\n    if (bVar12) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n      if (param_3 != 0) goto LAB_00016723;\n      goto LAB_000164a7;\n    }\nLAB_00016777:\n    bVar15 = false;\n    iVar5 = 4;\n    pbVar9 = param_1;\n    pbVar11 = &DAT_0004b107;\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);\n    if ((!bVar15 && !bVar12) == bVar15) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n      if (param_3 != 0) goto LAB_00016723;\n      goto LAB_000164f6;\n    }\n    iVar5 = strcmp((char *)param_1,"-agent");\n    if ((iVar5 != 0) && (iVar5 = strcmp((char *)param_1,"-pagent"), iVar5 != 0)) goto LAB_0001685f;\nLAB_00016884:\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_0001688c:\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n    if (param_3 != 0) goto LAB_00015c78;\nLAB_000168a1:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-noagent");\n    if (iVar5 != 0) {\n      uVar7 = 1;\n      iVar5 = strcmp((char *)param_1,"-nopagent");\n      if (iVar5 != 0) goto LAB_000165eb;\n      goto LAB_00016e44;\n    }\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\nLAB_000168e1:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-A");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      goto LAB_00016921;\n    }\n    uVar7 = 1;\n    iVar5 = strcmp((char *)param_1,"-a");\n    if (iVar5 == 0) {\nLAB_0001700b:\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\n      goto LAB_00016961;\n    }\nLAB_00016f0f:\n    iVar5 = strcmp((char *)param_1,"-X");\n    if (iVar5 != 0) goto LAB_00016f97;\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_00016f38:\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n    if (param_3 != 0) goto LAB_00015c78;\nLAB_000169a1:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-x");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\nLAB_000169e4:\n      FUN_000183f0();\n      iVar5 = strcmp((char *)param_1,"-t");\n      if (iVar5 == 0) {\n        if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n        goto LAB_00016a27;\n      }\n      uVar7 = 1;\n      iVar5 = strcmp((char *)param_1,"-T");\n      if (iVar5 == 0) goto LAB_0001770d;\nLAB_00017759:\n      iVar5 = strcmp((char *)param_1,"-N");\n      if (iVar5 != 0) goto LAB_00017727;\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_000176cd:\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\n      goto LAB_00016aa7;\n    }\n    uVar7 = 1;\n    iVar5 = strcmp((char *)param_1,"-t");\n    if (iVar5 != 0) goto LAB_000177b1;\nLAB_0001707c:\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n    if (param_3 != 0) goto LAB_00017091;\nLAB_00016a27:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-T");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      goto LAB_00016a67;\n    }\n    uVar7 = 1;\n    iVar5 = strcmp((char *)param_1,"-N");\n    if (iVar5 == 0) goto LAB_000176cd;\nLAB_00017727:\n    iVar5 = strcmp((char *)param_1,"-C");\n    if (iVar5 != 0) goto LAB_00017679;\n    if (param_3 < 0) {\n      return 1;\n    }\nLAB_0001762d:\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\n    if (param_3 != 0) goto LAB_00015c78;\nLAB_00016ae7:\n    FUN_000183f0();\n    iVar5 = strcmp((char *)param_1,"-1");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\nLAB_00016b27:\n      FUN_000183f0();\n      iVar5 = strcmp((char *)param_1,"-2");\n      if (iVar5 == 0) {\n        if ((DAT_0006f0a0 & 2) != 0) {\nLAB_00015d50:\n          FUN_00044820();\n          return 1;\n        }\n        goto LAB_00016b67;\n      }\n    }\n    else {\n      iVar5 = strcmp((char *)param_1,"-2");\n      if (iVar5 == 0) goto LAB_000175ad;\n    }\n    uVar7 = 1;\n  }" ({ "{") (expression_statement "iVar5 = 9;" (assignment_expression "iVar5 = 9" (identifier "iVar5") (= "=") (number_literal "9")) (; ";")) (expression_statement "pbVar9 = param_1;" (assignment_expression "pbVar9 = param_1" (identifier "pbVar9") (= "=") (identifier "param_1")) (; ";")) (expression_statement "pbVar11 = (byte *)"-loghost";" (assignment_expression "pbVar11 = (byte *)"-loghost"" (identifier "pbVar11") (= "=") (cast_expression "(byte *)"-loghost"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal ""-loghost"" (" """) (string_content "-loghost") (" """)))) (; ";")) (do_statement "do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar13 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);" (do "do") (compound_statement "{\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar13 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    }" ({ "{") (if_statement "if (iVar5 == 0) break;" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" (identifier "iVar5") (= "=") (binary_expression "iVar5 + -1" (identifier "iVar5") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar13 = *pbVar9 < *pbVar11;" (assignment_expression "bVar13 = *pbVar9 < *pbVar11" (identifier "bVar13") (= "=") (binary_expression "*pbVar9 < *pbVar11" (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")) (< "<") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")))) (; ";")) (expression_statement "bVar12 = *pbVar9 == *pbVar11;" (assignment_expression "bVar12 = *pbVar9 == *pbVar11" (identifier "bVar12") (= "=") (binary_expression "*pbVar9 == *pbVar11" (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")) (== "==") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")))) (; ";")) (expression_statement "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1" (identifier "pbVar9") (= "=") (binary_expression "pbVar9 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar17 * -2" (identifier "pbVar9") (+ "+") (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar17")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1" (identifier "pbVar11") (= "=") (binary_expression "pbVar11 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar17 * -2" (identifier "pbVar11") (+ "+") (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar17")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar12)" (( "(") (identifier "bVar12") () ")")) (; ";")) (expression_statement "bVar15 = false;" (assignment_expression "bVar15 = false" (identifier "bVar15") (= "=") (false "false")) (; ";")) (expression_statement "bVar12 = (!bVar13 && !bVar12) == bVar13;" (assignment_expression "bVar12 = (!bVar13 && !bVar12) == bVar13" (identifier "bVar12") (= "=") (binary_expression "(!bVar13 && !bVar12) == bVar13" (parenthesized_expression "(!bVar13 && !bVar12)" (( "(") (binary_expression "!bVar13 && !bVar12" (unary_expression "!bVar13" (! "!") (identifier "bVar13")) (&& "&&") (unary_expression "!bVar12" (! "!") (identifier "bVar12"))) () ")")) (== "==") (identifier "bVar13"))) (; ";")) (if_statement "if (!bVar12) {\n      iVar5 = 9;\n      pbVar9 = param_1;\n      pbVar11 = (byte *)"-hostkey";\n      do {\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        bVar15 = *pbVar9 < *pbVar11;\n        bVar12 = *pbVar9 == *pbVar11;\n        pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n      } while (bVar12);\n      bVar12 = (!bVar15 && !bVar12) == bVar15;\n      if (bVar12) {\n        if (param_2 == (char *)0x0) {\n          return 0xfffffffe;\n        }\n        if (param_3 < 0) {\n          return 2;\n        }\nLAB_00016218:\n        if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n        if (param_3 != 0) goto LAB_00016123;\n        goto LAB_00015f0d;\n      }\n      goto LAB_0001624d;\n    }" (if "if") (parenthesized_expression "(!bVar12)" (( "(") (unary_expression "!bVar12" (! "!") (identifier "bVar12")) () ")")) (compound_statement "{\n      iVar5 = 9;\n      pbVar9 = param_1;\n      pbVar11 = (byte *)"-hostkey";\n      do {\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        bVar15 = *pbVar9 < *pbVar11;\n        bVar12 = *pbVar9 == *pbVar11;\n        pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n      } while (bVar12);\n      bVar12 = (!bVar15 && !bVar12) == bVar15;\n      if (bVar12) {\n        if (param_2 == (char *)0x0) {\n          return 0xfffffffe;\n        }\n        if (param_3 < 0) {\n          return 2;\n        }\nLAB_00016218:\n        if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n        if (param_3 != 0) goto LAB_00016123;\n        goto LAB_00015f0d;\n      }\n      goto LAB_0001624d;\n    }" ({ "{") (expression_statement "iVar5 = 9;" (assignment_expression "iVar5 = 9" (identifier "iVar5") (= "=") (number_literal "9")) (; ";")) (expression_statement "pbVar9 = param_1;" (assignment_expression "pbVar9 = param_1" (identifier "pbVar9") (= "=") (identifier "param_1")) (; ";")) (expression_statement "pbVar11 = (byte *)"-hostkey";" (assignment_expression "pbVar11 = (byte *)"-hostkey"" (identifier "pbVar11") (= "=") (cast_expression "(byte *)"-hostkey"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal ""-hostkey"" (" """) (string_content "-hostkey") (" """)))) (; ";")) (do_statement "do {\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        bVar15 = *pbVar9 < *pbVar11;\n        bVar12 = *pbVar9 == *pbVar11;\n        pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n      } while (bVar12);" (do "do") (compound_statement "{\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        bVar15 = *pbVar9 < *pbVar11;\n        bVar12 = *pbVar9 == *pbVar11;\n        pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n      }" ({ "{") (if_statement "if (iVar5 == 0) break;" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" (identifier "iVar5") (= "=") (binary_expression "iVar5 + -1" (identifier "iVar5") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar15 = *pbVar9 < *pbVar11;" (assignment_expression "bVar15 = *pbVar9 < *pbVar11" (identifier "bVar15") (= "=") (binary_expression "*pbVar9 < *pbVar11" (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")) (< "<") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")))) (; ";")) (expression_statement "bVar12 = *pbVar9 == *pbVar11;" (assignment_expression "bVar12 = *pbVar9 == *pbVar11" (identifier "bVar12") (= "=") (binary_expression "*pbVar9 == *pbVar11" (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")) (== "==") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")))) (; ";")) (expression_statement "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1" (identifier "pbVar9") (= "=") (binary_expression "pbVar9 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar17 * -2" (identifier "pbVar9") (+ "+") (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar17")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1" (identifier "pbVar11") (= "=") (binary_expression "pbVar11 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar17 * -2" (identifier "pbVar11") (+ "+") (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar17")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar12)" (( "(") (identifier "bVar12") () ")")) (; ";")) (expression_statement "bVar12 = (!bVar15 && !bVar12) == bVar15;" (assignment_expression "bVar12 = (!bVar15 && !bVar12) == bVar15" (identifier "bVar12") (= "=") (binary_expression "(!bVar15 && !bVar12) == bVar15" (parenthesized_expression "(!bVar15 && !bVar12)" (( "(") (binary_expression "!bVar15 && !bVar12" (unary_expression "!bVar15" (! "!") (identifier "bVar15")) (&& "&&") (unary_expression "!bVar12" (! "!") (identifier "bVar12"))) () ")")) (== "==") (identifier "bVar15"))) (; ";")) (if_statement "if (bVar12) {\n        if (param_2 == (char *)0x0) {\n          return 0xfffffffe;\n        }\n        if (param_3 < 0) {\n          return 2;\n        }\nLAB_00016218:\n        if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n        if (param_3 != 0) goto LAB_00016123;\n        goto LAB_00015f0d;\n      }" (if "if") (parenthesized_expression "(bVar12)" (( "(") (identifier "bVar12") () ")")) (compound_statement "{\n        if (param_2 == (char *)0x0) {\n          return 0xfffffffe;\n        }\n        if (param_3 < 0) {\n          return 2;\n        }\nLAB_00016218:\n        if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n        if (param_3 != 0) goto LAB_00016123;\n        goto LAB_00015f0d;\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") (; ";")) (} "}"))) (labeled_statement "LAB_00016218:\n        if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;" (statement_identifier "LAB_00016218") (: ":") (if_statement "if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;" (if "if") (parenthesized_expression "((DAT_0006f0a0 & 2) != 0)" (( "(") (binary_expression "(DAT_0006f0a0 & 2) != 0" (parenthesized_expression "(DAT_0006f0a0 & 2)" (( "(") (binary_expression "DAT_0006f0a0 & 2" (identifier "DAT_0006f0a0") (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_000161c3;" (goto "goto") (statement_identifier "LAB_000161c3") (; ";")))) (if_statement "if (param_3 != 0) goto LAB_00016123;" (if "if") (parenthesized_expression "(param_3 != 0)" (( "(") (binary_expression "param_3 != 0" (identifier "param_3") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00016123;" (goto "goto") (statement_identifier "LAB_00016123") (; ";"))) (goto_statement "goto LAB_00015f0d;" (goto "goto") (statement_identifier "LAB_00015f0d") (; ";")) (} "}"))) (goto_statement "goto LAB_0001624d;" (goto "goto") (statement_identifier "LAB_0001624d") (; ";")) (} "}"))) (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") (; ";")) (} "}"))) (if_statement "if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;" (if "if") (parenthesized_expression "((DAT_0006f0a0 & 2) != 0)" (( "(") (binary_expression "(DAT_0006f0a0 & 2) != 0" (parenthesized_expression "(DAT_0006f0a0 & 2)" (( "(") (binary_expression "DAT_0006f0a0 & 2" (identifier "DAT_0006f0a0") (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_000161c3;" (goto "goto") (statement_identifier "LAB_000161c3") (; ";"))) (if_statement "if (param_3 != 0) goto LAB_00016123;" (if "if") (parenthesized_expression "(param_3 != 0)" (( "(") (binary_expression "param_3 != 0" (identifier "param_3") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00016123;" (goto "goto") (statement_identifier "LAB_00016123") (; ";"))) (labeled_statement "LAB_00015ec5:\n    uVar14 = auStack_2c < (undefined1 *)0x4;" (statement_identifier "LAB_00015ec5") (: ":") (expression_statement "uVar14 = auStack_2c < (undefined1 *)0x4;" (assignment_expression "uVar14 = auStack_2c < (undefined1 *)0x4" (identifier "uVar14") (= "=") (binary_expression "auStack_2c < (undefined1 *)0x4" (identifier "auStack_2c") (< "<") (cast_expression "(undefined1 *)0x4" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x4")))) (; ";"))) (expression_statement "uVar16 = &stack0x00000000 == (undefined1 *)0x30;" (assignment_expression "uVar16 = &stack0x00000000 == (undefined1 *)0x30" (identifier "uVar16") (= "=") (binary_expression "&stack0x00000000 == (undefined1 *)0x30" (pointer_expression "&stack0x00000000" (& "&") (identifier "stack0x00000000")) (== "==") (cast_expression "(undefined1 *)0x30" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x30")))) (; ";")) (expression_statement "FUN_00018530();" (call_expression "FUN_00018530()" (identifier "FUN_00018530") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar5 = 9;" (assignment_expression "iVar5 = 9" (identifier "iVar5") (= "=") (number_literal "9")) (; ";")) (expression_statement "pbVar9 = param_1;" (assignment_expression "pbVar9 = param_1" (identifier "pbVar9") (= "=") (identifier "param_1")) (; ";")) (expression_statement "pbVar11 = (byte *)"-hostkey";" (assignment_expression "pbVar11 = (byte *)"-hostkey"" (identifier "pbVar11") (= "=") (cast_expression "(byte *)"-hostkey"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal ""-hostkey"" (" """) (string_content "-hostkey") (" """)))) (; ";")) (do_statement "do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);" (do "do") (compound_statement "{\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    }" ({ "{") (if_statement "if (iVar5 == 0) break;" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" (identifier "iVar5") (= "=") (binary_expression "iVar5 + -1" (identifier "iVar5") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "uVar14 = *pbVar9 < *pbVar11;" (assignment_expression "uVar14 = *pbVar9 < *pbVar11" (identifier "uVar14") (= "=") (binary_expression "*pbVar9 < *pbVar11" (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")) (< "<") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")))) (; ";")) (expression_statement "uVar16 = *pbVar9 == *pbVar11;" (assignment_expression "uVar16 = *pbVar9 == *pbVar11" (identifier "uVar16") (= "=") (binary_expression "*pbVar9 == *pbVar11" (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")) (== "==") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")))) (; ";")) (expression_statement "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1" (identifier "pbVar9") (= "=") (binary_expression "pbVar9 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar17 * -2" (identifier "pbVar9") (+ "+") (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar17")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1" (identifier "pbVar11") (= "=") (binary_expression "pbVar11 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar17 * -2" (identifier "pbVar11") (+ "+") (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar17")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((bool)uVar16)" (( "(") (cast_expression "(bool)uVar16" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar16")) () ")")) (; ";")) (expression_statement "bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;" (assignment_expression "bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14" (identifier "bVar12") (= "=") (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 "bool")) () ")") (identifier "uVar14"))) (&& "&&") (unary_expression "!(bool)uVar16" (! "!") (cast_expression "(bool)uVar16" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar16")))) () ")")) (== "==") (cast_expression "(bool)uVar14" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar14")))) (; ";")) (if_statement "if (!bVar12) goto LAB_00016248;" (if "if") (parenthesized_expression "(!bVar12)" (( "(") (unary_expression "!bVar12" (! "!") (identifier "bVar12")) () ")")) (goto_statement "goto LAB_00016248;" (goto "goto") (statement_identifier "LAB_00016248") (; ";"))) (if_statement "if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;" (if "if") (parenthesized_expression "((DAT_0006f0a0 & 2) != 0)" (( "(") (binary_expression "(DAT_0006f0a0 & 2) != 0" (parenthesized_expression "(DAT_0006f0a0 & 2)" (( "(") (binary_expression "DAT_0006f0a0 & 2" (identifier "DAT_0006f0a0") (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_000161c3;" (goto "goto") (statement_identifier "LAB_000161c3") (; ";"))) (labeled_statement "LAB_00015f0d:\n    FUN_00019990();" (statement_identifier "LAB_00015f0d") (: ":") (expression_statement "FUN_00019990();" (call_expression "FUN_00019990()" (identifier "FUN_00019990") (argument_list "()" (( "(") () ")"))) (; ";"))) (expression_statement "iVar5 = FUN_0001a210();" (assignment_expression "iVar5 = FUN_0001a210()" (identifier "iVar5") (= "=") (call_expression "FUN_0001a210()" (identifier "FUN_0001a210") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" (identifier "uVar14") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar16 = iVar5 == 0;" (assignment_expression "uVar16 = iVar5 == 0" (identifier "uVar16") (= "=") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0"))) (; ";")) (if_statement "if ((bool)uVar16) {\n      FUN_00044820();\n      FUN_0001a110();\n      return 2;\n    }" (if "if") (parenthesized_expression "((bool)uVar16)" (( "(") (cast_expression "(bool)uVar16" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar16")) () ")")) (compound_statement "{\n      FUN_00044820();\n      FUN_0001a110();\n      return 2;\n    }" ({ "{") (expression_statement "FUN_00044820();" (call_expression "FUN_00044820()" (identifier "FUN_00044820") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_0001a110();" (call_expression "FUN_0001a110()" (identifier "FUN_0001a110") (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return 2;" (return "return") (number_literal "2") (; ";")) (} "}"))) (expression_statement "uVar7 = 2;" (assignment_expression "uVar7 = 2" (identifier "uVar7") (= "=") (number_literal "2")) (; ";")) (expression_statement "FUN_000185e0();" (call_expression "FUN_000185e0()" (identifier "FUN_000185e0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_0001a110();" (call_expression "FUN_0001a110()" (identifier "FUN_0001a110") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar5 = 3;" (assignment_expression "iVar5 = 3" (identifier "iVar5") (= "=") (number_literal "3")) (; ";")) (expression_statement "pbVar9 = param_1;" (assignment_expression "pbVar9 = param_1" (identifier "pbVar9") (= "=") (identifier "param_1")) (; ";")) (expression_statement "pbVar11 = &DAT_0004b0ec;" (assignment_expression "pbVar11 = &DAT_0004b0ec" (identifier "pbVar11") (= "=") (pointer_expression "&DAT_0004b0ec" (& "&") (identifier "DAT_0004b0ec"))) (; ";")) (do_statement "do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);" (do "do") (compound_statement "{\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    }" ({ "{") (if_statement "if (iVar5 == 0) break;" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" (identifier "iVar5") (= "=") (binary_expression "iVar5 + -1" (identifier "iVar5") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "uVar14 = *pbVar9 < *pbVar11;" (assignment_expression "uVar14 = *pbVar9 < *pbVar11" (identifier "uVar14") (= "=") (binary_expression "*pbVar9 < *pbVar11" (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")) (< "<") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")))) (; ";")) (expression_statement "uVar16 = *pbVar9 == *pbVar11;" (assignment_expression "uVar16 = *pbVar9 == *pbVar11" (identifier "uVar16") (= "=") (binary_expression "*pbVar9 == *pbVar11" (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")) (== "==") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")))) (; ";")) (expression_statement "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1" (identifier "pbVar9") (= "=") (binary_expression "pbVar9 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar17 * -2" (identifier "pbVar9") (+ "+") (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar17")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1" (identifier "pbVar11") (= "=") (binary_expression "pbVar11 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar17 * -2" (identifier "pbVar11") (+ "+") (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar17")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((bool)uVar16)" (( "(") (cast_expression "(bool)uVar16" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar16")) () ")")) (; ";")) (expression_statement "bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;" (assignment_expression "bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14" (identifier "bVar12") (= "=") (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 "bool")) () ")") (identifier "uVar14"))) (&& "&&") (unary_expression "!(bool)uVar16" (! "!") (cast_expression "(bool)uVar16" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar16")))) () ")")) (== "==") (cast_expression "(bool)uVar14" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar14")))) (; ";")) (if_statement "if (!bVar12) goto LAB_0001626b;" (if "if") (parenthesized_expression "(!bVar12)" (( "(") (unary_expression "!bVar12" (! "!") (identifier "bVar12")) () ")")) (goto_statement "goto LAB_0001626b;" (goto "goto") (statement_identifier "LAB_0001626b") (; ";"))) (expression_statement "bVar12 = (DAT_0006f0a0 & 3) == 0;" (assignment_expression "bVar12 = (DAT_0006f0a0 & 3) == 0" (identifier "bVar12") (= "=") (binary_expression "(DAT_0006f0a0 & 3) == 0" (parenthesized_expression "(DAT_0006f0a0 & 3)" (( "(") (binary_expression "DAT_0006f0a0 & 3" (identifier "DAT_0006f0a0") (& "&") (number_literal "3")) () ")")) (== "==") (number_literal "0"))) (; ";")) (if_statement "if (!bVar12) goto LAB_000161c3;" (if "if") (parenthesized_expression "(!bVar12)" (( "(") (unary_expression "!bVar12" (! "!") (identifier "bVar12")) () ")")) (goto_statement "goto LAB_000161c3;" (goto "goto") (statement_identifier "LAB_000161c3") (; ";"))) (labeled_statement "LAB_00015f8f:\n    bVar15 = false;" (statement_identifier "LAB_00015f8f") (: ":") (expression_statement "bVar15 = false;" (assignment_expression "bVar15 = false" (identifier "bVar15") (= "=") (false "false")) (; ";"))) (expression_statement "iVar5 = 3;" (assignment_expression "iVar5 = 3" (identifier "iVar5") (= "=") (number_literal "3")) (; ";")) (expression_statement "pbVar9 = param_1;" (assignment_expression "pbVar9 = param_1" (identifier "pbVar9") (= "=") (identifier "param_1")) (; ";")) (expression_statement "pbVar11 = (byte *)0x53a3b;" (assignment_expression "pbVar11 = (byte *)0x53a3b" (identifier "pbVar11") (= "=") (cast_expression "(byte *)0x53a3b" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x53a3b"))) (; ";")) (do_statement "do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);" (do "do") (compound_statement "{\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    }" ({ "{") (if_statement "if (iVar5 == 0) break;" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" (identifier "iVar5") (= "=") (binary_expression "iVar5 + -1" (identifier "iVar5") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar15 = *pbVar9 < *pbVar11;" (assignment_expression "bVar15 = *pbVar9 < *pbVar11" (identifier "bVar15") (= "=") (binary_expression "*pbVar9 < *pbVar11" (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")) (< "<") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")))) (; ";")) (expression_statement "bVar12 = *pbVar9 == *pbVar11;" (assignment_expression "bVar12 = *pbVar9 == *pbVar11" (identifier "bVar12") (= "=") (binary_expression "*pbVar9 == *pbVar11" (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")) (== "==") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")))) (; ";")) (expression_statement "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1" (identifier "pbVar9") (= "=") (binary_expression "pbVar9 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar17 * -2" (identifier "pbVar9") (+ "+") (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar17")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1" (identifier "pbVar11") (= "=") (binary_expression "pbVar11 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar17 * -2" (identifier "pbVar11") (+ "+") (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar17")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar12)" (( "(") (identifier "bVar12") () ")")) (; ";")) (if_statement "if ((!bVar15 && !bVar12) == bVar15) {\n      FUN_00019ef0();\n      FUN_00019990();\n    }\n    else {\n      iVar5 = FUN_00019140();\n      if (iVar5 == 0) {\n        FUN_00044820();\n        return 2;\n      }\n      do {\n        iVar5 = FUN_00019140();\n      } while (iVar5 != 0);\n      FUN_00019ef0();\n      FUN_00019990();\n    }" (if "if") (parenthesized_expression "((!bVar15 && !bVar12) == bVar15)" (( "(") (binary_expression "(!bVar15 && !bVar12) == bVar15" (parenthesized_expression "(!bVar15 && !bVar12)" (( "(") (binary_expression "!bVar15 && !bVar12" (unary_expression "!bVar15" (! "!") (identifier "bVar15")) (&& "&&") (unary_expression "!bVar12" (! "!") (identifier "bVar12"))) () ")")) (== "==") (identifier "bVar15")) () ")")) (compound_statement "{\n      FUN_00019ef0();\n      FUN_00019990();\n    }" ({ "{") (expression_statement "FUN_00019ef0();" (call_expression "FUN_00019ef0()" (identifier "FUN_00019ef0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00019990();" (call_expression "FUN_00019990()" (identifier "FUN_00019990") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")) (else_clause "else {\n      iVar5 = FUN_00019140();\n      if (iVar5 == 0) {\n        FUN_00044820();\n        return 2;\n      }\n      do {\n        iVar5 = FUN_00019140();\n      } while (iVar5 != 0);\n      FUN_00019ef0();\n      FUN_00019990();\n    }" (else "else") (compound_statement "{\n      iVar5 = FUN_00019140();\n      if (iVar5 == 0) {\n        FUN_00044820();\n        return 2;\n      }\n      do {\n        iVar5 = FUN_00019140();\n      } while (iVar5 != 0);\n      FUN_00019ef0();\n      FUN_00019990();\n    }" ({ "{") (expression_statement "iVar5 = FUN_00019140();" (assignment_expression "iVar5 = FUN_00019140()" (identifier "iVar5") (= "=") (call_expression "FUN_00019140()" (identifier "FUN_00019140") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar5 == 0) {\n        FUN_00044820();\n        return 2;\n      }" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        FUN_00044820();\n        return 2;\n      }" ({ "{") (expression_statement "FUN_00044820();" (call_expression "FUN_00044820()" (identifier "FUN_00044820") (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return 2;" (return "return") (number_literal "2") (; ";")) (} "}"))) (do_statement "do {\n        iVar5 = FUN_00019140();\n      } while (iVar5 != 0);" (do "do") (compound_statement "{\n        iVar5 = FUN_00019140();\n      }" ({ "{") (expression_statement "iVar5 = FUN_00019140();" (assignment_expression "iVar5 = FUN_00019140()" (identifier "iVar5") (= "=") (call_expression "FUN_00019140()" (identifier "FUN_00019140") (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar5 != 0)" (( "(") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) () ")")) (; ";")) (expression_statement "FUN_00019ef0();" (call_expression "FUN_00019ef0()" (identifier "FUN_00019ef0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00019990();" (call_expression "FUN_00019990()" (identifier "FUN_00019990") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (expression_statement "uVar14 = (undefined1 *)0xffffffef < &stack0xffffffc4;" (assignment_expression "uVar14 = (undefined1 *)0xffffffef < &stack0xffffffc4" (identifier "uVar14") (= "=") (binary_expression "(undefined1 *)0xffffffef < &stack0xffffffc4" (cast_expression "(undefined1 *)0xffffffef" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffef")) (< "<") (pointer_expression "&stack0xffffffc4" (& "&") (identifier "stack0xffffffc4")))) (; ";")) (expression_statement "uVar16 = &stack0x00000000 == (undefined1 *)0x2c;" (assignment_expression "uVar16 = &stack0x00000000 == (undefined1 *)0x2c" (identifier "uVar16") (= "=") (binary_expression "&stack0x00000000 == (undefined1 *)0x2c" (pointer_expression "&stack0x00000000" (& "&") (identifier "stack0x00000000")) (== "==") (cast_expression "(undefined1 *)0x2c" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x2c")))) (; ";")) (expression_statement "uVar7 = 2;" (assignment_expression "uVar7 = 2" (identifier "uVar7") (= "=") (number_literal "2")) (; ";")) (expression_statement "FUN_000185e0();" (call_expression "FUN_000185e0()" (identifier "FUN_000185e0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_0001a110();" (call_expression "FUN_0001a110()" (identifier "FUN_0001a110") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_0001a110();" (call_expression "FUN_0001a110()" (identifier "FUN_0001a110") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar5 = 4;" (assignment_expression "iVar5 = 4" (identifier "iVar5") (= "=") (number_literal "4")) (; ";")) (expression_statement "pbVar9 = param_1;" (assignment_expression "pbVar9 = param_1" (identifier "pbVar9") (= "=") (identifier "param_1")) (; ";")) (expression_statement "pbVar11 = &DAT_0004b0fd;" (assignment_expression "pbVar11 = &DAT_0004b0fd" (identifier "pbVar11") (= "=") (pointer_expression "&DAT_0004b0fd" (& "&") (identifier "DAT_0004b0fd"))) (; ";")) (do_statement "do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while ((bool)uVar16);" (do "do") (compound_statement "{\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      uVar14 = *pbVar9 < *pbVar11;\n      uVar16 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    }" ({ "{") (if_statement "if (iVar5 == 0) break;" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" (identifier "iVar5") (= "=") (binary_expression "iVar5 + -1" (identifier "iVar5") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "uVar14 = *pbVar9 < *pbVar11;" (assignment_expression "uVar14 = *pbVar9 < *pbVar11" (identifier "uVar14") (= "=") (binary_expression "*pbVar9 < *pbVar11" (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")) (< "<") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")))) (; ";")) (expression_statement "uVar16 = *pbVar9 == *pbVar11;" (assignment_expression "uVar16 = *pbVar9 == *pbVar11" (identifier "uVar16") (= "=") (binary_expression "*pbVar9 == *pbVar11" (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")) (== "==") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")))) (; ";")) (expression_statement "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1" (identifier "pbVar9") (= "=") (binary_expression "pbVar9 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar17 * -2" (identifier "pbVar9") (+ "+") (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar17")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1" (identifier "pbVar11") (= "=") (binary_expression "pbVar11 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar17 * -2" (identifier "pbVar11") (+ "+") (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar17")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((bool)uVar16)" (( "(") (cast_expression "(bool)uVar16" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar16")) () ")")) (; ";")) (expression_statement "bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;" (assignment_expression "bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14" (identifier "bVar12") (= "=") (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 "bool")) () ")") (identifier "uVar14"))) (&& "&&") (unary_expression "!(bool)uVar16" (! "!") (cast_expression "(bool)uVar16" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar16")))) () ")")) (== "==") (cast_expression "(bool)uVar14" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar14")))) (; ";")) (if_statement "if (bVar12) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;\n      goto LAB_000162ed;\n    }" (if "if") (parenthesized_expression "(bVar12)" (( "(") (identifier "bVar12") () ")")) (compound_statement "{\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;\n      goto LAB_000162ed;\n    }" ({ "{") (if_statement "if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;" (if "if") (parenthesized_expression "((DAT_0006f0a0 & 3) != 0)" (( "(") (binary_expression "(DAT_0006f0a0 & 3) != 0" (parenthesized_expression "(DAT_0006f0a0 & 3)" (( "(") (binary_expression "DAT_0006f0a0 & 3" (identifier "DAT_0006f0a0") (& "&") (number_literal "3")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_000161c3;" (goto "goto") (statement_identifier "LAB_000161c3") (; ";"))) (goto_statement "goto LAB_000162ed;" (goto "goto") (statement_identifier "LAB_000162ed") (; ";")) (} "}"))) (labeled_statement "LAB_00016698:\n    bVar15 = false;" (statement_identifier "LAB_00016698") (: ":") (expression_statement "bVar15 = false;" (assignment_expression "bVar15 = false" (identifier "bVar15") (= "=") (false "false")) (; ";"))) (expression_statement "iVar5 = 3;" (assignment_expression "iVar5 = 3" (identifier "iVar5") (= "=") (number_literal "3")) (; ";")) (expression_statement "pbVar9 = param_1;" (assignment_expression "pbVar9 = param_1" (identifier "pbVar9") (= "=") (identifier "param_1")) (; ";")) (expression_statement "pbVar11 = &DAT_0004b101;" (assignment_expression "pbVar11 = &DAT_0004b101" (identifier "pbVar11") (= "=") (pointer_expression "&DAT_0004b101" (& "&") (identifier "DAT_0004b101"))) (; ";")) (do_statement "do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);" (do "do") (compound_statement "{\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    }" ({ "{") (if_statement "if (iVar5 == 0) break;" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" (identifier "iVar5") (= "=") (binary_expression "iVar5 + -1" (identifier "iVar5") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar15 = *pbVar9 < *pbVar11;" (assignment_expression "bVar15 = *pbVar9 < *pbVar11" (identifier "bVar15") (= "=") (binary_expression "*pbVar9 < *pbVar11" (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")) (< "<") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")))) (; ";")) (expression_statement "bVar12 = *pbVar9 == *pbVar11;" (assignment_expression "bVar12 = *pbVar9 == *pbVar11" (identifier "bVar12") (= "=") (binary_expression "*pbVar9 == *pbVar11" (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")) (== "==") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")))) (; ";")) (expression_statement "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1" (identifier "pbVar9") (= "=") (binary_expression "pbVar9 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar17 * -2" (identifier "pbVar9") (+ "+") (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar17")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1" (identifier "pbVar11") (= "=") (binary_expression "pbVar11 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar17 * -2" (identifier "pbVar11") (+ "+") (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar17")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar12)" (( "(") (identifier "bVar12") () ")")) (; ";")) (expression_statement "bVar12 = (!bVar15 && !bVar12) == bVar15;" (assignment_expression "bVar12 = (!bVar15 && !bVar12) == bVar15" (identifier "bVar12") (= "=") (binary_expression "(!bVar15 && !bVar12) == bVar15" (parenthesized_expression "(!bVar15 && !bVar12)" (( "(") (binary_expression "!bVar15 && !bVar12" (unary_expression "!bVar15" (! "!") (identifier "bVar15")) (&& "&&") (unary_expression "!bVar12" (! "!") (identifier "bVar12"))) () ")")) (== "==") (identifier "bVar15"))) (; ";")) (if_statement "if (bVar12) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;\n      if (param_3 != 0) goto LAB_00016123;\n      goto LAB_0001639b;\n    }" (if "if") (parenthesized_expression "(bVar12)" (( "(") (identifier "bVar12") () ")")) (compound_statement "{\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;\n      if (param_3 != 0) goto LAB_00016123;\n      goto LAB_0001639b;\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") (; ";")) (} "}"))) (if_statement "if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;" (if "if") (parenthesized_expression "((DAT_0006f0a0 & 3) != 0)" (( "(") (binary_expression "(DAT_0006f0a0 & 3) != 0" (parenthesized_expression "(DAT_0006f0a0 & 3)" (( "(") (binary_expression "DAT_0006f0a0 & 3" (identifier "DAT_0006f0a0") (& "&") (number_literal "3")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_000161c3;" (goto "goto") (statement_identifier "LAB_000161c3") (; ";"))) (if_statement "if (param_3 != 0) goto LAB_00016123;" (if "if") (parenthesized_expression "(param_3 != 0)" (( "(") (binary_expression "param_3 != 0" (identifier "param_3") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00016123;" (goto "goto") (statement_identifier "LAB_00016123") (; ";"))) (goto_statement "goto LAB_0001639b;" (goto "goto") (statement_identifier "LAB_0001639b") (; ";")) (} "}"))) (labeled_statement "LAB_000166e0:\n    bVar15 = false;" (statement_identifier "LAB_000166e0") (: ":") (expression_statement "bVar15 = false;" (assignment_expression "bVar15 = false" (identifier "bVar15") (= "=") (false "false")) (; ";"))) (expression_statement "iVar5 = 3;" (assignment_expression "iVar5 = 3" (identifier "iVar5") (= "=") (number_literal "3")) (; ";")) (expression_statement "pbVar9 = param_1;" (assignment_expression "pbVar9 = param_1" (identifier "pbVar9") (= "=") (identifier "param_1")) (; ";")) (expression_statement "pbVar11 = &DAT_0004b104;" (assignment_expression "pbVar11 = &DAT_0004b104" (identifier "pbVar11") (= "=") (pointer_expression "&DAT_0004b104" (& "&") (identifier "DAT_0004b104"))) (; ";")) (do_statement "do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);" (do "do") (compound_statement "{\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    }" ({ "{") (if_statement "if (iVar5 == 0) break;" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" (identifier "iVar5") (= "=") (binary_expression "iVar5 + -1" (identifier "iVar5") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar15 = *pbVar9 < *pbVar11;" (assignment_expression "bVar15 = *pbVar9 < *pbVar11" (identifier "bVar15") (= "=") (binary_expression "*pbVar9 < *pbVar11" (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")) (< "<") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")))) (; ";")) (expression_statement "bVar12 = *pbVar9 == *pbVar11;" (assignment_expression "bVar12 = *pbVar9 == *pbVar11" (identifier "bVar12") (= "=") (binary_expression "*pbVar9 == *pbVar11" (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")) (== "==") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")))) (; ";")) (expression_statement "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1" (identifier "pbVar9") (= "=") (binary_expression "pbVar9 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar17 * -2" (identifier "pbVar9") (+ "+") (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar17")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1" (identifier "pbVar11") (= "=") (binary_expression "pbVar11 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar17 * -2" (identifier "pbVar11") (+ "+") (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar17")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar12)" (( "(") (identifier "bVar12") () ")")) (; ";")) (expression_statement "bVar12 = (!bVar15 && !bVar12) == bVar15;" (assignment_expression "bVar12 = (!bVar15 && !bVar12) == bVar15" (identifier "bVar12") (= "=") (binary_expression "(!bVar15 && !bVar12) == bVar15" (parenthesized_expression "(!bVar15 && !bVar12)" (( "(") (binary_expression "!bVar15 && !bVar12" (unary_expression "!bVar15" (! "!") (identifier "bVar15")) (&& "&&") (unary_expression "!bVar12" (! "!") (identifier "bVar12"))) () ")")) (== "==") (identifier "bVar15"))) (; ";")) (if_statement "if (bVar12) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n      if (param_3 != 0) goto LAB_00016723;\n      goto LAB_000164a7;\n    }" (if "if") (parenthesized_expression "(bVar12)" (( "(") (identifier "bVar12") () ")")) (compound_statement "{\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n      if (param_3 != 0) goto LAB_00016723;\n      goto LAB_000164a7;\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") (; ";")) (} "}"))) (if_statement "if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;" (if "if") (parenthesized_expression "((DAT_0006f0a0 & 2) != 0)" (( "(") (binary_expression "(DAT_0006f0a0 & 2) != 0" (parenthesized_expression "(DAT_0006f0a0 & 2)" (( "(") (binary_expression "DAT_0006f0a0 & 2" (identifier "DAT_0006f0a0") (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_000161c3;" (goto "goto") (statement_identifier "LAB_000161c3") (; ";"))) (if_statement "if (param_3 != 0) goto LAB_00016723;" (if "if") (parenthesized_expression "(param_3 != 0)" (( "(") (binary_expression "param_3 != 0" (identifier "param_3") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00016723;" (goto "goto") (statement_identifier "LAB_00016723") (; ";"))) (goto_statement "goto LAB_000164a7;" (goto "goto") (statement_identifier "LAB_000164a7") (; ";")) (} "}"))) (labeled_statement "LAB_00016777:\n    bVar15 = false;" (statement_identifier "LAB_00016777") (: ":") (expression_statement "bVar15 = false;" (assignment_expression "bVar15 = false" (identifier "bVar15") (= "=") (false "false")) (; ";"))) (expression_statement "iVar5 = 4;" (assignment_expression "iVar5 = 4" (identifier "iVar5") (= "=") (number_literal "4")) (; ";")) (expression_statement "pbVar9 = param_1;" (assignment_expression "pbVar9 = param_1" (identifier "pbVar9") (= "=") (identifier "param_1")) (; ";")) (expression_statement "pbVar11 = &DAT_0004b107;" (assignment_expression "pbVar11 = &DAT_0004b107" (identifier "pbVar11") (= "=") (pointer_expression "&DAT_0004b107" (& "&") (identifier "DAT_0004b107"))) (; ";")) (do_statement "do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar12);" (do "do") (compound_statement "{\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar15 = *pbVar9 < *pbVar11;\n      bVar12 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    }" ({ "{") (if_statement "if (iVar5 == 0) break;" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" (identifier "iVar5") (= "=") (binary_expression "iVar5 + -1" (identifier "iVar5") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar15 = *pbVar9 < *pbVar11;" (assignment_expression "bVar15 = *pbVar9 < *pbVar11" (identifier "bVar15") (= "=") (binary_expression "*pbVar9 < *pbVar11" (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")) (< "<") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")))) (; ";")) (expression_statement "bVar12 = *pbVar9 == *pbVar11;" (assignment_expression "bVar12 = *pbVar9 == *pbVar11" (identifier "bVar12") (= "=") (binary_expression "*pbVar9 == *pbVar11" (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")) (== "==") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")))) (; ";")) (expression_statement "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1" (identifier "pbVar9") (= "=") (binary_expression "pbVar9 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar17 * -2" (identifier "pbVar9") (+ "+") (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar17")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1" (identifier "pbVar11") (= "=") (binary_expression "pbVar11 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar17 * -2" (identifier "pbVar11") (+ "+") (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar17")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar12)" (( "(") (identifier "bVar12") () ")")) (; ";")) (if_statement "if ((!bVar15 && !bVar12) == bVar15) {\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n      if (param_3 != 0) goto LAB_00016723;\n      goto LAB_000164f6;\n    }" (if "if") (parenthesized_expression "((!bVar15 && !bVar12) == bVar15)" (( "(") (binary_expression "(!bVar15 && !bVar12) == bVar15" (parenthesized_expression "(!bVar15 && !bVar12)" (( "(") (binary_expression "!bVar15 && !bVar12" (unary_expression "!bVar15" (! "!") (identifier "bVar15")) (&& "&&") (unary_expression "!bVar12" (! "!") (identifier "bVar12"))) () ")")) (== "==") (identifier "bVar15")) () ")")) (compound_statement "{\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n      if (param_3 != 0) goto LAB_00016723;\n      goto LAB_000164f6;\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") (; ";")) (} "}"))) (if_statement "if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;" (if "if") (parenthesized_expression "((DAT_0006f0a0 & 2) != 0)" (( "(") (binary_expression "(DAT_0006f0a0 & 2) != 0" (parenthesized_expression "(DAT_0006f0a0 & 2)" (( "(") (binary_expression "DAT_0006f0a0 & 2" (identifier "DAT_0006f0a0") (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_000161c3;" (goto "goto") (statement_identifier "LAB_000161c3") (; ";"))) (if_statement "if (param_3 != 0) goto LAB_00016723;" (if "if") (parenthesized_expression "(param_3 != 0)" (( "(") (binary_expression "param_3 != 0" (identifier "param_3") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00016723;" (goto "goto") (statement_identifier "LAB_00016723") (; ";"))) (goto_statement "goto LAB_000164f6;" (goto "goto") (statement_identifier "LAB_000164f6") (; ";")) (} "}"))) (expression_statement "iVar5 = strcmp((char *)param_1,"-agent");" (assignment_expression "iVar5 = strcmp((char *)param_1,"-agent")" (identifier "iVar5") (= "=") (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 ((iVar5 != 0) && (iVar5 = strcmp((char *)param_1,"-pagent"), iVar5 != 0)) goto LAB_0001685f;" (if "if") (parenthesized_expression "((iVar5 != 0) && (iVar5 = strcmp((char *)param_1,"-pagent"), iVar5 != 0))" (( "(") (binary_expression "(iVar5 != 0) && (iVar5 = strcmp((char *)param_1,"-pagent"), iVar5 != 0)" (parenthesized_expression "(iVar5 != 0)" (( "(") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar5 = strcmp((char *)param_1,"-pagent"), iVar5 != 0)" (( "(") (comma_expression "iVar5 = strcmp((char *)param_1,"-pagent"), iVar5 != 0" (assignment_expression "iVar5 = strcmp((char *)param_1,"-pagent")" (identifier "iVar5") (= "=") (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") (" """)) () ")")))) (, ",") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (goto_statement "goto LAB_0001685f;" (goto "goto") (statement_identifier "LAB_0001685f") (; ";"))) (labeled_statement "LAB_00016884:\n    if (param_3 < 0) {\n      return 1;\n    }" (statement_identifier "LAB_00016884") (: ":") (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_0001688c:\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;" (statement_identifier "LAB_0001688c") (: ":") (if_statement "if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;" (if "if") (parenthesized_expression "((DAT_0006f0a0 & 2) != 0)" (( "(") (binary_expression "(DAT_0006f0a0 & 2) != 0" (parenthesized_expression "(DAT_0006f0a0 & 2)" (( "(") (binary_expression "DAT_0006f0a0 & 2" (identifier "DAT_0006f0a0") (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00015d50;" (goto "goto") (statement_identifier "LAB_00015d50") (; ";")))) (if_statement "if (param_3 != 0) goto LAB_00015c78;" (if "if") (parenthesized_expression "(param_3 != 0)" (( "(") (binary_expression "param_3 != 0" (identifier "param_3") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00015c78;" (goto "goto") (statement_identifier "LAB_00015c78") (; ";"))) (labeled_statement "LAB_000168a1:\n    FUN_000183f0();" (statement_identifier "LAB_000168a1") (: ":") (expression_statement "FUN_000183f0();" (call_expression "FUN_000183f0()" (identifier "FUN_000183f0") (argument_list "()" (( "(") () ")"))) (; ";"))) (expression_statement "iVar5 = strcmp((char *)param_1,"-noagent");" (assignment_expression "iVar5 = strcmp((char *)param_1,"-noagent")" (identifier "iVar5") (= "=") (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 (iVar5 != 0) {\n      uVar7 = 1;\n      iVar5 = strcmp((char *)param_1,"-nopagent");\n      if (iVar5 != 0) goto LAB_000165eb;\n      goto LAB_00016e44;\n    }" (if "if") (parenthesized_expression "(iVar5 != 0)" (( "(") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      uVar7 = 1;\n      iVar5 = strcmp((char *)param_1,"-nopagent");\n      if (iVar5 != 0) goto LAB_000165eb;\n      goto LAB_00016e44;\n    }" ({ "{") (expression_statement "uVar7 = 1;" (assignment_expression "uVar7 = 1" (identifier "uVar7") (= "=") (number_literal "1")) (; ";")) (expression_statement "iVar5 = strcmp((char *)param_1,"-nopagent");" (assignment_expression "iVar5 = strcmp((char *)param_1,"-nopagent")" (identifier "iVar5") (= "=") (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") (" """)) () ")")))) (; ";")) (if_statement "if (iVar5 != 0) goto LAB_000165eb;" (if "if") (parenthesized_expression "(iVar5 != 0)" (( "(") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_000165eb;" (goto "goto") (statement_identifier "LAB_000165eb") (; ";"))) (goto_statement "goto LAB_00016e44;" (goto "goto") (statement_identifier "LAB_00016e44") (; ";")) (} "}"))) (if_statement "if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;" (if "if") (parenthesized_expression "((DAT_0006f0a0 & 2) != 0)" (( "(") (binary_expression "(DAT_0006f0a0 & 2) != 0" (parenthesized_expression "(DAT_0006f0a0 & 2)" (( "(") (binary_expression "DAT_0006f0a0 & 2" (identifier "DAT_0006f0a0") (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00015d50;" (goto "goto") (statement_identifier "LAB_00015d50") (; ";"))) (labeled_statement "LAB_000168e1:\n    FUN_000183f0();" (statement_identifier "LAB_000168e1") (: ":") (expression_statement "FUN_000183f0();" (call_expression "FUN_000183f0()" (identifier "FUN_000183f0") (argument_list "()" (( "(") () ")"))) (; ";"))) (expression_statement "iVar5 = strcmp((char *)param_1,"-A");" (assignment_expression "iVar5 = strcmp((char *)param_1,"-A")" (identifier "iVar5") (= "=") (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 (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      goto LAB_00016921;\n    }" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      goto LAB_00016921;\n    }" ({ "{") (if_statement "if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;" (if "if") (parenthesized_expression "((DAT_0006f0a0 & 3) != 0)" (( "(") (binary_expression "(DAT_0006f0a0 & 3) != 0" (parenthesized_expression "(DAT_0006f0a0 & 3)" (( "(") (binary_expression "DAT_0006f0a0 & 3" (identifier "DAT_0006f0a0") (& "&") (number_literal "3")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00015d50;" (goto "goto") (statement_identifier "LAB_00015d50") (; ";"))) (goto_statement "goto LAB_00016921;" (goto "goto") (statement_identifier "LAB_00016921") (; ";")) (} "}"))) (expression_statement "uVar7 = 1;" (assignment_expression "uVar7 = 1" (identifier "uVar7") (= "=") (number_literal "1")) (; ";")) (expression_statement "iVar5 = strcmp((char *)param_1,"-a");" (assignment_expression "iVar5 = strcmp((char *)param_1,"-a")" (identifier "iVar5") (= "=") (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 (iVar5 == 0) {\nLAB_0001700b:\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\n      goto LAB_00016961;\n    }" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0001700b:\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\n      goto LAB_00016961;\n    }" ({ "{") (labeled_statement "LAB_0001700b:\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;" (statement_identifier "LAB_0001700b") (: ":") (if_statement "if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;" (if "if") (parenthesized_expression "((DAT_0006f0a0 & 3) != 0)" (( "(") (binary_expression "(DAT_0006f0a0 & 3) != 0" (parenthesized_expression "(DAT_0006f0a0 & 3)" (( "(") (binary_expression "DAT_0006f0a0 & 3" (identifier "DAT_0006f0a0") (& "&") (number_literal "3")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00015d50;" (goto "goto") (statement_identifier "LAB_00015d50") (; ";")))) (if_statement "if (param_3 != 0) goto LAB_00015c78;" (if "if") (parenthesized_expression "(param_3 != 0)" (( "(") (binary_expression "param_3 != 0" (identifier "param_3") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00015c78;" (goto "goto") (statement_identifier "LAB_00015c78") (; ";"))) (goto_statement "goto LAB_00016961;" (goto "goto") (statement_identifier "LAB_00016961") (; ";")) (} "}"))) (labeled_statement "LAB_00016f0f:\n    iVar5 = strcmp((char *)param_1,"-X");" (statement_identifier "LAB_00016f0f") (: ":") (expression_statement "iVar5 = strcmp((char *)param_1,"-X");" (assignment_expression "iVar5 = strcmp((char *)param_1,"-X")" (identifier "iVar5") (= "=") (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 (iVar5 != 0) goto LAB_00016f97;" (if "if") (parenthesized_expression "(iVar5 != 0)" (( "(") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00016f97;" (goto "goto") (statement_identifier "LAB_00016f97") (; ";"))) (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_00016f38:\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;" (statement_identifier "LAB_00016f38") (: ":") (if_statement "if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;" (if "if") (parenthesized_expression "((DAT_0006f0a0 & 3) != 0)" (( "(") (binary_expression "(DAT_0006f0a0 & 3) != 0" (parenthesized_expression "(DAT_0006f0a0 & 3)" (( "(") (binary_expression "DAT_0006f0a0 & 3" (identifier "DAT_0006f0a0") (& "&") (number_literal "3")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00015d50;" (goto "goto") (statement_identifier "LAB_00015d50") (; ";")))) (if_statement "if (param_3 != 0) goto LAB_00015c78;" (if "if") (parenthesized_expression "(param_3 != 0)" (( "(") (binary_expression "param_3 != 0" (identifier "param_3") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00015c78;" (goto "goto") (statement_identifier "LAB_00015c78") (; ";"))) (labeled_statement "LAB_000169a1:\n    FUN_000183f0();" (statement_identifier "LAB_000169a1") (: ":") (expression_statement "FUN_000183f0();" (call_expression "FUN_000183f0()" (identifier "FUN_000183f0") (argument_list "()" (( "(") () ")"))) (; ";"))) (expression_statement "iVar5 = strcmp((char *)param_1,"-x");" (assignment_expression "iVar5 = strcmp((char *)param_1,"-x")" (identifier "iVar5") (= "=") (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 (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\nLAB_000169e4:\n      FUN_000183f0();\n      iVar5 = strcmp((char *)param_1,"-t");\n      if (iVar5 == 0) {\n        if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n        goto LAB_00016a27;\n      }\n      uVar7 = 1;\n      iVar5 = strcmp((char *)param_1,"-T");\n      if (iVar5 == 0) goto LAB_0001770d;\nLAB_00017759:\n      iVar5 = strcmp((char *)param_1,"-N");\n      if (iVar5 != 0) goto LAB_00017727;\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_000176cd:\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\n      goto LAB_00016aa7;\n    }" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\nLAB_000169e4:\n      FUN_000183f0();\n      iVar5 = strcmp((char *)param_1,"-t");\n      if (iVar5 == 0) {\n        if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n        goto LAB_00016a27;\n      }\n      uVar7 = 1;\n      iVar5 = strcmp((char *)param_1,"-T");\n      if (iVar5 == 0) goto LAB_0001770d;\nLAB_00017759:\n      iVar5 = strcmp((char *)param_1,"-N");\n      if (iVar5 != 0) goto LAB_00017727;\n      if (param_3 < 0) {\n        return 1;\n      }\nLAB_000176cd:\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      if (param_3 != 0) goto LAB_00015c78;\n      goto LAB_00016aa7;\n    }" ({ "{") (if_statement "if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;" (if "if") (parenthesized_expression "((DAT_0006f0a0 & 3) != 0)" (( "(") (binary_expression "(DAT_0006f0a0 & 3) != 0" (parenthesized_expression "(DAT_0006f0a0 & 3)" (( "(") (binary_expression "DAT_0006f0a0 & 3" (identifier "DAT_0006f0a0") (& "&") (number_literal "3")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00015d50;" (goto "goto") (statement_identifier "LAB_00015d50") (; ";"))) (labeled_statement "LAB_000169e4:\n      FUN_000183f0();" (statement_identifier "LAB_000169e4") (: ":") (expression_statement "FUN_000183f0();" (call_expression "FUN_000183f0()" (identifier "FUN_000183f0") (argument_list "()" (( "(") () ")"))) (; ";"))) (expression_statement "iVar5 = strcmp((char *)param_1,"-t");" (assignment_expression "iVar5 = strcmp((char *)param_1,"-t")" (identifier "iVar5") (= "=") (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 (iVar5 == 0) {\n        if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n        goto LAB_00016a27;\n      }" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n        goto LAB_00016a27;\n      }" ({ "{") (if_statement "if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;" (if "if") (parenthesized_expression "((DAT_0006f0a0 & 3) != 0)" (( "(") (binary_expression "(DAT_0006f0a0 & 3) != 0" (parenthesized_expression "(DAT_0006f0a0 & 3)" (( "(") (binary_expression "DAT_0006f0a0 & 3" (identifier "DAT_0006f0a0") (& "&") (number_literal "3")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00015d50;" (goto "goto") (statement_identifier "LAB_00015d50") (; ";"))) (goto_statement "goto LAB_00016a27;" (goto "goto") (statement_identifier "LAB_00016a27") (; ";")) (} "}"))) (expression_statement "uVar7 = 1;" (assignment_expression "uVar7 = 1" (identifier "uVar7") (= "=") (number_literal "1")) (; ";")) (expression_statement "iVar5 = strcmp((char *)param_1,"-T");" (assignment_expression "iVar5 = strcmp((char *)param_1,"-T")" (identifier "iVar5") (= "=") (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 (iVar5 == 0) goto LAB_0001770d;" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0001770d;" (goto "goto") (statement_identifier "LAB_0001770d") (; ";"))) (labeled_statement "LAB_00017759:\n      iVar5 = strcmp((char *)param_1,"-N");" (statement_identifier "LAB_00017759") (: ":") (expression_statement "iVar5 = strcmp((char *)param_1,"-N");" (assignment_expression "iVar5 = strcmp((char *)param_1,"-N")" (identifier "iVar5") (= "=") (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 (iVar5 != 0) goto LAB_00017727;" (if "if") (parenthesized_expression "(iVar5 != 0)" (( "(") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00017727;" (goto "goto") (statement_identifier "LAB_00017727") (; ";"))) (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_000176cd:\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;" (statement_identifier "LAB_000176cd") (: ":") (if_statement "if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;" (if "if") (parenthesized_expression "((DAT_0006f0a0 & 3) != 0)" (( "(") (binary_expression "(DAT_0006f0a0 & 3) != 0" (parenthesized_expression "(DAT_0006f0a0 & 3)" (( "(") (binary_expression "DAT_0006f0a0 & 3" (identifier "DAT_0006f0a0") (& "&") (number_literal "3")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00015d50;" (goto "goto") (statement_identifier "LAB_00015d50") (; ";")))) (if_statement "if (param_3 != 0) goto LAB_00015c78;" (if "if") (parenthesized_expression "(param_3 != 0)" (( "(") (binary_expression "param_3 != 0" (identifier "param_3") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00015c78;" (goto "goto") (statement_identifier "LAB_00015c78") (; ";"))) (goto_statement "goto LAB_00016aa7;" (goto "goto") (statement_identifier "LAB_00016aa7") (; ";")) (} "}"))) (expression_statement "uVar7 = 1;" (assignment_expression "uVar7 = 1" (identifier "uVar7") (= "=") (number_literal "1")) (; ";")) (expression_statement "iVar5 = strcmp((char *)param_1,"-t");" (assignment_expression "iVar5 = strcmp((char *)param_1,"-t")" (identifier "iVar5") (= "=") (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 (iVar5 != 0) goto LAB_000177b1;" (if "if") (parenthesized_expression "(iVar5 != 0)" (( "(") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_000177b1;" (goto "goto") (statement_identifier "LAB_000177b1") (; ";"))) (labeled_statement "LAB_0001707c:\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;" (statement_identifier "LAB_0001707c") (: ":") (if_statement "if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;" (if "if") (parenthesized_expression "((DAT_0006f0a0 & 3) != 0)" (( "(") (binary_expression "(DAT_0006f0a0 & 3) != 0" (parenthesized_expression "(DAT_0006f0a0 & 3)" (( "(") (binary_expression "DAT_0006f0a0 & 3" (identifier "DAT_0006f0a0") (& "&") (number_literal "3")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00015d50;" (goto "goto") (statement_identifier "LAB_00015d50") (; ";")))) (if_statement "if (param_3 != 0) goto LAB_00017091;" (if "if") (parenthesized_expression "(param_3 != 0)" (( "(") (binary_expression "param_3 != 0" (identifier "param_3") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00017091;" (goto "goto") (statement_identifier "LAB_00017091") (; ";"))) (labeled_statement "LAB_00016a27:\n    FUN_000183f0();" (statement_identifier "LAB_00016a27") (: ":") (expression_statement "FUN_000183f0();" (call_expression "FUN_000183f0()" (identifier "FUN_000183f0") (argument_list "()" (( "(") () ")"))) (; ";"))) (expression_statement "iVar5 = strcmp((char *)param_1,"-T");" (assignment_expression "iVar5 = strcmp((char *)param_1,"-T")" (identifier "iVar5") (= "=") (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 (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      goto LAB_00016a67;\n    }" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;\n      goto LAB_00016a67;\n    }" ({ "{") (if_statement "if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;" (if "if") (parenthesized_expression "((DAT_0006f0a0 & 3) != 0)" (( "(") (binary_expression "(DAT_0006f0a0 & 3) != 0" (parenthesized_expression "(DAT_0006f0a0 & 3)" (( "(") (binary_expression "DAT_0006f0a0 & 3" (identifier "DAT_0006f0a0") (& "&") (number_literal "3")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00015d50;" (goto "goto") (statement_identifier "LAB_00015d50") (; ";"))) (goto_statement "goto LAB_00016a67;" (goto "goto") (statement_identifier "LAB_00016a67") (; ";")) (} "}"))) (expression_statement "uVar7 = 1;" (assignment_expression "uVar7 = 1" (identifier "uVar7") (= "=") (number_literal "1")) (; ";")) (expression_statement "iVar5 = strcmp((char *)param_1,"-N");" (assignment_expression "iVar5 = strcmp((char *)param_1,"-N")" (identifier "iVar5") (= "=") (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 (iVar5 == 0) goto LAB_000176cd;" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000176cd;" (goto "goto") (statement_identifier "LAB_000176cd") (; ";"))) (labeled_statement "LAB_00017727:\n    iVar5 = strcmp((char *)param_1,"-C");" (statement_identifier "LAB_00017727") (: ":") (expression_statement "iVar5 = strcmp((char *)param_1,"-C");" (assignment_expression "iVar5 = strcmp((char *)param_1,"-C")" (identifier "iVar5") (= "=") (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 (iVar5 != 0) goto LAB_00017679;" (if "if") (parenthesized_expression "(iVar5 != 0)" (( "(") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00017679;" (goto "goto") (statement_identifier "LAB_00017679") (; ";"))) (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_0001762d:\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;" (statement_identifier "LAB_0001762d") (: ":") (if_statement "if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;" (if "if") (parenthesized_expression "((DAT_0006f0a0 & 2) != 0)" (( "(") (binary_expression "(DAT_0006f0a0 & 2) != 0" (parenthesized_expression "(DAT_0006f0a0 & 2)" (( "(") (binary_expression "DAT_0006f0a0 & 2" (identifier "DAT_0006f0a0") (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00015d50;" (goto "goto") (statement_identifier "LAB_00015d50") (; ";")))) (if_statement "if (param_3 != 0) goto LAB_00015c78;" (if "if") (parenthesized_expression "(param_3 != 0)" (( "(") (binary_expression "param_3 != 0" (identifier "param_3") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00015c78;" (goto "goto") (statement_identifier "LAB_00015c78") (; ";"))) (labeled_statement "LAB_00016ae7:\n    FUN_000183f0();" (statement_identifier "LAB_00016ae7") (: ":") (expression_statement "FUN_000183f0();" (call_expression "FUN_000183f0()" (identifier "FUN_000183f0") (argument_list "()" (( "(") () ")"))) (; ";"))) (expression_statement "iVar5 = strcmp((char *)param_1,"-1");" (assignment_expression "iVar5 = strcmp((char *)param_1,"-1")" (identifier "iVar5") (= "=") (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 (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\nLAB_00016b27:\n      FUN_000183f0();\n      iVar5 = strcmp((char *)param_1,"-2");\n      if (iVar5 == 0) {\n        if ((DAT_0006f0a0 & 2) != 0) {\nLAB_00015d50:\n          FUN_00044820();\n          return 1;\n        }\n        goto LAB_00016b67;\n      }\n    }\n    else {\n      iVar5 = strcmp((char *)param_1,"-2");\n      if (iVar5 == 0) goto LAB_000175ad;\n    }" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;\nLAB_00016b27:\n      FUN_000183f0();\n      iVar5 = strcmp((char *)param_1,"-2");\n      if (iVar5 == 0) {\n        if ((DAT_0006f0a0 & 2) != 0) {\nLAB_00015d50:\n          FUN_00044820();\n          return 1;\n        }\n        goto LAB_00016b67;\n      }\n    }" ({ "{") (if_statement "if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;" (if "if") (parenthesized_expression "((DAT_0006f0a0 & 2) != 0)" (( "(") (binary_expression "(DAT_0006f0a0 & 2) != 0" (parenthesized_expression "(DAT_0006f0a0 & 2)" (( "(") (binary_expression "DAT_0006f0a0 & 2" (identifier "DAT_0006f0a0") (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00015d50;" (goto "goto") (statement_identifier "LAB_00015d50") (; ";"))) (labeled_statement "LAB_00016b27:\n      FUN_000183f0();" (statement_identifier "LAB_00016b27") (: ":") (expression_statement "FUN_000183f0();" (call_expression "FUN_000183f0()" (identifier "FUN_000183f0") (argument_list "()" (( "(") () ")"))) (; ";"))) (expression_statement "iVar5 = strcmp((char *)param_1,"-2");" (assignment_expression "iVar5 = strcmp((char *)param_1,"-2")" (identifier "iVar5") (= "=") (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 (iVar5 == 0) {\n        if ((DAT_0006f0a0 & 2) != 0) {\nLAB_00015d50:\n          FUN_00044820();\n          return 1;\n        }\n        goto LAB_00016b67;\n      }" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        if ((DAT_0006f0a0 & 2) != 0) {\nLAB_00015d50:\n          FUN_00044820();\n          return 1;\n        }\n        goto LAB_00016b67;\n      }" ({ "{") (if_statement "if ((DAT_0006f0a0 & 2) != 0) {\nLAB_00015d50:\n          FUN_00044820();\n          return 1;\n        }" (if "if") (parenthesized_expression "((DAT_0006f0a0 & 2) != 0)" (( "(") (binary_expression "(DAT_0006f0a0 & 2) != 0" (parenthesized_expression "(DAT_0006f0a0 & 2)" (( "(") (binary_expression "DAT_0006f0a0 & 2" (identifier "DAT_0006f0a0") (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\nLAB_00015d50:\n          FUN_00044820();\n          return 1;\n        }" ({ "{") (labeled_statement "LAB_00015d50:\n          FUN_00044820();" (statement_identifier "LAB_00015d50") (: ":") (expression_statement "FUN_00044820();" (call_expression "FUN_00044820()" (identifier "FUN_00044820") (argument_list "()" (( "(") () ")"))) (; ";"))) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (goto_statement "goto LAB_00016b67;" (goto "goto") (statement_identifier "LAB_00016b67") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n      iVar5 = strcmp((char *)param_1,"-2");\n      if (iVar5 == 0) goto LAB_000175ad;\n    }" (else "else") (compound_statement "{\n      iVar5 = strcmp((char *)param_1,"-2");\n      if (iVar5 == 0) goto LAB_000175ad;\n    }" ({ "{") (expression_statement "iVar5 = strcmp((char *)param_1,"-2");" (assignment_expression "iVar5 = strcmp((char *)param_1,"-2")" (identifier "iVar5") (= "=") (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 (iVar5 == 0) goto LAB_000175ad;" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000175ad;" (goto "goto") (statement_identifier "LAB_000175ad") (; ";"))) (} "}")))) (expression_statement "uVar7 = 1;" (assignment_expression "uVar7 = 1" (identifier "uVar7") (= "=") (number_literal "1")) (; ";")) (} "}")))) (expression_statement "iVar5 = strcmp((char *)param_1,"-i");" (assignment_expression "iVar5 = strcmp((char *)param_1,"-i")" (identifier "iVar5") (= "=") (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 (iVar5 == 0) {\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n    if (param_3 != 0) goto LAB_00016123;\n    FUN_00041790();\n    FUN_00018770();\n    FUN_00041820();\n    iVar5 = strcmp((char *)param_1,"-4");\n    if ((iVar5 == 0) || (iVar5 = strcmp((char *)param_1,"-ipv4"), iVar5 == 0)) goto LAB_00017485;\n    iVar5 = strcmp((char *)param_1,"-6");\n    if (iVar5 == 0) goto LAB_00016c88;\n    uVar7 = 2;\n    iVar5 = strcmp((char *)param_1,"-ipv6");\njoined_r0x000174dc:\n    if (iVar5 == 0) goto LAB_00016c88;\n  }\n  else {\n    iVar5 = strcmp((char *)param_1,"-4");\n    if ((iVar5 == 0) || (iVar5 = strcmp((char *)param_1,"-ipv4"), iVar5 == 0)) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\nLAB_00017091:\n        FUN_00015950();\n        return 1;\n      }\nLAB_00017485:\n      FUN_000183f0();\n      iVar5 = strcmp((char *)param_1,"-6");\n      if (iVar5 != 0) {\n        uVar7 = 1;\n        iVar5 = strcmp((char *)param_1,"-ipv6");\n        goto joined_r0x000174dc;\n      }\n    }\n    else {\n      iVar5 = strcmp((char *)param_1,"-6");\n      if ((iVar5 != 0) && (iVar5 = strcmp((char *)param_1,"-ipv6"), iVar5 != 0)) goto LAB_00016ca6;\n      if (param_3 < 0) {\n        return 1;\n      }\n      if (param_3 != 0) goto LAB_00017091;\n    }\nLAB_00016c88:\n    uVar7 = 1;\n    FUN_000183f0();\n  }" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (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    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n    if (param_3 != 0) goto LAB_00016123;\n    FUN_00041790();\n    FUN_00018770();\n    FUN_00041820();\n    iVar5 = strcmp((char *)param_1,"-4");\n    if ((iVar5 == 0) || (iVar5 = strcmp((char *)param_1,"-ipv4"), iVar5 == 0)) goto LAB_00017485;\n    iVar5 = strcmp((char *)param_1,"-6");\n    if (iVar5 == 0) goto LAB_00016c88;\n    uVar7 = 2;\n    iVar5 = strcmp((char *)param_1,"-ipv6");\njoined_r0x000174dc:\n    if (iVar5 == 0) goto LAB_00016c88;\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") (; ";")) (} "}"))) (if_statement "if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;" (if "if") (parenthesized_expression "((DAT_0006f0a0 & 2) != 0)" (( "(") (binary_expression "(DAT_0006f0a0 & 2) != 0" (parenthesized_expression "(DAT_0006f0a0 & 2)" (( "(") (binary_expression "DAT_0006f0a0 & 2" (identifier "DAT_0006f0a0") (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_000161c3;" (goto "goto") (statement_identifier "LAB_000161c3") (; ";"))) (if_statement "if (param_3 != 0) goto LAB_00016123;" (if "if") (parenthesized_expression "(param_3 != 0)" (( "(") (binary_expression "param_3 != 0" (identifier "param_3") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00016123;" (goto "goto") (statement_identifier "LAB_00016123") (; ";"))) (expression_statement "FUN_00041790();" (call_expression "FUN_00041790()" (identifier "FUN_00041790") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00018770();" (call_expression "FUN_00018770()" (identifier "FUN_00018770") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00041820();" (call_expression "FUN_00041820()" (identifier "FUN_00041820") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar5 = strcmp((char *)param_1,"-4");" (assignment_expression "iVar5 = strcmp((char *)param_1,"-4")" (identifier "iVar5") (= "=") (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 ((iVar5 == 0) || (iVar5 = strcmp((char *)param_1,"-ipv4"), iVar5 == 0)) goto LAB_00017485;" (if "if") (parenthesized_expression "((iVar5 == 0) || (iVar5 = strcmp((char *)param_1,"-ipv4"), iVar5 == 0))" (( "(") (binary_expression "(iVar5 == 0) || (iVar5 = strcmp((char *)param_1,"-ipv4"), iVar5 == 0)" (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(iVar5 = strcmp((char *)param_1,"-ipv4"), iVar5 == 0)" (( "(") (comma_expression "iVar5 = strcmp((char *)param_1,"-ipv4"), iVar5 == 0" (assignment_expression "iVar5 = strcmp((char *)param_1,"-ipv4")" (identifier "iVar5") (= "=") (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 "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0"))) () ")"))) () ")")) (goto_statement "goto LAB_00017485;" (goto "goto") (statement_identifier "LAB_00017485") (; ";"))) (expression_statement "iVar5 = strcmp((char *)param_1,"-6");" (assignment_expression "iVar5 = strcmp((char *)param_1,"-6")" (identifier "iVar5") (= "=") (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 (iVar5 == 0) goto LAB_00016c88;" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00016c88;" (goto "goto") (statement_identifier "LAB_00016c88") (; ";"))) (expression_statement "uVar7 = 2;" (assignment_expression "uVar7 = 2" (identifier "uVar7") (= "=") (number_literal "2")) (; ";")) (expression_statement "iVar5 = strcmp((char *)param_1,"-ipv6");" (assignment_expression "iVar5 = strcmp((char *)param_1,"-ipv6")" (identifier "iVar5") (= "=") (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") (" """)) () ")")))) (; ";")) (labeled_statement "joined_r0x000174dc:\n    if (iVar5 == 0) goto LAB_00016c88;" (statement_identifier "joined_r0x000174dc") (: ":") (if_statement "if (iVar5 == 0) goto LAB_00016c88;" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00016c88;" (goto "goto") (statement_identifier "LAB_00016c88") (; ";")))) (} "}")) (else_clause "else {\n    iVar5 = strcmp((char *)param_1,"-4");\n    if ((iVar5 == 0) || (iVar5 = strcmp((char *)param_1,"-ipv4"), iVar5 == 0)) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\nLAB_00017091:\n        FUN_00015950();\n        return 1;\n      }\nLAB_00017485:\n      FUN_000183f0();\n      iVar5 = strcmp((char *)param_1,"-6");\n      if (iVar5 != 0) {\n        uVar7 = 1;\n        iVar5 = strcmp((char *)param_1,"-ipv6");\n        goto joined_r0x000174dc;\n      }\n    }\n    else {\n      iVar5 = strcmp((char *)param_1,"-6");\n      if ((iVar5 != 0) && (iVar5 = strcmp((char *)param_1,"-ipv6"), iVar5 != 0)) goto LAB_00016ca6;\n      if (param_3 < 0) {\n        return 1;\n      }\n      if (param_3 != 0) goto LAB_00017091;\n    }\nLAB_00016c88:\n    uVar7 = 1;\n    FUN_000183f0();\n  }" (else "else") (compound_statement "{\n    iVar5 = strcmp((char *)param_1,"-4");\n    if ((iVar5 == 0) || (iVar5 = strcmp((char *)param_1,"-ipv4"), iVar5 == 0)) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\nLAB_00017091:\n        FUN_00015950();\n        return 1;\n      }\nLAB_00017485:\n      FUN_000183f0();\n      iVar5 = strcmp((char *)param_1,"-6");\n      if (iVar5 != 0) {\n        uVar7 = 1;\n        iVar5 = strcmp((char *)param_1,"-ipv6");\n        goto joined_r0x000174dc;\n      }\n    }\n    else {\n      iVar5 = strcmp((char *)param_1,"-6");\n      if ((iVar5 != 0) && (iVar5 = strcmp((char *)param_1,"-ipv6"), iVar5 != 0)) goto LAB_00016ca6;\n      if (param_3 < 0) {\n        return 1;\n      }\n      if (param_3 != 0) goto LAB_00017091;\n    }\nLAB_00016c88:\n    uVar7 = 1;\n    FUN_000183f0();\n  }" ({ "{") (expression_statement "iVar5 = strcmp((char *)param_1,"-4");" (assignment_expression "iVar5 = strcmp((char *)param_1,"-4")" (identifier "iVar5") (= "=") (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 ((iVar5 == 0) || (iVar5 = strcmp((char *)param_1,"-ipv4"), iVar5 == 0)) {\n      if (param_3 < 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\nLAB_00017091:\n        FUN_00015950();\n        return 1;\n      }\nLAB_00017485:\n      FUN_000183f0();\n      iVar5 = strcmp((char *)param_1,"-6");\n      if (iVar5 != 0) {\n        uVar7 = 1;\n        iVar5 = strcmp((char *)param_1,"-ipv6");\n        goto joined_r0x000174dc;\n      }\n    }\n    else {\n      iVar5 = strcmp((char *)param_1,"-6");\n      if ((iVar5 != 0) && (iVar5 = strcmp((char *)param_1,"-ipv6"), iVar5 != 0)) goto LAB_00016ca6;\n      if (param_3 < 0) {\n        return 1;\n      }\n      if (param_3 != 0) goto LAB_00017091;\n    }" (if "if") (parenthesized_expression "((iVar5 == 0) || (iVar5 = strcmp((char *)param_1,"-ipv4"), iVar5 == 0))" (( "(") (binary_expression "(iVar5 == 0) || (iVar5 = strcmp((char *)param_1,"-ipv4"), iVar5 == 0)" (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(iVar5 = strcmp((char *)param_1,"-ipv4"), iVar5 == 0)" (( "(") (comma_expression "iVar5 = strcmp((char *)param_1,"-ipv4"), iVar5 == 0" (assignment_expression "iVar5 = strcmp((char *)param_1,"-ipv4")" (identifier "iVar5") (= "=") (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 "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n      if (param_3 < 0) {\n        return 1;\n      }\n      if (param_3 != 0) {\nLAB_00017091:\n        FUN_00015950();\n        return 1;\n      }\nLAB_00017485:\n      FUN_000183f0();\n      iVar5 = strcmp((char *)param_1,"-6");\n      if (iVar5 != 0) {\n        uVar7 = 1;\n        iVar5 = strcmp((char *)param_1,"-ipv6");\n        goto joined_r0x000174dc;\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") (; ";")) (} "}"))) (if_statement "if (param_3 != 0) {\nLAB_00017091:\n        FUN_00015950();\n        return 1;\n      }" (if "if") (parenthesized_expression "(param_3 != 0)" (( "(") (binary_expression "param_3 != 0" (identifier "param_3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\nLAB_00017091:\n        FUN_00015950();\n        return 1;\n      }" ({ "{") (labeled_statement "LAB_00017091:\n        FUN_00015950();" (statement_identifier "LAB_00017091") (: ":") (expression_statement "FUN_00015950();" (call_expression "FUN_00015950()" (identifier "FUN_00015950") (argument_list "()" (( "(") () ")"))) (; ";"))) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (labeled_statement "LAB_00017485:\n      FUN_000183f0();" (statement_identifier "LAB_00017485") (: ":") (expression_statement "FUN_000183f0();" (call_expression "FUN_000183f0()" (identifier "FUN_000183f0") (argument_list "()" (( "(") () ")"))) (; ";"))) (expression_statement "iVar5 = strcmp((char *)param_1,"-6");" (assignment_expression "iVar5 = strcmp((char *)param_1,"-6")" (identifier "iVar5") (= "=") (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 (iVar5 != 0) {\n        uVar7 = 1;\n        iVar5 = strcmp((char *)param_1,"-ipv6");\n        goto joined_r0x000174dc;\n      }" (if "if") (parenthesized_expression "(iVar5 != 0)" (( "(") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        uVar7 = 1;\n        iVar5 = strcmp((char *)param_1,"-ipv6");\n        goto joined_r0x000174dc;\n      }" ({ "{") (expression_statement "uVar7 = 1;" (assignment_expression "uVar7 = 1" (identifier "uVar7") (= "=") (number_literal "1")) (; ";")) (expression_statement "iVar5 = strcmp((char *)param_1,"-ipv6");" (assignment_expression "iVar5 = strcmp((char *)param_1,"-ipv6")" (identifier "iVar5") (= "=") (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") (" """)) () ")")))) (; ";")) (goto_statement "goto joined_r0x000174dc;" (goto "goto") (statement_identifier "joined_r0x000174dc") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n      iVar5 = strcmp((char *)param_1,"-6");\n      if ((iVar5 != 0) && (iVar5 = strcmp((char *)param_1,"-ipv6"), iVar5 != 0)) goto LAB_00016ca6;\n      if (param_3 < 0) {\n        return 1;\n      }\n      if (param_3 != 0) goto LAB_00017091;\n    }" (else "else") (compound_statement "{\n      iVar5 = strcmp((char *)param_1,"-6");\n      if ((iVar5 != 0) && (iVar5 = strcmp((char *)param_1,"-ipv6"), iVar5 != 0)) goto LAB_00016ca6;\n      if (param_3 < 0) {\n        return 1;\n      }\n      if (param_3 != 0) goto LAB_00017091;\n    }" ({ "{") (expression_statement "iVar5 = strcmp((char *)param_1,"-6");" (assignment_expression "iVar5 = strcmp((char *)param_1,"-6")" (identifier "iVar5") (= "=") (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 ((iVar5 != 0) && (iVar5 = strcmp((char *)param_1,"-ipv6"), iVar5 != 0)) goto LAB_00016ca6;" (if "if") (parenthesized_expression "((iVar5 != 0) && (iVar5 = strcmp((char *)param_1,"-ipv6"), iVar5 != 0))" (( "(") (binary_expression "(iVar5 != 0) && (iVar5 = strcmp((char *)param_1,"-ipv6"), iVar5 != 0)" (parenthesized_expression "(iVar5 != 0)" (( "(") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar5 = strcmp((char *)param_1,"-ipv6"), iVar5 != 0)" (( "(") (comma_expression "iVar5 = strcmp((char *)param_1,"-ipv6"), iVar5 != 0" (assignment_expression "iVar5 = strcmp((char *)param_1,"-ipv6")" (identifier "iVar5") (= "=") (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") (" """)) () ")")))) (, ",") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (goto_statement "goto LAB_00016ca6;" (goto "goto") (statement_identifier "LAB_00016ca6") (; ";"))) (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) goto LAB_00017091;" (if "if") (parenthesized_expression "(param_3 != 0)" (( "(") (binary_expression "param_3 != 0" (identifier "param_3") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00017091;" (goto "goto") (statement_identifier "LAB_00017091") (; ";"))) (} "}")))) (labeled_statement "LAB_00016c88:\n    uVar7 = 1;" (statement_identifier "LAB_00016c88") (: ":") (expression_statement "uVar7 = 1;" (assignment_expression "uVar7 = 1" (identifier "uVar7") (= "=") (number_literal "1")) (; ";"))) (expression_statement "FUN_000183f0();" (call_expression "FUN_000183f0()" (identifier "FUN_000183f0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (labeled_statement "LAB_00016ca6:\n  iVar5 = strcmp((char *)param_1,"-sercfg");" (statement_identifier "LAB_00016ca6") (: ":") (expression_statement "iVar5 = strcmp((char *)param_1,"-sercfg");" (assignment_expression "iVar5 = strcmp((char *)param_1,"-sercfg")" (identifier "iVar5") (= "=") (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 (iVar5 == 0) {\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;\n    if (param_3 != 0) {\nLAB_00016723:\n      FUN_00015950();\n      return 2;\n    }\n    iVar5 = FUN_00017cd0();\n    pcVar8 = param_2;\n    if (iVar5 != 4) {\n      FUN_00044820();\n    }\n    for (; *pcVar8 != '\0'; pcVar8 = pcVar8 + iVar10 + iVar5) {\n      pcVar4 = strchr(pcVar8,0x2c);\n      if (pcVar4 == (char *)0x0) {\n        uVar6 = 0xffffffff;\n        iVar5 = 0;\n        pcVar4 = pcVar8;\n        do {\n          if (uVar6 == 0) break;\n          uVar6 = uVar6 - 1;\n          cVar1 = *pcVar4;\n          pcVar4 = pcVar4 + (uint)bVar17 * -2 + 1;\n        } while (cVar1 != '\0');\n        iVar10 = ~uVar6 - 1;\n      }\n      else {\n        *pcVar4 = '\0';\n        iVar5 = 1;\n        iVar10 = (int)pcVar4 - (int)pcVar8;\n      }\n      if (iVar10 == 1) {\n        switch(*pcVar8) {\n        case '1':\n        case '2':\n          FUN_000183f0();\n          break;\n        default:\n          FUN_00044820();\n          break;\n        case '5':\n        case '6':\n        case '7':\n        case '8':\n        case '9':\n          FUN_000183f0();\n          break;\n        case 'D':\n          FUN_000183f0();\n          break;\n        case 'N':\n          FUN_000183f0();\n          break;\n        case 'R':\n          FUN_000183f0();\n          break;\n        case 'X':\n          FUN_000183f0();\n          break;\n        case 'e':\n          FUN_000183f0();\n          break;\n        case 'm':\n          FUN_000183f0();\n          break;\n        case 'n':\n          FUN_000183f0();\n          break;\n        case 'o':\n          FUN_000183f0();\n          break;\n        case 's':\n          FUN_000183f0();\n        }\n      }\n      else if ((iVar10 == 3) && (iVar2 = strncmp(pcVar8,"1.5",3), iVar2 == 0)) {\n        FUN_000183f0();\n      }\n      else {\n        lVar3 = strtol(pcVar8,(char **)0x0,10);\n        if (lVar3 == 0) {\n          FUN_00044820();\n        }\n        else {\n          FUN_000183f0();\n        }\n      }\n    }\n    iVar5 = strcmp((char *)param_1,"-sessionlog");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 1) != 0) goto LAB_000161c3;\n      goto LAB_0001722b;\n    }\n    iVar5 = strcmp((char *)param_1,"-sshlog");\n    if (iVar5 != 0) goto LAB_000173ff;\nLAB_000173c4:\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n    if (param_3 != 0) {\nLAB_00016123:\n      FUN_00015950();\n      return 2;\n    }\n  }\n  else {\n    iVar5 = strcmp((char *)param_1,"-sessionlog");\n    if (iVar5 != 0) {\n      iVar5 = strcmp((char *)param_1,"-sshlog");\n      if (iVar5 != 0) goto LAB_00017404;\nLAB_000173b1:\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      goto LAB_000173c4;\n    }\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    if ((DAT_0006f0a0 & 1) != 0) goto LAB_000161c3;\n    if (param_3 != 0) goto LAB_00016123;\nLAB_0001722b:\n    FUN_00041790();\n    FUN_00018770();\n    FUN_000183f0();\n    FUN_00041820();\n    iVar5 = strcmp((char *)param_1,"-sshlog");\n    if (iVar5 != 0) {\nLAB_000173ff:\n      uVar7 = 2;\nLAB_00017404:\n      iVar5 = strcmp((char *)param_1,"-sshrawlog");\n      if (iVar5 != 0) {\n        iVar5 = strcmp((char *)param_1,"-proxycmd");\n        if (iVar5 != 0) {\n          return uVar7;\n        }\n        if (param_2 == (char *)0x0) {\n          return 0xfffffffe;\n        }\n        if (param_3 < 0) {\n          return 2;\n        }\n        if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n        if (param_3 != 0) goto LAB_00016123;\n        goto LAB_00017304;\n      }\n      goto LAB_000173b1;\n    }\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n  }" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (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    if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;\n    if (param_3 != 0) {\nLAB_00016723:\n      FUN_00015950();\n      return 2;\n    }\n    iVar5 = FUN_00017cd0();\n    pcVar8 = param_2;\n    if (iVar5 != 4) {\n      FUN_00044820();\n    }\n    for (; *pcVar8 != '\0'; pcVar8 = pcVar8 + iVar10 + iVar5) {\n      pcVar4 = strchr(pcVar8,0x2c);\n      if (pcVar4 == (char *)0x0) {\n        uVar6 = 0xffffffff;\n        iVar5 = 0;\n        pcVar4 = pcVar8;\n        do {\n          if (uVar6 == 0) break;\n          uVar6 = uVar6 - 1;\n          cVar1 = *pcVar4;\n          pcVar4 = pcVar4 + (uint)bVar17 * -2 + 1;\n        } while (cVar1 != '\0');\n        iVar10 = ~uVar6 - 1;\n      }\n      else {\n        *pcVar4 = '\0';\n        iVar5 = 1;\n        iVar10 = (int)pcVar4 - (int)pcVar8;\n      }\n      if (iVar10 == 1) {\n        switch(*pcVar8) {\n        case '1':\n        case '2':\n          FUN_000183f0();\n          break;\n        default:\n          FUN_00044820();\n          break;\n        case '5':\n        case '6':\n        case '7':\n        case '8':\n        case '9':\n          FUN_000183f0();\n          break;\n        case 'D':\n          FUN_000183f0();\n          break;\n        case 'N':\n          FUN_000183f0();\n          break;\n        case 'R':\n          FUN_000183f0();\n          break;\n        case 'X':\n          FUN_000183f0();\n          break;\n        case 'e':\n          FUN_000183f0();\n          break;\n        case 'm':\n          FUN_000183f0();\n          break;\n        case 'n':\n          FUN_000183f0();\n          break;\n        case 'o':\n          FUN_000183f0();\n          break;\n        case 's':\n          FUN_000183f0();\n        }\n      }\n      else if ((iVar10 == 3) && (iVar2 = strncmp(pcVar8,"1.5",3), iVar2 == 0)) {\n        FUN_000183f0();\n      }\n      else {\n        lVar3 = strtol(pcVar8,(char **)0x0,10);\n        if (lVar3 == 0) {\n          FUN_00044820();\n        }\n        else {\n          FUN_000183f0();\n        }\n      }\n    }\n    iVar5 = strcmp((char *)param_1,"-sessionlog");\n    if (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 1) != 0) goto LAB_000161c3;\n      goto LAB_0001722b;\n    }\n    iVar5 = strcmp((char *)param_1,"-sshlog");\n    if (iVar5 != 0) goto LAB_000173ff;\nLAB_000173c4:\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n    if (param_3 != 0) {\nLAB_00016123:\n      FUN_00015950();\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") (; ";")) (} "}"))) (if_statement "if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;" (if "if") (parenthesized_expression "((DAT_0006f0a0 & 3) != 0)" (( "(") (binary_expression "(DAT_0006f0a0 & 3) != 0" (parenthesized_expression "(DAT_0006f0a0 & 3)" (( "(") (binary_expression "DAT_0006f0a0 & 3" (identifier "DAT_0006f0a0") (& "&") (number_literal "3")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_000161c3;" (goto "goto") (statement_identifier "LAB_000161c3") (; ";"))) (if_statement "if (param_3 != 0) {\nLAB_00016723:\n      FUN_00015950();\n      return 2;\n    }" (if "if") (parenthesized_expression "(param_3 != 0)" (( "(") (binary_expression "param_3 != 0" (identifier "param_3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\nLAB_00016723:\n      FUN_00015950();\n      return 2;\n    }" ({ "{") (labeled_statement "LAB_00016723:\n      FUN_00015950();" (statement_identifier "LAB_00016723") (: ":") (expression_statement "FUN_00015950();" (call_expression "FUN_00015950()" (identifier "FUN_00015950") (argument_list "()" (( "(") () ")"))) (; ";"))) (return_statement "return 2;" (return "return") (number_literal "2") (; ";")) (} "}"))) (expression_statement "iVar5 = FUN_00017cd0();" (assignment_expression "iVar5 = FUN_00017cd0()" (identifier "iVar5") (= "=") (call_expression "FUN_00017cd0()" (identifier "FUN_00017cd0") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "pcVar8 = param_2;" (assignment_expression "pcVar8 = param_2" (identifier "pcVar8") (= "=") (identifier "param_2")) (; ";")) (if_statement "if (iVar5 != 4) {\n      FUN_00044820();\n    }" (if "if") (parenthesized_expression "(iVar5 != 4)" (( "(") (binary_expression "iVar5 != 4" (identifier "iVar5") (!= "!=") (number_literal "4")) () ")")) (compound_statement "{\n      FUN_00044820();\n    }" ({ "{") (expression_statement "FUN_00044820();" (call_expression "FUN_00044820()" (identifier "FUN_00044820") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (for_statement "for (; *pcVar8 != '\0'; pcVar8 = pcVar8 + iVar10 + iVar5) {\n      pcVar4 = strchr(pcVar8,0x2c);\n      if (pcVar4 == (char *)0x0) {\n        uVar6 = 0xffffffff;\n        iVar5 = 0;\n        pcVar4 = pcVar8;\n        do {\n          if (uVar6 == 0) break;\n          uVar6 = uVar6 - 1;\n          cVar1 = *pcVar4;\n          pcVar4 = pcVar4 + (uint)bVar17 * -2 + 1;\n        } while (cVar1 != '\0');\n        iVar10 = ~uVar6 - 1;\n      }\n      else {\n        *pcVar4 = '\0';\n        iVar5 = 1;\n        iVar10 = (int)pcVar4 - (int)pcVar8;\n      }\n      if (iVar10 == 1) {\n        switch(*pcVar8) {\n        case '1':\n        case '2':\n          FUN_000183f0();\n          break;\n        default:\n          FUN_00044820();\n          break;\n        case '5':\n        case '6':\n        case '7':\n        case '8':\n        case '9':\n          FUN_000183f0();\n          break;\n        case 'D':\n          FUN_000183f0();\n          break;\n        case 'N':\n          FUN_000183f0();\n          break;\n        case 'R':\n          FUN_000183f0();\n          break;\n        case 'X':\n          FUN_000183f0();\n          break;\n        case 'e':\n          FUN_000183f0();\n          break;\n        case 'm':\n          FUN_000183f0();\n          break;\n        case 'n':\n          FUN_000183f0();\n          break;\n        case 'o':\n          FUN_000183f0();\n          break;\n        case 's':\n          FUN_000183f0();\n        }\n      }\n      else if ((iVar10 == 3) && (iVar2 = strncmp(pcVar8,"1.5",3), iVar2 == 0)) {\n        FUN_000183f0();\n      }\n      else {\n        lVar3 = strtol(pcVar8,(char **)0x0,10);\n        if (lVar3 == 0) {\n          FUN_00044820();\n        }\n        else {\n          FUN_000183f0();\n        }\n      }\n    }" (for "for") (( "(") (; ";") (binary_expression "*pcVar8 != '\0'" (pointer_expression "*pcVar8" (* "*") (identifier "pcVar8")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";") (assignment_expression "pcVar8 = pcVar8 + iVar10 + iVar5" (identifier "pcVar8") (= "=") (binary_expression "pcVar8 + iVar10 + iVar5" (binary_expression "pcVar8 + iVar10" (identifier "pcVar8") (+ "+") (identifier "iVar10")) (+ "+") (identifier "iVar5"))) () ")") (compound_statement "{\n      pcVar4 = strchr(pcVar8,0x2c);\n      if (pcVar4 == (char *)0x0) {\n        uVar6 = 0xffffffff;\n        iVar5 = 0;\n        pcVar4 = pcVar8;\n        do {\n          if (uVar6 == 0) break;\n          uVar6 = uVar6 - 1;\n          cVar1 = *pcVar4;\n          pcVar4 = pcVar4 + (uint)bVar17 * -2 + 1;\n        } while (cVar1 != '\0');\n        iVar10 = ~uVar6 - 1;\n      }\n      else {\n        *pcVar4 = '\0';\n        iVar5 = 1;\n        iVar10 = (int)pcVar4 - (int)pcVar8;\n      }\n      if (iVar10 == 1) {\n        switch(*pcVar8) {\n        case '1':\n        case '2':\n          FUN_000183f0();\n          break;\n        default:\n          FUN_00044820();\n          break;\n        case '5':\n        case '6':\n        case '7':\n        case '8':\n        case '9':\n          FUN_000183f0();\n          break;\n        case 'D':\n          FUN_000183f0();\n          break;\n        case 'N':\n          FUN_000183f0();\n          break;\n        case 'R':\n          FUN_000183f0();\n          break;\n        case 'X':\n          FUN_000183f0();\n          break;\n        case 'e':\n          FUN_000183f0();\n          break;\n        case 'm':\n          FUN_000183f0();\n          break;\n        case 'n':\n          FUN_000183f0();\n          break;\n        case 'o':\n          FUN_000183f0();\n          break;\n        case 's':\n          FUN_000183f0();\n        }\n      }\n      else if ((iVar10 == 3) && (iVar2 = strncmp(pcVar8,"1.5",3), iVar2 == 0)) {\n        FUN_000183f0();\n      }\n      else {\n        lVar3 = strtol(pcVar8,(char **)0x0,10);\n        if (lVar3 == 0) {\n          FUN_00044820();\n        }\n        else {\n          FUN_000183f0();\n        }\n      }\n    }" ({ "{") (expression_statement "pcVar4 = strchr(pcVar8,0x2c);" (assignment_expression "pcVar4 = strchr(pcVar8,0x2c)" (identifier "pcVar4") (= "=") (call_expression "strchr(pcVar8,0x2c)" (identifier "strchr") (argument_list "(pcVar8,0x2c)" (( "(") (identifier "pcVar8") (, ",") (number_literal "0x2c") () ")")))) (; ";")) (if_statement "if (pcVar4 == (char *)0x0) {\n        uVar6 = 0xffffffff;\n        iVar5 = 0;\n        pcVar4 = pcVar8;\n        do {\n          if (uVar6 == 0) break;\n          uVar6 = uVar6 - 1;\n          cVar1 = *pcVar4;\n          pcVar4 = pcVar4 + (uint)bVar17 * -2 + 1;\n        } while (cVar1 != '\0');\n        iVar10 = ~uVar6 - 1;\n      }\n      else {\n        *pcVar4 = '\0';\n        iVar5 = 1;\n        iVar10 = (int)pcVar4 - (int)pcVar8;\n      }" (if "if") (parenthesized_expression "(pcVar4 == (char *)0x0)" (( "(") (binary_expression "pcVar4 == (char *)0x0" (identifier "pcVar4") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        uVar6 = 0xffffffff;\n        iVar5 = 0;\n        pcVar4 = pcVar8;\n        do {\n          if (uVar6 == 0) break;\n          uVar6 = uVar6 - 1;\n          cVar1 = *pcVar4;\n          pcVar4 = pcVar4 + (uint)bVar17 * -2 + 1;\n        } while (cVar1 != '\0');\n        iVar10 = ~uVar6 - 1;\n      }" ({ "{") (expression_statement "uVar6 = 0xffffffff;" (assignment_expression "uVar6 = 0xffffffff" (identifier "uVar6") (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" (identifier "iVar5") (= "=") (number_literal "0")) (; ";")) (expression_statement "pcVar4 = pcVar8;" (assignment_expression "pcVar4 = pcVar8" (identifier "pcVar4") (= "=") (identifier "pcVar8")) (; ";")) (do_statement "do {\n          if (uVar6 == 0) break;\n          uVar6 = uVar6 - 1;\n          cVar1 = *pcVar4;\n          pcVar4 = pcVar4 + (uint)bVar17 * -2 + 1;\n        } while (cVar1 != '\0');" (do "do") (compound_statement "{\n          if (uVar6 == 0) break;\n          uVar6 = uVar6 - 1;\n          cVar1 = *pcVar4;\n          pcVar4 = pcVar4 + (uint)bVar17 * -2 + 1;\n        }" ({ "{") (if_statement "if (uVar6 == 0) break;" (if "if") (parenthesized_expression "(uVar6 == 0)" (( "(") (binary_expression "uVar6 == 0" (identifier "uVar6") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar6 = uVar6 - 1;" (assignment_expression "uVar6 = uVar6 - 1" (identifier "uVar6") (= "=") (binary_expression "uVar6 - 1" (identifier "uVar6") (- "-") (number_literal "1"))) (; ";")) (expression_statement "cVar1 = *pcVar4;" (assignment_expression "cVar1 = *pcVar4" (identifier "cVar1") (= "=") (pointer_expression "*pcVar4" (* "*") (identifier "pcVar4"))) (; ";")) (expression_statement "pcVar4 = pcVar4 + (uint)bVar17 * -2 + 1;" (assignment_expression "pcVar4 = pcVar4 + (uint)bVar17 * -2 + 1" (identifier "pcVar4") (= "=") (binary_expression "pcVar4 + (uint)bVar17 * -2 + 1" (binary_expression "pcVar4 + (uint)bVar17 * -2" (identifier "pcVar4") (+ "+") (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar17")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(cVar1 != '\0')" (( "(") (binary_expression "cVar1 != '\0'" (identifier "cVar1") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (; ";")) (expression_statement "iVar10 = ~uVar6 - 1;" (assignment_expression "iVar10 = ~uVar6 - 1" (identifier "iVar10") (= "=") (binary_expression "~uVar6 - 1" (unary_expression "~uVar6" (~ "~") (identifier "uVar6")) (- "-") (number_literal "1"))) (; ";")) (} "}")) (else_clause "else {\n        *pcVar4 = '\0';\n        iVar5 = 1;\n        iVar10 = (int)pcVar4 - (int)pcVar8;\n      }" (else "else") (compound_statement "{\n        *pcVar4 = '\0';\n        iVar5 = 1;\n        iVar10 = (int)pcVar4 - (int)pcVar8;\n      }" ({ "{") (expression_statement "*pcVar4 = '\0';" (assignment_expression "*pcVar4 = '\0'" (pointer_expression "*pcVar4" (* "*") (identifier "pcVar4")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "iVar5 = 1;" (assignment_expression "iVar5 = 1" (identifier "iVar5") (= "=") (number_literal "1")) (; ";")) (expression_statement "iVar10 = (int)pcVar4 - (int)pcVar8;" (assignment_expression "iVar10 = (int)pcVar4 - (int)pcVar8" (identifier "iVar10") (= "=") (binary_expression "(int)pcVar4 - (int)pcVar8" (cast_expression "(int)pcVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar4")) (- "-") (cast_expression "(int)pcVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar8")))) (; ";")) (} "}")))) (if_statement "if (iVar10 == 1) {\n        switch(*pcVar8) {\n        case '1':\n        case '2':\n          FUN_000183f0();\n          break;\n        default:\n          FUN_00044820();\n          break;\n        case '5':\n        case '6':\n        case '7':\n        case '8':\n        case '9':\n          FUN_000183f0();\n          break;\n        case 'D':\n          FUN_000183f0();\n          break;\n        case 'N':\n          FUN_000183f0();\n          break;\n        case 'R':\n          FUN_000183f0();\n          break;\n        case 'X':\n          FUN_000183f0();\n          break;\n        case 'e':\n          FUN_000183f0();\n          break;\n        case 'm':\n          FUN_000183f0();\n          break;\n        case 'n':\n          FUN_000183f0();\n          break;\n        case 'o':\n          FUN_000183f0();\n          break;\n        case 's':\n          FUN_000183f0();\n        }\n      }\n      else if ((iVar10 == 3) && (iVar2 = strncmp(pcVar8,"1.5",3), iVar2 == 0)) {\n        FUN_000183f0();\n      }\n      else {\n        lVar3 = strtol(pcVar8,(char **)0x0,10);\n        if (lVar3 == 0) {\n          FUN_00044820();\n        }\n        else {\n          FUN_000183f0();\n        }\n      }" (if "if") (parenthesized_expression "(iVar10 == 1)" (( "(") (binary_expression "iVar10 == 1" (identifier "iVar10") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n        switch(*pcVar8) {\n        case '1':\n        case '2':\n          FUN_000183f0();\n          break;\n        default:\n          FUN_00044820();\n          break;\n        case '5':\n        case '6':\n        case '7':\n        case '8':\n        case '9':\n          FUN_000183f0();\n          break;\n        case 'D':\n          FUN_000183f0();\n          break;\n        case 'N':\n          FUN_000183f0();\n          break;\n        case 'R':\n          FUN_000183f0();\n          break;\n        case 'X':\n          FUN_000183f0();\n          break;\n        case 'e':\n          FUN_000183f0();\n          break;\n        case 'm':\n          FUN_000183f0();\n          break;\n        case 'n':\n          FUN_000183f0();\n          break;\n        case 'o':\n          FUN_000183f0();\n          break;\n        case 's':\n          FUN_000183f0();\n        }\n      }" ({ "{") (switch_statement "switch(*pcVar8) {\n        case '1':\n        case '2':\n          FUN_000183f0();\n          break;\n        default:\n          FUN_00044820();\n          break;\n        case '5':\n        case '6':\n        case '7':\n        case '8':\n        case '9':\n          FUN_000183f0();\n          break;\n        case 'D':\n          FUN_000183f0();\n          break;\n        case 'N':\n          FUN_000183f0();\n          break;\n        case 'R':\n          FUN_000183f0();\n          break;\n        case 'X':\n          FUN_000183f0();\n          break;\n        case 'e':\n          FUN_000183f0();\n          break;\n        case 'm':\n          FUN_000183f0();\n          break;\n        case 'n':\n          FUN_000183f0();\n          break;\n        case 'o':\n          FUN_000183f0();\n          break;\n        case 's':\n          FUN_000183f0();\n        }" (switch "switch") (parenthesized_expression "(*pcVar8)" (( "(") (pointer_expression "*pcVar8" (* "*") (identifier "pcVar8")) () ")")) (compound_statement "{\n        case '1':\n        case '2':\n          FUN_000183f0();\n          break;\n        default:\n          FUN_00044820();\n          break;\n        case '5':\n        case '6':\n        case '7':\n        case '8':\n        case '9':\n          FUN_000183f0();\n          break;\n        case 'D':\n          FUN_000183f0();\n          break;\n        case 'N':\n          FUN_000183f0();\n          break;\n        case 'R':\n          FUN_000183f0();\n          break;\n        case 'X':\n          FUN_000183f0();\n          break;\n        case 'e':\n          FUN_000183f0();\n          break;\n        case 'm':\n          FUN_000183f0();\n          break;\n        case 'n':\n          FUN_000183f0();\n          break;\n        case 'o':\n          FUN_000183f0();\n          break;\n        case 's':\n          FUN_000183f0();\n        }" ({ "{") (case_statement "case '1':" (case "case") (char_literal "'1'" (' "'") (character "1") (' "'")) (: ":")) (case_statement "case '2':\n          FUN_000183f0();\n          break;" (case "case") (char_literal "'2'" (' "'") (character "2") (' "'")) (: ":") (expression_statement "FUN_000183f0();" (call_expression "FUN_000183f0()" (identifier "FUN_000183f0") (argument_list "()" (( "(") () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "default:\n          FUN_00044820();\n          break;" (default "default") (: ":") (expression_statement "FUN_00044820();" (call_expression "FUN_00044820()" (identifier "FUN_00044820") (argument_list "()" (( "(") () ")"))) (; ";")) (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_000183f0();\n          break;" (case "case") (char_literal "'9'" (' "'") (character "9") (' "'")) (: ":") (expression_statement "FUN_000183f0();" (call_expression "FUN_000183f0()" (identifier "FUN_000183f0") (argument_list "()" (( "(") () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 'D':\n          FUN_000183f0();\n          break;" (case "case") (char_literal "'D'" (' "'") (character "D") (' "'")) (: ":") (expression_statement "FUN_000183f0();" (call_expression "FUN_000183f0()" (identifier "FUN_000183f0") (argument_list "()" (( "(") () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 'N':\n          FUN_000183f0();\n          break;" (case "case") (char_literal "'N'" (' "'") (character "N") (' "'")) (: ":") (expression_statement "FUN_000183f0();" (call_expression "FUN_000183f0()" (identifier "FUN_000183f0") (argument_list "()" (( "(") () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 'R':\n          FUN_000183f0();\n          break;" (case "case") (char_literal "'R'" (' "'") (character "R") (' "'")) (: ":") (expression_statement "FUN_000183f0();" (call_expression "FUN_000183f0()" (identifier "FUN_000183f0") (argument_list "()" (( "(") () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 'X':\n          FUN_000183f0();\n          break;" (case "case") (char_literal "'X'" (' "'") (character "X") (' "'")) (: ":") (expression_statement "FUN_000183f0();" (call_expression "FUN_000183f0()" (identifier "FUN_000183f0") (argument_list "()" (( "(") () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 'e':\n          FUN_000183f0();\n          break;" (case "case") (char_literal "'e'" (' "'") (character "e") (' "'")) (: ":") (expression_statement "FUN_000183f0();" (call_expression "FUN_000183f0()" (identifier "FUN_000183f0") (argument_list "()" (( "(") () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 'm':\n          FUN_000183f0();\n          break;" (case "case") (char_literal "'m'" (' "'") (character "m") (' "'")) (: ":") (expression_statement "FUN_000183f0();" (call_expression "FUN_000183f0()" (identifier "FUN_000183f0") (argument_list "()" (( "(") () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 'n':\n          FUN_000183f0();\n          break;" (case "case") (char_literal "'n'" (' "'") (character "n") (' "'")) (: ":") (expression_statement "FUN_000183f0();" (call_expression "FUN_000183f0()" (identifier "FUN_000183f0") (argument_list "()" (( "(") () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 'o':\n          FUN_000183f0();\n          break;" (case "case") (char_literal "'o'" (' "'") (character "o") (' "'")) (: ":") (expression_statement "FUN_000183f0();" (call_expression "FUN_000183f0()" (identifier "FUN_000183f0") (argument_list "()" (( "(") () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 's':\n          FUN_000183f0();" (case "case") (char_literal "'s'" (' "'") (character "s") (' "'")) (: ":") (expression_statement "FUN_000183f0();" (call_expression "FUN_000183f0()" (identifier "FUN_000183f0") (argument_list "()" (( "(") () ")"))) (; ";"))) (} "}"))) (} "}")) (else_clause "else if ((iVar10 == 3) && (iVar2 = strncmp(pcVar8,"1.5",3), iVar2 == 0)) {\n        FUN_000183f0();\n      }\n      else {\n        lVar3 = strtol(pcVar8,(char **)0x0,10);\n        if (lVar3 == 0) {\n          FUN_00044820();\n        }\n        else {\n          FUN_000183f0();\n        }\n      }" (else "else") (if_statement "if ((iVar10 == 3) && (iVar2 = strncmp(pcVar8,"1.5",3), iVar2 == 0)) {\n        FUN_000183f0();\n      }\n      else {\n        lVar3 = strtol(pcVar8,(char **)0x0,10);\n        if (lVar3 == 0) {\n          FUN_00044820();\n        }\n        else {\n          FUN_000183f0();\n        }\n      }" (if "if") (parenthesized_expression "((iVar10 == 3) && (iVar2 = strncmp(pcVar8,"1.5",3), iVar2 == 0))" (( "(") (binary_expression "(iVar10 == 3) && (iVar2 = strncmp(pcVar8,"1.5",3), iVar2 == 0)" (parenthesized_expression "(iVar10 == 3)" (( "(") (binary_expression "iVar10 == 3" (identifier "iVar10") (== "==") (number_literal "3")) () ")")) (&& "&&") (parenthesized_expression "(iVar2 = strncmp(pcVar8,"1.5",3), iVar2 == 0)" (( "(") (comma_expression "iVar2 = strncmp(pcVar8,"1.5",3), iVar2 == 0" (assignment_expression "iVar2 = strncmp(pcVar8,"1.5",3)" (identifier "iVar2") (= "=") (call_expression "strncmp(pcVar8,"1.5",3)" (identifier "strncmp") (argument_list "(pcVar8,"1.5",3)" (( "(") (identifier "pcVar8") (, ",") (string_literal ""1.5"" (" """) (string_content "1.5") (" """)) (, ",") (number_literal "3") () ")")))) (, ",") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n        FUN_000183f0();\n      }" ({ "{") (expression_statement "FUN_000183f0();" (call_expression "FUN_000183f0()" (identifier "FUN_000183f0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")) (else_clause "else {\n        lVar3 = strtol(pcVar8,(char **)0x0,10);\n        if (lVar3 == 0) {\n          FUN_00044820();\n        }\n        else {\n          FUN_000183f0();\n        }\n      }" (else "else") (compound_statement "{\n        lVar3 = strtol(pcVar8,(char **)0x0,10);\n        if (lVar3 == 0) {\n          FUN_00044820();\n        }\n        else {\n          FUN_000183f0();\n        }\n      }" ({ "{") (expression_statement "lVar3 = strtol(pcVar8,(char **)0x0,10);" (assignment_expression "lVar3 = strtol(pcVar8,(char **)0x0,10)" (identifier "lVar3") (= "=") (call_expression "strtol(pcVar8,(char **)0x0,10)" (identifier "strtol") (argument_list "(pcVar8,(char **)0x0,10)" (( "(") (identifier "pcVar8") (, ",") (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 (lVar3 == 0) {\n          FUN_00044820();\n        }\n        else {\n          FUN_000183f0();\n        }" (if "if") (parenthesized_expression "(lVar3 == 0)" (( "(") (binary_expression "lVar3 == 0" (identifier "lVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          FUN_00044820();\n        }" ({ "{") (expression_statement "FUN_00044820();" (call_expression "FUN_00044820()" (identifier "FUN_00044820") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")) (else_clause "else {\n          FUN_000183f0();\n        }" (else "else") (compound_statement "{\n          FUN_000183f0();\n        }" ({ "{") (expression_statement "FUN_000183f0();" (call_expression "FUN_000183f0()" (identifier "FUN_000183f0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (} "}")))))) (} "}"))) (expression_statement "iVar5 = strcmp((char *)param_1,"-sessionlog");" (assignment_expression "iVar5 = strcmp((char *)param_1,"-sessionlog")" (identifier "iVar5") (= "=") (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 (iVar5 == 0) {\n      if ((DAT_0006f0a0 & 1) != 0) goto LAB_000161c3;\n      goto LAB_0001722b;\n    }" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      if ((DAT_0006f0a0 & 1) != 0) goto LAB_000161c3;\n      goto LAB_0001722b;\n    }" ({ "{") (if_statement "if ((DAT_0006f0a0 & 1) != 0) goto LAB_000161c3;" (if "if") (parenthesized_expression "((DAT_0006f0a0 & 1) != 0)" (( "(") (binary_expression "(DAT_0006f0a0 & 1) != 0" (parenthesized_expression "(DAT_0006f0a0 & 1)" (( "(") (binary_expression "DAT_0006f0a0 & 1" (identifier "DAT_0006f0a0") (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_000161c3;" (goto "goto") (statement_identifier "LAB_000161c3") (; ";"))) (goto_statement "goto LAB_0001722b;" (goto "goto") (statement_identifier "LAB_0001722b") (; ";")) (} "}"))) (expression_statement "iVar5 = strcmp((char *)param_1,"-sshlog");" (assignment_expression "iVar5 = strcmp((char *)param_1,"-sshlog")" (identifier "iVar5") (= "=") (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 (iVar5 != 0) goto LAB_000173ff;" (if "if") (parenthesized_expression "(iVar5 != 0)" (( "(") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_000173ff;" (goto "goto") (statement_identifier "LAB_000173ff") (; ";"))) (labeled_statement "LAB_000173c4:\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;" (statement_identifier "LAB_000173c4") (: ":") (if_statement "if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;" (if "if") (parenthesized_expression "((DAT_0006f0a0 & 2) != 0)" (( "(") (binary_expression "(DAT_0006f0a0 & 2) != 0" (parenthesized_expression "(DAT_0006f0a0 & 2)" (( "(") (binary_expression "DAT_0006f0a0 & 2" (identifier "DAT_0006f0a0") (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_000161c3;" (goto "goto") (statement_identifier "LAB_000161c3") (; ";")))) (if_statement "if (param_3 != 0) {\nLAB_00016123:\n      FUN_00015950();\n      return 2;\n    }" (if "if") (parenthesized_expression "(param_3 != 0)" (( "(") (binary_expression "param_3 != 0" (identifier "param_3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\nLAB_00016123:\n      FUN_00015950();\n      return 2;\n    }" ({ "{") (labeled_statement "LAB_00016123:\n      FUN_00015950();" (statement_identifier "LAB_00016123") (: ":") (expression_statement "FUN_00015950();" (call_expression "FUN_00015950()" (identifier "FUN_00015950") (argument_list "()" (( "(") () ")"))) (; ";"))) (return_statement "return 2;" (return "return") (number_literal "2") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    iVar5 = strcmp((char *)param_1,"-sessionlog");\n    if (iVar5 != 0) {\n      iVar5 = strcmp((char *)param_1,"-sshlog");\n      if (iVar5 != 0) goto LAB_00017404;\nLAB_000173b1:\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      goto LAB_000173c4;\n    }\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    if ((DAT_0006f0a0 & 1) != 0) goto LAB_000161c3;\n    if (param_3 != 0) goto LAB_00016123;\nLAB_0001722b:\n    FUN_00041790();\n    FUN_00018770();\n    FUN_000183f0();\n    FUN_00041820();\n    iVar5 = strcmp((char *)param_1,"-sshlog");\n    if (iVar5 != 0) {\nLAB_000173ff:\n      uVar7 = 2;\nLAB_00017404:\n      iVar5 = strcmp((char *)param_1,"-sshrawlog");\n      if (iVar5 != 0) {\n        iVar5 = strcmp((char *)param_1,"-proxycmd");\n        if (iVar5 != 0) {\n          return uVar7;\n        }\n        if (param_2 == (char *)0x0) {\n          return 0xfffffffe;\n        }\n        if (param_3 < 0) {\n          return 2;\n        }\n        if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n        if (param_3 != 0) goto LAB_00016123;\n        goto LAB_00017304;\n      }\n      goto LAB_000173b1;\n    }\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n  }" (else "else") (compound_statement "{\n    iVar5 = strcmp((char *)param_1,"-sessionlog");\n    if (iVar5 != 0) {\n      iVar5 = strcmp((char *)param_1,"-sshlog");\n      if (iVar5 != 0) goto LAB_00017404;\nLAB_000173b1:\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      goto LAB_000173c4;\n    }\n    if (param_2 == (char *)0x0) {\n      return 0xfffffffe;\n    }\n    if (param_3 < 0) {\n      return 2;\n    }\n    if ((DAT_0006f0a0 & 1) != 0) goto LAB_000161c3;\n    if (param_3 != 0) goto LAB_00016123;\nLAB_0001722b:\n    FUN_00041790();\n    FUN_00018770();\n    FUN_000183f0();\n    FUN_00041820();\n    iVar5 = strcmp((char *)param_1,"-sshlog");\n    if (iVar5 != 0) {\nLAB_000173ff:\n      uVar7 = 2;\nLAB_00017404:\n      iVar5 = strcmp((char *)param_1,"-sshrawlog");\n      if (iVar5 != 0) {\n        iVar5 = strcmp((char *)param_1,"-proxycmd");\n        if (iVar5 != 0) {\n          return uVar7;\n        }\n        if (param_2 == (char *)0x0) {\n          return 0xfffffffe;\n        }\n        if (param_3 < 0) {\n          return 2;\n        }\n        if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n        if (param_3 != 0) goto LAB_00016123;\n        goto LAB_00017304;\n      }\n      goto LAB_000173b1;\n    }\n    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n  }" ({ "{") (expression_statement "iVar5 = strcmp((char *)param_1,"-sessionlog");" (assignment_expression "iVar5 = strcmp((char *)param_1,"-sessionlog")" (identifier "iVar5") (= "=") (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 (iVar5 != 0) {\n      iVar5 = strcmp((char *)param_1,"-sshlog");\n      if (iVar5 != 0) goto LAB_00017404;\nLAB_000173b1:\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      goto LAB_000173c4;\n    }" (if "if") (parenthesized_expression "(iVar5 != 0)" (( "(") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      iVar5 = strcmp((char *)param_1,"-sshlog");\n      if (iVar5 != 0) goto LAB_00017404;\nLAB_000173b1:\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }\n      if (param_3 < 0) {\n        return 2;\n      }\n      goto LAB_000173c4;\n    }" ({ "{") (expression_statement "iVar5 = strcmp((char *)param_1,"-sshlog");" (assignment_expression "iVar5 = strcmp((char *)param_1,"-sshlog")" (identifier "iVar5") (= "=") (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 (iVar5 != 0) goto LAB_00017404;" (if "if") (parenthesized_expression "(iVar5 != 0)" (( "(") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00017404;" (goto "goto") (statement_identifier "LAB_00017404") (; ";"))) (labeled_statement "LAB_000173b1:\n      if (param_2 == (char *)0x0) {\n        return 0xfffffffe;\n      }" (statement_identifier "LAB_000173b1") (: ":") (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") (; ";")) (} "}"))) (goto_statement "goto LAB_000173c4;" (goto "goto") (statement_identifier "LAB_000173c4") (; ";")) (} "}"))) (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") (; ";")) (} "}"))) (if_statement "if ((DAT_0006f0a0 & 1) != 0) goto LAB_000161c3;" (if "if") (parenthesized_expression "((DAT_0006f0a0 & 1) != 0)" (( "(") (binary_expression "(DAT_0006f0a0 & 1) != 0" (parenthesized_expression "(DAT_0006f0a0 & 1)" (( "(") (binary_expression "DAT_0006f0a0 & 1" (identifier "DAT_0006f0a0") (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_000161c3;" (goto "goto") (statement_identifier "LAB_000161c3") (; ";"))) (if_statement "if (param_3 != 0) goto LAB_00016123;" (if "if") (parenthesized_expression "(param_3 != 0)" (( "(") (binary_expression "param_3 != 0" (identifier "param_3") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00016123;" (goto "goto") (statement_identifier "LAB_00016123") (; ";"))) (labeled_statement "LAB_0001722b:\n    FUN_00041790();" (statement_identifier "LAB_0001722b") (: ":") (expression_statement "FUN_00041790();" (call_expression "FUN_00041790()" (identifier "FUN_00041790") (argument_list "()" (( "(") () ")"))) (; ";"))) (expression_statement "FUN_00018770();" (call_expression "FUN_00018770()" (identifier "FUN_00018770") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_000183f0();" (call_expression "FUN_000183f0()" (identifier "FUN_000183f0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00041820();" (call_expression "FUN_00041820()" (identifier "FUN_00041820") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar5 = strcmp((char *)param_1,"-sshlog");" (assignment_expression "iVar5 = strcmp((char *)param_1,"-sshlog")" (identifier "iVar5") (= "=") (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 (iVar5 != 0) {\nLAB_000173ff:\n      uVar7 = 2;\nLAB_00017404:\n      iVar5 = strcmp((char *)param_1,"-sshrawlog");\n      if (iVar5 != 0) {\n        iVar5 = strcmp((char *)param_1,"-proxycmd");\n        if (iVar5 != 0) {\n          return uVar7;\n        }\n        if (param_2 == (char *)0x0) {\n          return 0xfffffffe;\n        }\n        if (param_3 < 0) {\n          return 2;\n        }\n        if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n        if (param_3 != 0) goto LAB_00016123;\n        goto LAB_00017304;\n      }\n      goto LAB_000173b1;\n    }" (if "if") (parenthesized_expression "(iVar5 != 0)" (( "(") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\nLAB_000173ff:\n      uVar7 = 2;\nLAB_00017404:\n      iVar5 = strcmp((char *)param_1,"-sshrawlog");\n      if (iVar5 != 0) {\n        iVar5 = strcmp((char *)param_1,"-proxycmd");\n        if (iVar5 != 0) {\n          return uVar7;\n        }\n        if (param_2 == (char *)0x0) {\n          return 0xfffffffe;\n        }\n        if (param_3 < 0) {\n          return 2;\n        }\n        if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n        if (param_3 != 0) goto LAB_00016123;\n        goto LAB_00017304;\n      }\n      goto LAB_000173b1;\n    }" ({ "{") (labeled_statement "LAB_000173ff:\n      uVar7 = 2;" (statement_identifier "LAB_000173ff") (: ":") (expression_statement "uVar7 = 2;" (assignment_expression "uVar7 = 2" (identifier "uVar7") (= "=") (number_literal "2")) (; ";"))) (labeled_statement "LAB_00017404:\n      iVar5 = strcmp((char *)param_1,"-sshrawlog");" (statement_identifier "LAB_00017404") (: ":") (expression_statement "iVar5 = strcmp((char *)param_1,"-sshrawlog");" (assignment_expression "iVar5 = strcmp((char *)param_1,"-sshrawlog")" (identifier "iVar5") (= "=") (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 (iVar5 != 0) {\n        iVar5 = strcmp((char *)param_1,"-proxycmd");\n        if (iVar5 != 0) {\n          return uVar7;\n        }\n        if (param_2 == (char *)0x0) {\n          return 0xfffffffe;\n        }\n        if (param_3 < 0) {\n          return 2;\n        }\n        if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n        if (param_3 != 0) goto LAB_00016123;\n        goto LAB_00017304;\n      }" (if "if") (parenthesized_expression "(iVar5 != 0)" (( "(") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        iVar5 = strcmp((char *)param_1,"-proxycmd");\n        if (iVar5 != 0) {\n          return uVar7;\n        }\n        if (param_2 == (char *)0x0) {\n          return 0xfffffffe;\n        }\n        if (param_3 < 0) {\n          return 2;\n        }\n        if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;\n        if (param_3 != 0) goto LAB_00016123;\n        goto LAB_00017304;\n      }" ({ "{") (expression_statement "iVar5 = strcmp((char *)param_1,"-proxycmd");" (assignment_expression "iVar5 = strcmp((char *)param_1,"-proxycmd")" (identifier "iVar5") (= "=") (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 (iVar5 != 0) {\n          return uVar7;\n        }" (if "if") (parenthesized_expression "(iVar5 != 0)" (( "(") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          return uVar7;\n        }" ({ "{") (return_statement "return uVar7;" (return "return") (identifier "uVar7") (; ";")) (} "}"))) (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") (; ";")) (} "}"))) (if_statement "if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;" (if "if") (parenthesized_expression "((DAT_0006f0a0 & 2) != 0)" (( "(") (binary_expression "(DAT_0006f0a0 & 2) != 0" (parenthesized_expression "(DAT_0006f0a0 & 2)" (( "(") (binary_expression "DAT_0006f0a0 & 2" (identifier "DAT_0006f0a0") (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_000161c3;" (goto "goto") (statement_identifier "LAB_000161c3") (; ";"))) (if_statement "if (param_3 != 0) goto LAB_00016123;" (if "if") (parenthesized_expression "(param_3 != 0)" (( "(") (binary_expression "param_3 != 0" (identifier "param_3") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00016123;" (goto "goto") (statement_identifier "LAB_00016123") (; ";"))) (goto_statement "goto LAB_00017304;" (goto "goto") (statement_identifier "LAB_00017304") (; ";")) (} "}"))) (goto_statement "goto LAB_000173b1;" (goto "goto") (statement_identifier "LAB_000173b1") (; ";")) (} "}"))) (if_statement "if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;" (if "if") (parenthesized_expression "((DAT_0006f0a0 & 2) != 0)" (( "(") (binary_expression "(DAT_0006f0a0 & 2) != 0" (parenthesized_expression "(DAT_0006f0a0 & 2)" (( "(") (binary_expression "DAT_0006f0a0 & 2" (identifier "DAT_0006f0a0") (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_000161c3;" (goto "goto") (statement_identifier "LAB_000161c3") (; ";"))) (} "}")))) (expression_statement "FUN_00041790();" (call_expression "FUN_00041790()" (identifier "FUN_00041790") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00018770();" (call_expression "FUN_00018770()" (identifier "FUN_00018770") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "strcmp((char *)param_1,"-sshlog");" (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_000183f0();" (call_expression "FUN_000183f0()" (identifier "FUN_000183f0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00041820();" (call_expression "FUN_00041820()" (identifier "FUN_00041820") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar5 = strcmp((char *)param_1,"-proxycmd");" (assignment_expression "iVar5 = strcmp((char *)param_1,"-proxycmd")" (identifier "iVar5") (= "=") (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 (iVar5 != 0) {\n    return 2;\n  }" (if "if") (parenthesized_expression "(iVar5 != 0)" (( "(") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    return 2;\n  }" ({ "{") (return_statement "return 2;" (return "return") (number_literal "2") (; ";")) (} "}"))) (if_statement "if ((DAT_0006f0a0 & 2) == 0) {\nLAB_00017304:\n    FUN_000183f0();\n    FUN_00018530();\n    return 2;\n  }" (if "if") (parenthesized_expression "((DAT_0006f0a0 & 2) == 0)" (( "(") (binary_expression "(DAT_0006f0a0 & 2) == 0" (parenthesized_expression "(DAT_0006f0a0 & 2)" (( "(") (binary_expression "DAT_0006f0a0 & 2" (identifier "DAT_0006f0a0") (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_00017304:\n    FUN_000183f0();\n    FUN_00018530();\n    return 2;\n  }" ({ "{") (labeled_statement "LAB_00017304:\n    FUN_000183f0();" (statement_identifier "LAB_00017304") (: ":") (expression_statement "FUN_000183f0();" (call_expression "FUN_000183f0()" (identifier "FUN_000183f0") (argument_list "()" (( "(") () ")"))) (; ";"))) (expression_statement "FUN_00018530();" (call_expression "FUN_00018530()" (identifier "FUN_00018530") (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return 2;" (return "return") (number_literal "2") (; ";")) (} "}"))) (labeled_statement "LAB_000161c3:\n  FUN_00044820();" (statement_identifier "LAB_000161c3") (: ":") (expression_statement "FUN_00044820();" (call_expression "FUN_00044820()" (identifier "FUN_00044820") (argument_list "()" (( "(") () ")"))) (; ";"))) (return_statement "return 2;" (return "return") (number_literal "2") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Type propagation algorithm not settling */

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

{
  char var_31;
  char *var_18;
  long var_44;
  type_2 *var_24;
  char *var_36;
  type_3 *pFVar5;
  int var_42;
  int var_1;
  int var_16;
  type_4 var_30;
  char *var_37;
  type_5 *var_2;
  type_5 *var_3;
  bool var_4;
  bool var_9;
  type_6 uVar15;
  bool var_11;
  type_6 uVar17;
  type_5 bVar18;
  type_6 var_12 [8];
  size_t local_24;
  int local_20;
  type_7 uStack_14;
  
  bVar18 = 0;
  var_1 = 6;
  uStack_14 = 0x15b6e;
  var_4 = &stack0xfffffff0 < (type_6 *)0x1c;
  var_11 = &stack0x00000000 == (type_6 *)0x2c;
  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_11 = *var_2 == *var_3;
    var_2 = var_2 + 1;
    var_3 = var_3 + 1;
  } while (var_11);
  var_9 = false;
  var_4 = (!var_4 && !var_11) == var_4;
  if (var_4) {
    if (var_5 == (char *)0x0) {
      return -2;
    }
    if (var_6 < 0) {
      return 2;
    }
    var_7(var_5,conf);
    loaded_session = 1;
    cmdline_session_name = var_8(var_5);
    return 2;
  }
  var_1 = 5;
  var_2 = (type_5 *)p;
  var_3 = &DAT_0004b0b5;
  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_11 = false;
  var_4 = (!var_9 && !var_4) == var_9;
  if (var_4) {
    if (var_6 < 0) {
      return 1;
    }
    if (((type_5)cmdline_tooltype & 3) == 0) {
      if (var_6 == 0) {
        default_protocol = 3;
        default_port = 0x16;
        var_1 = 3;
LAB_00015c0d:
        var_10(conf,2,var_1);
        var_10(conf,1,default_port);
        return 1;
      }
      goto LAB_00015c78;
    }
    goto LAB_00015d50;
  }
  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_11 = *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_11 && !var_4) == var_11;
  if (var_4) {
    if (var_6 < 0) {
      return 1;
    }
    if (((type_5)cmdline_tooltype & 3) != 0) goto LAB_00015d50;
    if (var_6 == 0) {
      default_protocol = 1;
      default_port = 0x17;
      var_1 = 1;
      goto LAB_00015c0d;
    }
    goto LAB_00015c78;
  }
  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_11 = false;
  var_4 = (!var_9 && !var_4) == var_9;
  if (var_4) {
    if (var_6 < 0) {
      return 1;
    }
    if (((type_5)cmdline_tooltype & 3) != 0) goto LAB_00015d50;
    if (var_6 == 0) {
      default_protocol = 2;
      default_port = 0x201;
      var_1 = 2;
      goto LAB_00015c0d;
    }
    goto LAB_00015c78;
  }
  var_1 = 5;
  var_2 = (type_5 *)p;
  var_3 = &DAT_0004b0ca;
  do {
    if (var_1 == 0) break;
    var_1 = var_1 + -1;
    var_11 = *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_11 && !var_4) == var_11;
  if (var_4) {
    if (var_6 < 0) {
      return 1;
    }
    if (((type_5)cmdline_tooltype & 3) != 0) goto LAB_00015d50;
    if (var_6 != 0) goto LAB_00015c78;
    uVar15 = var_12 < (type_6 *)0x4;
    uVar17 = &stack0x00000000 == (type_6 *)0x30;
    default_protocol = 0;
    var_10(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;
      uVar15 = *var_2 < *var_3;
      uVar17 = *var_2 == *var_3;
      var_2 = var_2 + (type_4)bVar18 * -2 + 1;
      var_3 = var_3 + (type_4)bVar18 * -2 + 1;
    } while ((bool)uVar17);
    var_4 = false;
    var_11 = (!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15;
    if (var_11) {
      if (((type_5)cmdline_tooltype & 3) != 0) goto LAB_00015d50;
      goto LAB_00015dd0;
    }
    var_1 = 3;
    var_2 = (type_5 *)p;
    var_3 = &DAT_0004b0d7;
    do {
      if (var_1 == 0) break;
      var_1 = var_1 + -1;
      var_4 = *var_2 < *var_3;
      var_11 = *var_2 == *var_3;
      var_2 = var_2 + (type_4)bVar18 * -2 + 1;
      var_3 = var_3 + (type_4)bVar18 * -2 + 1;
    } while (var_11);
    var_4 = (!var_4 && !var_11) == var_4;
    if (var_4) goto LAB_00015e28;
LAB_00015e31:
    var_1 = 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_11 = false;
    var_4 = (!var_9 && !var_4) == var_9;
    if (var_4) {
      if (var_6 < 0) {
        return 1;
      }
      if (((type_5)cmdline_tooltype & 3) != 0) goto LAB_00015d50;
      if (var_6 != 0) goto LAB_00015c78;
LAB_00015dd0:
      default_protocol = 4;
      var_10(conf,2,4);
      var_18 = var_13(conf,0);
      uVar15 = (type_6 *)0xfffffff3 < &stack0xffffffc4;
      uVar17 = &stack0x00000000 == (type_6 *)0x30;
      var_14(conf,0x39,var_18);
      var_1 = 3;
      var_2 = (type_5 *)p;
      var_3 = &DAT_0004b0d7;
      do {
        if (var_1 == 0) break;
        var_1 = var_1 + -1;
        uVar15 = *var_2 < *var_3;
        uVar17 = *var_2 == *var_3;
        var_2 = var_2 + (type_4)bVar18 * -2 + 1;
        var_3 = var_3 + (type_4)bVar18 * -2 + 1;
      } while ((bool)uVar17);
      var_4 = (!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15;
      if (var_4) goto LAB_00015e28;
      goto LAB_00015e31;
    }
    var_1 = 3;
    var_2 = (type_5 *)p;
    var_3 = &DAT_0004b0d7;
    do {
      if (var_1 == 0) break;
      var_1 = var_1 + -1;
      var_11 = *var_2 < *var_3;
      var_4 = *var_2 == *var_3;
      var_2 = var_2 + 1;
      var_3 = var_3 + 1;
    } while (var_4);
    if ((!var_11 && !var_4) == var_11) {
      if (var_6 < 0) {
        return 1;
      }
LAB_00015e28:
      var_15 = var_15 | 1;
      var_4 = var_15 == 0;
      goto LAB_00015e31;
    }
    var_1 = 0;
    var_4 = true;
  }
  var_11 = false;
  var_16 = 3;
  var_2 = (type_5 *)p;
  var_3 = (type_5 *)0x53a29;
  do {
    if (var_16 == 0) break;
    var_16 = var_16 + -1;
    var_11 = *var_2 < *var_3;
    var_4 = *var_2 == *var_3;
    var_2 = var_2 + (type_4)bVar18 * -2 + 1;
    var_3 = var_3 + (type_4)bVar18 * -2 + 1;
  } while (var_4);
  var_9 = false;
  var_4 = (!var_11 && !var_4) == var_11;
  if (var_4) {
    if (var_5 == (char *)0x0) {
      return -2;
    }
    if (var_6 < 0) {
      return 2;
    }
    if (((type_5)cmdline_tooltype & 2) != 0) goto LAB_000161c3;
    if (var_6 != 0) goto LAB_00016123;
    uVar15 = var_12 < (type_6 *)0x4;
    uVar17 = &stack0x00000000 == (type_6 *)0x30;
    var_14(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;
      uVar15 = *var_2 < *var_3;
      uVar17 = *var_2 == *var_3;
      var_2 = var_2 + (type_4)bVar18 * -2 + 1;
      var_3 = var_3 + (type_4)bVar18 * -2 + 1;
    } while ((bool)uVar17);
    var_4 = false;
    var_11 = (!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15;
    if (var_11) {
      if (((type_5)cmdline_tooltype & 2) != 0) goto LAB_000161c3;
      goto LAB_00015ec5;
    }
    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_11 = *var_2 == *var_3;
      var_2 = var_2 + (type_4)bVar18 * -2 + 1;
      var_3 = var_3 + (type_4)bVar18 * -2 + 1;
    } while (var_11);
    var_4 = (!var_4 && !var_11) == var_4;
    if (var_4) goto LAB_00016218;
LAB_00016248:
    var_1 = 2;
LAB_0001624d:
    var_11 = false;
    var_16 = 3;
    var_2 = (type_5 *)p;
    var_3 = &DAT_0004b0ec;
    do {
      if (var_16 == 0) break;
      var_16 = var_16 + -1;
      var_11 = *var_2 < *var_3;
      var_4 = *var_2 == *var_3;
      var_2 = var_2 + (type_4)bVar18 * -2 + 1;
      var_3 = var_3 + (type_4)bVar18 * -2 + 1;
    } while (var_4);
    var_4 = (!var_11 && !var_4) == var_11;
    if (var_4) {
LAB_00016647:
      if (var_5 == (char *)0x0) {
        return -2;
      }
      if (var_6 < 0) {
        return 2;
      }
      if (((type_5)cmdline_tooltype & 3) != 0) goto LAB_000161c3;
      var_4 = var_6 == 0;
      if (!var_4) goto LAB_00016123;
      goto LAB_00015f8f;
    }
LAB_0001626b:
    var_11 = false;
    var_16 = 3;
    var_2 = (type_5 *)p;
    var_3 = &DAT_0004b0ef;
    do {
      if (var_16 == 0) break;
      var_16 = var_16 + -1;
      var_11 = *var_2 < *var_3;
      var_4 = *var_2 == *var_3;
      var_2 = var_2 + (type_4)bVar18 * -2 + 1;
      var_3 = var_3 + (type_4)bVar18 * -2 + 1;
    } while (var_4);
    var_9 = false;
    var_4 = (!var_11 && !var_4) == var_11;
    if (var_4) goto LAB_00016647;
    var_16 = 3;
    var_2 = (type_5 *)p;
    var_3 = (type_5 *)0x53a3b;
    do {
      if (var_16 == 0) break;
      var_16 = var_16 + -1;
      var_9 = *var_2 < *var_3;
      var_4 = *var_2 == *var_3;
      var_2 = var_2 + (type_4)bVar18 * -2 + 1;
      var_3 = var_3 + (type_4)bVar18 * -2 + 1;
    } while (var_4);
    var_11 = false;
    var_4 = (!var_9 && !var_4) == var_9;
    if (var_4) goto LAB_00016647;
    var_16 = 4;
    var_2 = (type_5 *)p;
    var_3 = &DAT_0004b0fd;
    do {
      if (var_16 == 0) break;
      var_16 = var_16 + -1;
      var_11 = *var_2 < *var_3;
      var_4 = *var_2 == *var_3;
      var_2 = var_2 + (type_4)bVar18 * -2 + 1;
      var_3 = var_3 + (type_4)bVar18 * -2 + 1;
    } while (var_4);
    var_4 = (!var_11 && !var_4) == var_11;
    if (!var_4) goto LAB_00016698;
    if (var_5 == (char *)0x0) {
      return -2;
    }
    if (var_6 < 0) {
      return 2;
    }
    if (((type_5)cmdline_tooltype & 3) != 0) goto LAB_000161c3;
    if (var_6 != 0) goto LAB_00016123;
LAB_000162ed:
    var_18 = var_17(var_5,0x3a);
    if (var_18 == (char *)0x0) {
      var_19("-nc expects argument of form \'host:port\'");
      return 2;
    }
    var_1 = 2;
    var_36 = var_20("%.*s");
    var_14(conf,0x2e,var_36);
    var_44 = var_21(var_18 + 1,(char **)0x0,10);
    uVar15 = (type_6 *)0xfffffff3 < &stack0xffffffc4;
    uVar17 = &stack0x00000000 == (type_6 *)0x30;
    var_10(conf,0x2f,var_44);
    var_22(var_36);
    var_16 = 3;
    var_2 = (type_5 *)p;
    var_3 = &DAT_0004b101;
    do {
      if (var_16 == 0) break;
      var_16 = var_16 + -1;
      uVar15 = *var_2 < *var_3;
      uVar17 = *var_2 == *var_3;
      var_2 = var_2 + (type_4)bVar18 * -2 + 1;
      var_3 = var_3 + (type_4)bVar18 * -2 + 1;
    } while ((bool)uVar17);
    var_4 = (!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15;
    if (!var_4) goto LAB_000166e0;
    if (((type_5)cmdline_tooltype & 3) != 0) goto LAB_000161c3;
LAB_0001639b:
    var_1 = 0;
    var_18 = (char *)0x0;
    var_24 = var_23(var_5,"r");
    local_24 = 0;
    if (var_24 == (type_2 *)0x0) {
      var_19("unable to open command file \"%s\"");
      return 2;
    }
    while (var_16 = var_25(var_24), var_16 != -1) {
      if (var_1 < (int)local_24) {
        var_18[var_1] = (char)var_16;
      }
      else {
        local_24 = var_1 + 0x200;
        local_20 = var_16;
        var_18 = (char *)var_26(var_18,local_24,1);
        var_18[var_1] = (char)local_20;
      }
      var_1 = var_1 + 1;
    }
    if (var_1 < (int)local_24) {
      var_18[var_1] = '\0';
    }
    else {
      var_18 = (char *)var_26(var_18,var_1 + 0x200,1);
      var_18[var_1] = '\0';
    }
    var_1 = 2;
    var_27(var_24);
    var_14(conf,0x14,var_18);
    var_14(conf,0x15,"");
    uVar15 = (type_6 *)0xfffffff3 < &stack0xffffffc4;
    uVar17 = &stack0x00000000 == (type_6 *)0x30;
    var_10(conf,0x16,1);
    var_22(var_18);
    var_16 = 3;
    var_2 = (type_5 *)p;
    var_3 = &DAT_0004b104;
    do {
      if (var_16 == 0) break;
      var_16 = var_16 + -1;
      uVar15 = *var_2 < *var_3;
      uVar17 = *var_2 == *var_3;
      var_2 = var_2 + (type_4)bVar18 * -2 + 1;
      var_3 = var_3 + (type_4)bVar18 * -2 + 1;
    } while ((bool)uVar17);
    var_4 = (!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15;
    if (!var_4) goto LAB_00016777;
    if (((type_5)cmdline_tooltype & 2) != 0) goto LAB_000161c3;
LAB_000164a7:
    var_44 = var_21(var_5,(char **)0x0,10);
    var_10(conf,1,var_44);
    var_1 = var_28(p,"-pw");
    if (var_1 == 0) {
      if (((type_5)cmdline_tooltype & 2) != 0) goto LAB_000161c3;
LAB_000164f6:
      var_1 = var_29(conf,2);
      if (var_1 == 3) {
        cmdline_password = var_8(var_5);
        var_30 = 0xffffffff;
        var_18 = var_5;
        do {
          if (var_30 == 0) break;
          var_30 = var_30 - 1;
          var_31 = *var_18;
          var_18 = var_18 + (type_4)bVar18 * -2 + 1;
        } while (var_31 != '\0');
        var_32(var_5,~var_30 - 1);
      }
      else {
        var_19("the -pw option can only be used with the SSH protocol");
      }
      var_1 = var_28(p,"-agent");
      if ((var_1 == 0) || (var_1 = var_28(p,"-pagent"), var_1 == 0)) goto LAB_00015d3a;
      var_1 = 2;
      var_16 = var_28(p,"-pageant");
      if (var_16 == 0) goto LAB_0001688c;
    }
    else {
      var_1 = var_28(p,"-agent");
      if (var_1 == 0) {
LAB_00015d3a:
        if (((type_5)cmdline_tooltype & 2) != 0) goto LAB_00015d50;
        goto LAB_000168a1;
      }
      var_1 = 2;
      var_16 = var_28(p,"-pagent");
      if (var_16 == 0) goto LAB_0001688c;
LAB_0001685f:
      var_16 = var_28(p,"-pageant");
      if (var_16 == 0) goto LAB_00016884;
    }
    var_16 = var_28(p,"-noagent");
    if ((var_16 == 0) || (var_16 = var_28(p,"-nopagent"), var_16 == 0)) {
LAB_00016e5e:
      if (var_6 < 0) {
        return 1;
      }
LAB_00016e44:
      if (((type_5)cmdline_tooltype & 2) != 0) goto LAB_00015d50;
      if (var_6 != 0) goto LAB_00015c78;
      goto LAB_000168e1;
    }
LAB_000165eb:
    var_16 = var_28(p,"-nopageant");
    if (var_16 == 0) goto LAB_00016e5e;
    var_16 = var_28(p,"-A");
    if (var_16 != 0) {
      var_16 = var_28(p,"-a");
      if (var_16 != 0) goto LAB_00016f0f;
      if (var_6 < 0) {
        return 1;
      }
      goto LAB_0001700b;
    }
    if (var_6 < 0) {
      return 1;
    }
    if (((type_5)cmdline_tooltype & 3) != 0) goto LAB_00015d50;
    if (var_6 != 0) goto LAB_00015c78;
LAB_00016921:
    var_10(conf,0x1d,1);
    var_1 = var_28(p,"-a");
    if (var_1 != 0) {
      var_1 = 1;
      var_16 = var_28(p,"-X");
      if (var_16 == 0) goto LAB_00016f38;
LAB_00016f97:
      var_16 = var_28(p,"-x");
      if (var_16 != 0) goto LAB_0001704f;
      if (var_6 < 0) {
        return 1;
      }
LAB_00016fc4:
      if (((type_5)cmdline_tooltype & 3) != 0) goto LAB_00015d50;
      if (var_6 != 0) goto LAB_00015c78;
      goto LAB_000169e4;
    }
    if (((type_5)cmdline_tooltype & 3) != 0) goto LAB_00015d50;
LAB_00016961:
    var_10(conf,0x1d,0);
    var_1 = var_28(p,"-X");
    if (var_1 == 0) {
      if (((type_5)cmdline_tooltype & 3) != 0) goto LAB_00015d50;
      goto LAB_000169a1;
    }
    var_1 = 1;
    var_16 = var_28(p,"-x");
    if (var_16 == 0) goto LAB_00016fc4;
LAB_0001704f:
    var_16 = var_28(p,"-t");
    if (var_16 == 0) {
      if (var_6 < 0) {
        return 1;
      }
      goto LAB_0001707c;
    }
LAB_000177b1:
    var_16 = var_28(p,"-T");
    if (var_16 != 0) goto LAB_00017759;
    if (var_6 < 0) {
      return 1;
    }
LAB_0001770d:
    if (((type_5)cmdline_tooltype & 3) != 0) goto LAB_00015d50;
    if (var_6 != 0) goto LAB_00017091;
LAB_00016a67:
    var_10(conf,0x16,1);
    var_1 = var_28(p,"-N");
    if (var_1 == 0) {
      if (((type_5)cmdline_tooltype & 3) != 0) goto LAB_00015d50;
LAB_00016aa7:
      var_10(conf,0x2d,1);
      var_1 = var_28(p,"-C");
      if (var_1 == 0) {
        if (((type_5)cmdline_tooltype & 2) != 0) goto LAB_00015d50;
        goto LAB_00016ae7;
      }
      var_1 = 1;
      var_16 = var_28(p,"-1");
      if (var_16 != 0) goto LAB_00017647;
LAB_000175ed:
      if (((type_5)cmdline_tooltype & 2) != 0) goto LAB_00015d50;
      if (var_6 != 0) goto LAB_00015c78;
      goto LAB_00016b27;
    }
    var_1 = 1;
    var_16 = var_28(p,"-C");
    if (var_16 == 0) goto LAB_0001762d;
LAB_00017679:
    var_16 = var_28(p,"-1");
    if (var_16 == 0) {
      if (var_6 < 0) {
        return 1;
      }
      goto LAB_000175ed;
    }
LAB_00017647:
    var_16 = var_28(p,"-2");
    if (var_16 == 0) {
      if (var_6 < 0) {
        return 1;
      }
LAB_000175ad:
      if (((type_5)cmdline_tooltype & 2) != 0) goto LAB_00015d50;
      if (var_6 != 0) {
LAB_00015c78:
        var_33(p,var_5,0);
        return 1;
      }
LAB_00016b67:
      var_1 = 1;
      var_10(conf,0x21,3);
    }
  }
  else {
    var_16 = 9;
    var_2 = (type_5 *)p;
    var_3 = (type_5 *)"-loghost";
    do {
      if (var_16 == 0) break;
      var_16 = var_16 + -1;
      var_9 = *var_2 < *var_3;
      var_4 = *var_2 == *var_3;
      var_2 = var_2 + (type_4)bVar18 * -2 + 1;
      var_3 = var_3 + (type_4)bVar18 * -2 + 1;
    } while (var_4);
    var_11 = false;
    var_4 = (!var_9 && !var_4) == var_9;
    if (!var_4) {
      var_16 = 9;
      var_2 = (type_5 *)p;
      var_3 = (type_5 *)"-hostkey";
      do {
        if (var_16 == 0) break;
        var_16 = var_16 + -1;
        var_11 = *var_2 < *var_3;
        var_4 = *var_2 == *var_3;
        var_2 = var_2 + (type_4)bVar18 * -2 + 1;
        var_3 = var_3 + (type_4)bVar18 * -2 + 1;
      } while (var_4);
      var_4 = (!var_11 && !var_4) == var_11;
      if (var_4) {
        if (var_5 == (char *)0x0) {
          return -2;
        }
        if (var_6 < 0) {
          return 2;
        }
LAB_00016218:
        if (((type_5)cmdline_tooltype & 2) != 0) goto LAB_000161c3;
        if (var_6 != 0) goto LAB_00016123;
        goto LAB_00015f0d;
      }
      goto LAB_0001624d;
    }
    if (var_5 == (char *)0x0) {
      return -2;
    }
    if (var_6 < 0) {
      return 2;
    }
    if (((type_5)cmdline_tooltype & 2) != 0) goto LAB_000161c3;
    if (var_6 != 0) goto LAB_00016123;
LAB_00015ec5:
    uVar15 = var_12 < (type_6 *)0x4;
    uVar17 = &stack0x00000000 == (type_6 *)0x30;
    var_14(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;
      uVar15 = *var_2 < *var_3;
      uVar17 = *var_2 == *var_3;
      var_2 = var_2 + (type_4)bVar18 * -2 + 1;
      var_3 = var_3 + (type_4)bVar18 * -2 + 1;
    } while ((bool)uVar17);
    var_4 = (!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15;
    if (!var_4) goto LAB_00016248;
    if (((type_5)cmdline_tooltype & 2) != 0) goto LAB_000161c3;
LAB_00015f0d:
    var_18 = var_8(var_5);
    var_1 = var_34(var_18);
    uVar15 = 0;
    uVar17 = var_1 == 0;
    if ((bool)uVar17) {
      var_19("\'%s\' is not a valid format for a manual host key specification");
      var_22(var_18);
      return 2;
    }
    var_1 = 2;
    var_35(conf,0xad,var_18,"");
    var_22(var_18);
    var_16 = 3;
    var_2 = (type_5 *)p;
    var_3 = &DAT_0004b0ec;
    do {
      if (var_16 == 0) break;
      var_16 = var_16 + -1;
      uVar15 = *var_2 < *var_3;
      uVar17 = *var_2 == *var_3;
      var_2 = var_2 + (type_4)bVar18 * -2 + 1;
      var_3 = var_3 + (type_4)bVar18 * -2 + 1;
    } while ((bool)uVar17);
    var_4 = (!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15;
    if (!var_4) goto LAB_0001626b;
    var_4 = ((type_5)cmdline_tooltype & 3) == 0;
    if (!var_4) goto LAB_000161c3;
LAB_00015f8f:
    var_11 = false;
    var_1 = 3;
    var_2 = (type_5 *)p;
    var_3 = (type_5 *)0x53a3b;
    do {
      if (var_1 == 0) break;
      var_1 = var_1 + -1;
      var_11 = *var_2 < *var_3;
      var_4 = *var_2 == *var_3;
      var_2 = var_2 + (type_4)bVar18 * -2 + 1;
      var_3 = var_3 + (type_4)bVar18 * -2 + 1;
    } while (var_4);
    if ((!var_11 && !var_4) == var_11) {
      var_18 = var_20("L%s");
      var_36 = var_8("D");
    }
    else {
      var_18 = var_17(var_5,0x3a);
      var_36 = var_18;
      if (var_18 == (char *)0x0) {
        var_19("-%c expects at least two colons in its argument");
        return 2;
      }
      do {
        var_37 = var_36;
        var_36 = var_18;
        var_18 = var_17(var_36 + 1,0x3a);
      } while (var_18 != (char *)0x0);
      var_18 = var_20("%c%.*s");
      var_36 = var_8(var_37 + 1);
    }
    uVar15 = (type_6 *)0xffffffef < &stack0xffffffc4;
    uVar17 = &stack0x00000000 == (type_6 *)0x2c;
    var_1 = 2;
    var_35(conf,0x9b,var_18,var_36);
    var_22(var_18);
    var_22(var_36);
    var_16 = 4;
    var_2 = (type_5 *)p;
    var_3 = &DAT_0004b0fd;
    do {
      if (var_16 == 0) break;
      var_16 = var_16 + -1;
      uVar15 = *var_2 < *var_3;
      uVar17 = *var_2 == *var_3;
      var_2 = var_2 + (type_4)bVar18 * -2 + 1;
      var_3 = var_3 + (type_4)bVar18 * -2 + 1;
    } while ((bool)uVar17);
    var_4 = (!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15;
    if (var_4) {
      if (((type_5)cmdline_tooltype & 3) != 0) goto LAB_000161c3;
      goto LAB_000162ed;
    }
LAB_00016698:
    var_11 = false;
    var_16 = 3;
    var_2 = (type_5 *)p;
    var_3 = &DAT_0004b101;
    do {
      if (var_16 == 0) break;
      var_16 = var_16 + -1;
      var_11 = *var_2 < *var_3;
      var_4 = *var_2 == *var_3;
      var_2 = var_2 + (type_4)bVar18 * -2 + 1;
      var_3 = var_3 + (type_4)bVar18 * -2 + 1;
    } while (var_4);
    var_4 = (!var_11 && !var_4) == var_11;
    if (var_4) {
      if (var_5 == (char *)0x0) {
        return -2;
      }
      if (var_6 < 0) {
        return 2;
      }
      if (((type_5)cmdline_tooltype & 3) != 0) goto LAB_000161c3;
      if (var_6 != 0) goto LAB_00016123;
      goto LAB_0001639b;
    }
LAB_000166e0:
    var_11 = false;
    var_16 = 3;
    var_2 = (type_5 *)p;
    var_3 = &DAT_0004b104;
    do {
      if (var_16 == 0) break;
      var_16 = var_16 + -1;
      var_11 = *var_2 < *var_3;
      var_4 = *var_2 == *var_3;
      var_2 = var_2 + (type_4)bVar18 * -2 + 1;
      var_3 = var_3 + (type_4)bVar18 * -2 + 1;
    } while (var_4);
    var_4 = (!var_11 && !var_4) == var_11;
    if (var_4) {
      if (var_5 == (char *)0x0) {
        return -2;
      }
      if (var_6 < 0) {
        return 2;
      }
      if (((type_5)cmdline_tooltype & 2) != 0) goto LAB_000161c3;
      if (var_6 != 0) goto LAB_00016723;
      goto LAB_000164a7;
    }
LAB_00016777:
    var_11 = false;
    var_16 = 4;
    var_2 = (type_5 *)p;
    var_3 = &DAT_0004b107;
    do {
      if (var_16 == 0) break;
      var_16 = var_16 + -1;
      var_11 = *var_2 < *var_3;
      var_4 = *var_2 == *var_3;
      var_2 = var_2 + (type_4)bVar18 * -2 + 1;
      var_3 = var_3 + (type_4)bVar18 * -2 + 1;
    } while (var_4);
    if ((!var_11 && !var_4) == var_11) {
      if (var_5 == (char *)0x0) {
        return -2;
      }
      if (var_6 < 0) {
        return 2;
      }
      if (((type_5)cmdline_tooltype & 2) != 0) goto LAB_000161c3;
      if (var_6 != 0) goto LAB_00016723;
      goto LAB_000164f6;
    }
    var_16 = var_28(p,"-agent");
    if ((var_16 != 0) && (var_16 = var_28(p,"-pagent"), var_16 != 0)) goto LAB_0001685f;
LAB_00016884:
    if (var_6 < 0) {
      return 1;
    }
LAB_0001688c:
    if (((type_5)cmdline_tooltype & 2) != 0) goto LAB_00015d50;
    if (var_6 != 0) goto LAB_00015c78;
LAB_000168a1:
    var_10(conf,0x1c,1);
    var_1 = var_28(p,"-noagent");
    if (var_1 != 0) {
      var_1 = 1;
      var_16 = var_28(p,"-nopagent");
      if (var_16 != 0) goto LAB_000165eb;
      goto LAB_00016e44;
    }
    if (((type_5)cmdline_tooltype & 2) != 0) goto LAB_00015d50;
LAB_000168e1:
    var_10(conf,0x1c,0);
    var_1 = var_28(p,"-A");
    if (var_1 == 0) {
      if (((type_5)cmdline_tooltype & 3) != 0) goto LAB_00015d50;
      goto LAB_00016921;
    }
    var_1 = 1;
    var_16 = var_28(p,"-a");
    if (var_16 == 0) {
LAB_0001700b:
      if (((type_5)cmdline_tooltype & 3) != 0) goto LAB_00015d50;
      if (var_6 != 0) goto LAB_00015c78;
      goto LAB_00016961;
    }
LAB_00016f0f:
    var_16 = var_28(p,"-X");
    if (var_16 != 0) goto LAB_00016f97;
    if (var_6 < 0) {
      return 1;
    }
LAB_00016f38:
    if (((type_5)cmdline_tooltype & 3) != 0) goto LAB_00015d50;
    if (var_6 != 0) goto LAB_00015c78;
LAB_000169a1:
    var_10(conf,0x95,1);
    var_1 = var_28(p,"-x");
    if (var_1 == 0) {
      if (((type_5)cmdline_tooltype & 3) != 0) goto LAB_00015d50;
LAB_000169e4:
      var_10(conf,0x95,0);
      var_1 = var_28(p,"-t");
      if (var_1 == 0) {
        if (((type_5)cmdline_tooltype & 3) != 0) goto LAB_00015d50;
        goto LAB_00016a27;
      }
      var_1 = 1;
      var_16 = var_28(p,"-T");
      if (var_16 == 0) goto LAB_0001770d;
LAB_00017759:
      var_16 = var_28(p,"-N");
      if (var_16 != 0) goto LAB_00017727;
      if (var_6 < 0) {
        return 1;
      }
LAB_000176cd:
      if (((type_5)cmdline_tooltype & 3) != 0) goto LAB_00015d50;
      if (var_6 != 0) goto LAB_00015c78;
      goto LAB_00016aa7;
    }
    var_1 = 1;
    var_16 = var_28(p,"-t");
    if (var_16 != 0) goto LAB_000177b1;
LAB_0001707c:
    if (((type_5)cmdline_tooltype & 3) != 0) goto LAB_00015d50;
    if (var_6 != 0) goto LAB_00017091;
LAB_00016a27:
    var_10(conf,0x16,0);
    var_1 = var_28(p,"-T");
    if (var_1 == 0) {
      if (((type_5)cmdline_tooltype & 3) != 0) goto LAB_00015d50;
      goto LAB_00016a67;
    }
    var_1 = 1;
    var_16 = var_28(p,"-N");
    if (var_16 == 0) goto LAB_000176cd;
LAB_00017727:
    var_16 = var_28(p,"-C");
    if (var_16 != 0) goto LAB_00017679;
    if (var_6 < 0) {
      return 1;
    }
LAB_0001762d:
    if (((type_5)cmdline_tooltype & 2) != 0) goto LAB_00015d50;
    if (var_6 != 0) goto LAB_00015c78;
LAB_00016ae7:
    var_10(conf,0x17,1);
    var_1 = var_28(p,"-1");
    if (var_1 == 0) {
      if (((type_5)cmdline_tooltype & 2) != 0) goto LAB_00015d50;
LAB_00016b27:
      var_10(conf,0x21,0);
      var_1 = var_28(p,"-2");
      if (var_1 == 0) {
        if (((type_5)cmdline_tooltype & 2) != 0) {
LAB_00015d50:
          var_19("option \"%s\" not available in this tool");
          return 1;
        }
        goto LAB_00016b67;
      }
    }
    else {
      var_1 = var_28(p,"-2");
      if (var_1 == 0) goto LAB_000175ad;
    }
    var_1 = 1;
  }
  var_16 = var_28(p,"-i");
  if (var_16 == 0) {
    if (var_5 == (char *)0x0) {
      return -2;
    }
    if (var_6 < 0) {
      return 2;
    }
    if (((type_5)cmdline_tooltype & 2) != 0) goto LAB_000161c3;
    if (var_6 != 0) goto LAB_00016123;
    pFVar5 = var_38(var_5);
    var_39(conf,0x20,pFVar5);
    var_40(pFVar5);
    var_1 = var_28(p,"-4");
    if ((var_1 == 0) || (var_1 = var_28(p,"-ipv4"), var_1 == 0)) goto LAB_00017485;
    var_1 = var_28(p,"-6");
    if (var_1 == 0) goto LAB_00016c88;
    var_1 = 2;
    var_16 = var_28(p,"-ipv6");
joined_r0x000174dc:
    if (var_16 == 0) goto LAB_00016c88;
  }
  else {
    var_16 = var_28(p,"-4");
    if ((var_16 == 0) || (var_16 = var_28(p,"-ipv4"), var_16 == 0)) {
      if (var_6 < 0) {
        return 1;
      }
      if (var_6 != 0) {
LAB_00017091:
        var_33(p,var_5,1);
        return 1;
      }
LAB_00017485:
      var_10(conf,3,1);
      var_1 = var_28(p,"-6");
      if (var_1 != 0) {
        var_1 = 1;
        var_16 = var_28(p,"-ipv6");
        goto joined_r0x000174dc;
      }
    }
    else {
      var_16 = var_28(p,"-6");
      if ((var_16 != 0) && (var_16 = var_28(p,"-ipv6"), var_16 != 0)) goto LAB_00016ca6;
      if (var_6 < 0) {
        return 1;
      }
      if (var_6 != 0) goto LAB_00017091;
    }
LAB_00016c88:
    var_1 = 1;
    var_10(conf,3,2);
  }
LAB_00016ca6:
  var_16 = var_28(p,"-sercfg");
  if (var_16 == 0) {
    if (var_5 == (char *)0x0) {
      return -2;
    }
    if (var_6 < 0) {
      return 2;
    }
    if (((type_5)cmdline_tooltype & 3) != 0) goto LAB_000161c3;
    if (var_6 != 0) {
LAB_00016723:
      var_33(p,var_5,1);
      return 2;
    }
    var_1 = var_29(conf,2);
    var_18 = var_5;
    if (var_1 != 4) {
      var_19("the -sercfg option can only be used with the serial protocol");
    }
    for (; *var_18 != '\0'; var_18 = var_18 + var_16 + var_1) {
      var_36 = var_41(var_18,0x2c);
      if (var_36 == (char *)0x0) {
        var_30 = 0xffffffff;
        var_1 = 0;
        var_36 = var_18;
        do {
          if (var_30 == 0) break;
          var_30 = var_30 - 1;
          var_31 = *var_36;
          var_36 = var_36 + (type_4)bVar18 * -2 + 1;
        } while (var_31 != '\0');
        var_16 = ~var_30 - 1;
      }
      else {
        *var_36 = '\0';
        var_1 = 1;
        var_16 = (int)var_36 - (int)var_18;
      }
      if (var_16 == 1) {
        var_42 = (int)*var_18;
        switch(var_42 - 0x31U & 0xff) {
        case 0:
        case 1:
          var_10(conf,0x3c,(var_42 + -0x30) * 2);
          break;
        default:
          var_19("Unrecognised suboption \"-sercfg %c\"");
          break;
        case 4:
        case 5:
        case 6:
        case 7:
        case 8:
          var_10(conf,0x3b,var_42 + -0x30);
          break;
        case 0x13:
          var_10(conf,0x3e,3);
          break;
        case 0x1d:
          var_10(conf,0x3e,0);
          break;
        case 0x21:
          var_10(conf,0x3e,2);
          break;
        case 0x27:
          var_10(conf,0x3e,1);
          break;
        case 0x34:
          var_10(conf,0x3d,2);
          break;
        case 0x3c:
          var_10(conf,0x3d,3);
          break;
        case 0x3d:
          var_10(conf,0x3d,0);
          break;
        case 0x3e:
          var_10(conf,0x3d,1);
          break;
        case 0x42:
          var_10(conf,0x3d,4);
        }
      }
      else if ((var_16 == 3) && (var_42 = var_43(var_18,"1.5",3), var_42 == 0)) {
        var_10(conf,0x3c,3);
      }
      else {
        var_44 = var_21(var_18,(char **)0x0,10);
        if (var_44 == 0) {
          var_19("Unrecognised suboption \"-sercfg %s\"");
        }
        else {
          var_10(conf,0x3a,var_44);
        }
      }
    }
    var_1 = var_28(p,"-sessionlog");
    if (var_1 == 0) {
      if (((type_5)cmdline_tooltype & 1) != 0) goto LAB_000161c3;
      goto LAB_0001722b;
    }
    var_1 = var_28(p,"-sshlog");
    if (var_1 != 0) goto LAB_000173ff;
LAB_000173c4:
    if (((type_5)cmdline_tooltype & 2) != 0) goto LAB_000161c3;
    if (var_6 != 0) {
LAB_00016123:
      var_33(p,var_5,0);
      return 2;
    }
  }
  else {
    var_16 = var_28(p,"-sessionlog");
    if (var_16 != 0) {
      var_16 = var_28(p,"-sshlog");
      if (var_16 != 0) goto LAB_00017404;
LAB_000173b1:
      if (var_5 == (char *)0x0) {
        return -2;
      }
      if (var_6 < 0) {
        return 2;
      }
      goto LAB_000173c4;
    }
    if (var_5 == (char *)0x0) {
      return -2;
    }
    if (var_6 < 0) {
      return 2;
    }
    if (((type_5)cmdline_tooltype & 1) != 0) goto LAB_000161c3;
    if (var_6 != 0) goto LAB_00016123;
LAB_0001722b:
    pFVar5 = var_38(var_5);
    var_39(conf,0x77,pFVar5);
    var_10(conf,0x78,2);
    var_40(pFVar5);
    var_1 = var_28(p,"-sshlog");
    if (var_1 != 0) {
LAB_000173ff:
      var_1 = 2;
LAB_00017404:
      var_16 = var_28(p,"-sshrawlog");
      if (var_16 != 0) {
        var_16 = var_28(p,"-proxycmd");
        if (var_16 != 0) {
          return var_1;
        }
        if (var_5 == (char *)0x0) {
          return -2;
        }
        if (var_6 < 0) {
          return 2;
        }
        if (((type_5)cmdline_tooltype & 2) != 0) goto LAB_000161c3;
        if (var_6 != 0) goto LAB_00016123;
        goto LAB_00017304;
      }
      goto LAB_000173b1;
    }
    if (((type_5)cmdline_tooltype & 2) != 0) goto LAB_000161c3;
  }
  pFVar5 = var_38(var_5);
  var_39(conf,0x77,pFVar5);
  var_1 = var_28(p,"-sshlog");
  var_10(conf,0x78,4 - (type_4)(var_1 == 0));
  var_40(pFVar5);
  var_1 = var_28(p,"-proxycmd");
  if (var_1 != 0) {
    return 2;
  }
  if (((type_5)cmdline_tooltype & 2) == 0) {
LAB_00017304:
    var_10(conf,0xd,5);
    var_14(conf,0x12,var_5);
    return 2;
  }
LAB_000161c3:
  var_19("option \"%s\" not available in this tool");
  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)))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) 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: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) 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: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (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))) (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: (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: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (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)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) 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))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (return_statement (number_literal)))) (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: (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)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (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))) (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: (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)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (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))) (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: (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)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (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: (binary_expression left: (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 (call_expression function: (identifier) arguments: (argument_list))) (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 (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) 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: (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: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (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)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (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: (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)) right: (pointer_expression argument: (identifier))))) (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 (call_expression function: (identifier) arguments: (argument_list))) (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))))) (if_statement condition: (parenthesized_expression (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: (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))) (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: (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: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (true)))))) (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)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (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: (binary_expression left: (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 (call_expression function: (identifier) arguments: (argument_list))) (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 (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) 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: (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: (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: (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 (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)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (goto_statement label: (statement_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: (goto_statement label: (statement_identifier))) (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: (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: (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))) (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: (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: (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)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (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))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (return_statement (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (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 (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)) right: (pointer_expression argument: (identifier))))) (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 (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (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))))) (if_statement condition: (parenthesized_expression (unary_expression argument: (identifier))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (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 (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content)))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (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))) (return_statement (number_literal)))) (while_statement condition: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier)))) right: (binary_expression left: (identifier) right: (number_literal)))) body: (compound_statement (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: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))) right: (cast_expression type: (type_descriptor type: (primitive_type)) 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: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))) right: (cast_expression type: (type_descriptor type: (primitive_type)) 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)))) (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 (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)) right: (pointer_expression argument: (identifier))))) (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 (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (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))))) (if_statement condition: (parenthesized_expression (unary_expression argument: (identifier))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (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))) (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: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) 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))))) (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)))) (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)))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list)))))) (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))) (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: (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: (identifier) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) 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: (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: (compound_statement (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) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier)))) (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))) (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)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (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)))) (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))) (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))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list)))) (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: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) 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: (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: (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) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier)))) (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)))) (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: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list)))) (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: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) 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: (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: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier)))) (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: (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: (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: (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) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list)))) (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)))))) 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: (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 (unary_expression argument: (identifier))) consequence: (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: (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)))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (goto_statement label: (statement_identifier)))) (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)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (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: (binary_expression left: (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 (call_expression function: (identifier) arguments: (argument_list))) (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: (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))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (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))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (return_statement (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (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))))) (if_statement condition: (parenthesized_expression (unary_expression argument: (identifier))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal)))) (if_statement condition: (parenthesized_expression (unary_expression argument: (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: (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: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (call_expression function: (identifier) arguments: (argument_list)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (return_statement (number_literal)))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (call_expression function: (identifier) arguments: (argument_list)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)) right: (pointer_expression argument: (identifier))))) (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 (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (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))))) (if_statement condition: (parenthesized_expression (identifier)) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) 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: (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)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (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: (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)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (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: (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: (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)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (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 (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) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier)))) (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)))) (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))) (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))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list)))) (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: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) 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: (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 (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier)))) (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) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier)))) (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)))) (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: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list)))) (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: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) 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: (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))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier)))) (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: (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: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier)))) (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)))) (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: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) 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: (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))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier)))) (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)))) (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: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list)))) (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: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list)))) (return_statement (number_literal)))) (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: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier)))))) (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)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (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))) (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: (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)))))) (labeled_statement label: (statement_identifier) (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 (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list)))) (return_statement (number_literal)))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list)))) (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))) (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)))))) (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: (goto_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: (goto_statement label: (statement_identifier)))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list)))))) (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)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list)))) (return_statement (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (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))))) (for_statement condition: (binary_expression left: (pointer_expression argument: (identifier)) right: (char_literal (escape_sequence))) update: (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (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: (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: (identifier)) right: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (char_literal (escape_sequence)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (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)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (switch_statement condition: (parenthesized_expression (pointer_expression argument: (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))) (break_statement)) (case_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (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))) (break_statement)) (case_statement value: (char_literal (character)) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (break_statement)) (case_statement value: (char_literal (character)) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (break_statement)) (case_statement value: (char_literal (character)) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (break_statement)) (case_statement value: (char_literal (character)) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (break_statement)) (case_statement value: (char_literal (character)) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (break_statement)) (case_statement value: (char_literal (character)) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (break_statement)) (case_statement value: (char_literal (character)) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (break_statement)) (case_statement value: (char_literal (character)) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (break_statement)) (case_statement value: (char_literal (character)) (expression_statement (call_expression function: (identifier) arguments: (argument_list))))))) 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)))) 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: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list)))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list))))))))))))) (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: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) 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 (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: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list)))) (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 (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)))) (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)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (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)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (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 (labeled_statement label: (statement_identifier) (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: (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)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (goto_statement label: (statement_identifier)))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (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))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (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)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (return_statement (number_literal)))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list)))) (return_statement (number_literal)))))

/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Type propagation algorithm not settling */

undefined4 MASKED(byte *param_1,char *param_2,int param_3)

{
  char cVar1;
  FILE *__stream;
  int iVar2;
  long lVar3;
  char *pcVar4;
  int iVar5;
  uint uVar6;
  undefined4 uVar7;
  char *pcVar8;
  byte *pbVar9;
  int iVar10;
  byte *pbVar11;
  bool bVar12;
  bool bVar13;
  undefined1 uVar14;
  bool bVar15;
  undefined1 uVar16;
  byte bVar17;
  undefined1 auStack_2c [8];
  int local_24;
  int local_20;
  undefined4 uStack_14;
  
  bVar17 = 0;
  iVar5 = 6;
  uStack_14 = 0x15b6e;
  bVar12 = &stack0xfffffff0 < (undefined1 *)0x1c;
  bVar15 = &stack0x00000000 == (undefined1 *)0x2c;
  pbVar9 = param_1;
  pbVar11 = (byte *)"-load";
  do {
    if (iVar5 == 0) break;
    iVar5 = iVar5 + -1;
    bVar12 = *pbVar9 < *pbVar11;
    bVar15 = *pbVar9 == *pbVar11;
    pbVar9 = pbVar9 + 1;
    pbVar11 = pbVar11 + 1;
  } while (bVar15);
  bVar13 = false;
  bVar12 = (!bVar12 && !bVar15) == bVar12;
  if (bVar12) {
    if (param_2 == (char *)0x0) {
      return 0xfffffffe;
    }
    if (param_3 < 0) {
      return 2;
    }
    thunk_FUN_000249b0();
    DAT_0006f2f4 = 1;
    DAT_0006f2f8 = FUN_00019990();
    return 2;
  }
  iVar5 = 5;
  pbVar9 = param_1;
  pbVar11 = &DAT_0004b0b5;
  do {
    if (iVar5 == 0) break;
    iVar5 = iVar5 + -1;
    bVar13 = *pbVar9 < *pbVar11;
    bVar12 = *pbVar9 == *pbVar11;
    pbVar9 = pbVar9 + 1;
    pbVar11 = pbVar11 + 1;
  } while (bVar12);
  bVar15 = false;
  bVar12 = (!bVar13 && !bVar12) == bVar13;
  if (bVar12) {
    if (param_3 < 0) {
      return 1;
    }
    if ((DAT_0006f0a0 & 3) == 0) {
      if (param_3 == 0) {
        DAT_0006f2dc = 3;
        DAT_0006f2e4 = 0x16;
LAB_00015c0d:
        FUN_000183f0();
        FUN_000183f0();
        return 1;
      }
      goto LAB_00015c78;
    }
    goto LAB_00015d50;
  }
  iVar5 = 8;
  pbVar9 = param_1;
  pbVar11 = (byte *)"-telnet";
  do {
    if (iVar5 == 0) break;
    iVar5 = iVar5 + -1;
    bVar15 = *pbVar9 < *pbVar11;
    bVar12 = *pbVar9 == *pbVar11;
    pbVar9 = pbVar9 + 1;
    pbVar11 = pbVar11 + 1;
  } while (bVar12);
  bVar13 = false;
  bVar12 = (!bVar15 && !bVar12) == bVar15;
  if (bVar12) {
    if (param_3 < 0) {
      return 1;
    }
    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;
    if (param_3 == 0) {
      DAT_0006f2dc = 1;
      DAT_0006f2e4 = 0x17;
      goto LAB_00015c0d;
    }
    goto LAB_00015c78;
  }
  iVar5 = 8;
  pbVar9 = param_1;
  pbVar11 = (byte *)"-rlogin";
  do {
    if (iVar5 == 0) break;
    iVar5 = iVar5 + -1;
    bVar13 = *pbVar9 < *pbVar11;
    bVar12 = *pbVar9 == *pbVar11;
    pbVar9 = pbVar9 + 1;
    pbVar11 = pbVar11 + 1;
  } while (bVar12);
  bVar15 = false;
  bVar12 = (!bVar13 && !bVar12) == bVar13;
  if (bVar12) {
    if (param_3 < 0) {
      return 1;
    }
    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;
    if (param_3 == 0) {
      DAT_0006f2dc = 2;
      DAT_0006f2e4 = 0x201;
      goto LAB_00015c0d;
    }
    goto LAB_00015c78;
  }
  iVar5 = 5;
  pbVar9 = param_1;
  pbVar11 = &DAT_0004b0ca;
  do {
    if (iVar5 == 0) break;
    iVar5 = iVar5 + -1;
    bVar15 = *pbVar9 < *pbVar11;
    bVar12 = *pbVar9 == *pbVar11;
    pbVar9 = pbVar9 + 1;
    pbVar11 = pbVar11 + 1;
  } while (bVar12);
  bVar13 = false;
  bVar12 = (!bVar15 && !bVar12) == bVar15;
  if (bVar12) {
    if (param_3 < 0) {
      return 1;
    }
    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;
    if (param_3 != 0) goto LAB_00015c78;
    uVar14 = auStack_2c < (undefined1 *)0x4;
    uVar16 = &stack0x00000000 == (undefined1 *)0x30;
    DAT_0006f2dc = 0;
    FUN_000183f0();
    iVar5 = 8;
    pbVar9 = param_1;
    pbVar11 = (byte *)"-serial";
    do {
      if (iVar5 == 0) break;
      iVar5 = iVar5 + -1;
      uVar14 = *pbVar9 < *pbVar11;
      uVar16 = *pbVar9 == *pbVar11;
      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;
      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;
    } while ((bool)uVar16);
    bVar12 = false;
    bVar15 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;
    if (bVar15) {
      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;
      goto LAB_00015dd0;
    }
    iVar5 = 3;
    pbVar9 = param_1;
    pbVar11 = &DAT_0004b0d7;
    do {
      if (iVar5 == 0) break;
      iVar5 = iVar5 + -1;
      bVar12 = *pbVar9 < *pbVar11;
      bVar15 = *pbVar9 == *pbVar11;
      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;
      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;
    } while (bVar15);
    bVar12 = (!bVar12 && !bVar15) == bVar12;
    if (bVar12) goto LAB_00015e28;
LAB_00015e31:
    uVar7 = 1;
  }
  else {
    iVar5 = 8;
    pbVar9 = param_1;
    pbVar11 = (byte *)"-serial";
    do {
      if (iVar5 == 0) break;
      iVar5 = iVar5 + -1;
      bVar13 = *pbVar9 < *pbVar11;
      bVar12 = *pbVar9 == *pbVar11;
      pbVar9 = pbVar9 + 1;
      pbVar11 = pbVar11 + 1;
    } while (bVar12);
    bVar15 = false;
    bVar12 = (!bVar13 && !bVar12) == bVar13;
    if (bVar12) {
      if (param_3 < 0) {
        return 1;
      }
      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;
      if (param_3 != 0) goto LAB_00015c78;
LAB_00015dd0:
      DAT_0006f2dc = 4;
      FUN_000183f0();
      FUN_00017e80();
      uVar14 = (undefined1 *)0xfffffff3 < &stack0xffffffc4;
      uVar16 = &stack0x00000000 == (undefined1 *)0x30;
      FUN_00018530();
      iVar5 = 3;
      pbVar9 = param_1;
      pbVar11 = &DAT_0004b0d7;
      do {
        if (iVar5 == 0) break;
        iVar5 = iVar5 + -1;
        uVar14 = *pbVar9 < *pbVar11;
        uVar16 = *pbVar9 == *pbVar11;
        pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;
        pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;
      } while ((bool)uVar16);
      bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;
      if (bVar12) goto LAB_00015e28;
      goto LAB_00015e31;
    }
    iVar5 = 3;
    pbVar9 = param_1;
    pbVar11 = &DAT_0004b0d7;
    do {
      if (iVar5 == 0) break;
      iVar5 = iVar5 + -1;
      bVar15 = *pbVar9 < *pbVar11;
      bVar12 = *pbVar9 == *pbVar11;
      pbVar9 = pbVar9 + 1;
      pbVar11 = pbVar11 + 1;
    } while (bVar12);
    if ((!bVar15 && !bVar12) == bVar15) {
      if (param_3 < 0) {
        return 1;
      }
LAB_00015e28:
      DAT_0006f2e8 = DAT_0006f2e8 | 1;
      bVar12 = DAT_0006f2e8 == 0;
      goto LAB_00015e31;
    }
    uVar7 = 0;
    bVar12 = true;
  }
  bVar15 = false;
  iVar5 = 3;
  pbVar9 = param_1;
  pbVar11 = (byte *)0x53a29;
  do {
    if (iVar5 == 0) break;
    iVar5 = iVar5 + -1;
    bVar15 = *pbVar9 < *pbVar11;
    bVar12 = *pbVar9 == *pbVar11;
    pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;
    pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;
  } while (bVar12);
  bVar13 = false;
  bVar12 = (!bVar15 && !bVar12) == bVar15;
  if (bVar12) {
    if (param_2 == (char *)0x0) {
      return 0xfffffffe;
    }
    if (param_3 < 0) {
      return 2;
    }
    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;
    if (param_3 != 0) goto LAB_00016123;
    uVar14 = auStack_2c < (undefined1 *)0x4;
    uVar16 = &stack0x00000000 == (undefined1 *)0x30;
    FUN_00018530();
    iVar5 = 9;
    pbVar9 = param_1;
    pbVar11 = (byte *)"-loghost";
    do {
      if (iVar5 == 0) break;
      iVar5 = iVar5 + -1;
      uVar14 = *pbVar9 < *pbVar11;
      uVar16 = *pbVar9 == *pbVar11;
      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;
      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;
    } while ((bool)uVar16);
    bVar12 = false;
    bVar15 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;
    if (bVar15) {
      if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;
      goto LAB_00015ec5;
    }
    iVar5 = 9;
    pbVar9 = param_1;
    pbVar11 = (byte *)"-hostkey";
    do {
      if (iVar5 == 0) break;
      iVar5 = iVar5 + -1;
      bVar12 = *pbVar9 < *pbVar11;
      bVar15 = *pbVar9 == *pbVar11;
      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;
      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;
    } while (bVar15);
    bVar12 = (!bVar12 && !bVar15) == bVar12;
    if (bVar12) goto LAB_00016218;
LAB_00016248:
    uVar7 = 2;
LAB_0001624d:
    bVar15 = false;
    iVar5 = 3;
    pbVar9 = param_1;
    pbVar11 = &DAT_0004b0ec;
    do {
      if (iVar5 == 0) break;
      iVar5 = iVar5 + -1;
      bVar15 = *pbVar9 < *pbVar11;
      bVar12 = *pbVar9 == *pbVar11;
      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;
      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;
    } while (bVar12);
    bVar12 = (!bVar15 && !bVar12) == bVar15;
    if (bVar12) {
LAB_00016647:
      if (param_2 == (char *)0x0) {
        return 0xfffffffe;
      }
      if (param_3 < 0) {
        return 2;
      }
      if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;
      bVar12 = param_3 == 0;
      if (!bVar12) goto LAB_00016123;
      goto LAB_00015f8f;
    }
LAB_0001626b:
    bVar15 = false;
    iVar5 = 3;
    pbVar9 = param_1;
    pbVar11 = &DAT_0004b0ef;
    do {
      if (iVar5 == 0) break;
      iVar5 = iVar5 + -1;
      bVar15 = *pbVar9 < *pbVar11;
      bVar12 = *pbVar9 == *pbVar11;
      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;
      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;
    } while (bVar12);
    bVar13 = false;
    bVar12 = (!bVar15 && !bVar12) == bVar15;
    if (bVar12) goto LAB_00016647;
    iVar5 = 3;
    pbVar9 = param_1;
    pbVar11 = (byte *)0x53a3b;
    do {
      if (iVar5 == 0) break;
      iVar5 = iVar5 + -1;
      bVar13 = *pbVar9 < *pbVar11;
      bVar12 = *pbVar9 == *pbVar11;
      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;
      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;
    } while (bVar12);
    bVar15 = false;
    bVar12 = (!bVar13 && !bVar12) == bVar13;
    if (bVar12) goto LAB_00016647;
    iVar5 = 4;
    pbVar9 = param_1;
    pbVar11 = &DAT_0004b0fd;
    do {
      if (iVar5 == 0) break;
      iVar5 = iVar5 + -1;
      bVar15 = *pbVar9 < *pbVar11;
      bVar12 = *pbVar9 == *pbVar11;
      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;
      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;
    } while (bVar12);
    bVar12 = (!bVar15 && !bVar12) == bVar15;
    if (!bVar12) goto LAB_00016698;
    if (param_2 == (char *)0x0) {
      return 0xfffffffe;
    }
    if (param_3 < 0) {
      return 2;
    }
    if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;
    if (param_3 != 0) goto LAB_00016123;
LAB_000162ed:
    iVar5 = FUN_00019140();
    if (iVar5 == 0) {
      FUN_00044820();
      return 2;
    }
    uVar7 = 2;
    FUN_00019ef0();
    FUN_00018530();
    strtol((char *)(iVar5 + 1),(char **)0x0,10);
    uVar14 = (undefined1 *)0xfffffff3 < &stack0xffffffc4;
    uVar16 = &stack0x00000000 == (undefined1 *)0x30;
    FUN_000183f0();
    FUN_0001a110();
    iVar5 = 3;
    pbVar9 = param_1;
    pbVar11 = &DAT_0004b101;
    do {
      if (iVar5 == 0) break;
      iVar5 = iVar5 + -1;
      uVar14 = *pbVar9 < *pbVar11;
      uVar16 = *pbVar9 == *pbVar11;
      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;
      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;
    } while ((bool)uVar16);
    bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;
    if (!bVar12) goto LAB_000166e0;
    if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;
LAB_0001639b:
    iVar10 = 0;
    iVar5 = 0;
    __stream = fopen64(param_2,"r");
    local_24 = 0;
    if (__stream == (FILE *)0x0) {
      FUN_00044820();
      return 2;
    }
    while (iVar2 = fgetc(__stream), iVar2 != -1) {
      if (iVar10 < local_24) {
        *(char *)(iVar5 + iVar10) = (char)iVar2;
      }
      else {
        local_24 = iVar10 + 0x200;
        local_20 = iVar2;
        iVar5 = FUN_00019c80();
        *(char *)(iVar5 + iVar10) = (char)local_20;
      }
      iVar10 = iVar10 + 1;
    }
    if (iVar10 < local_24) {
      *(undefined1 *)(iVar5 + iVar10) = 0;
    }
    else {
      iVar5 = FUN_00019c80();
      *(undefined1 *)(iVar5 + iVar10) = 0;
    }
    uVar7 = 2;
    fclose(__stream);
    FUN_00018530();
    FUN_00018530();
    uVar14 = (undefined1 *)0xfffffff3 < &stack0xffffffc4;
    uVar16 = &stack0x00000000 == (undefined1 *)0x30;
    FUN_000183f0();
    FUN_0001a110();
    iVar5 = 3;
    pbVar9 = param_1;
    pbVar11 = &DAT_0004b104;
    do {
      if (iVar5 == 0) break;
      iVar5 = iVar5 + -1;
      uVar14 = *pbVar9 < *pbVar11;
      uVar16 = *pbVar9 == *pbVar11;
      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;
      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;
    } while ((bool)uVar16);
    bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;
    if (!bVar12) goto LAB_00016777;
    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;
LAB_000164a7:
    strtol(param_2,(char **)0x0,10);
    FUN_000183f0();
    iVar5 = strcmp((char *)param_1,"-pw");
    if (iVar5 == 0) {
      if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;
LAB_000164f6:
      iVar5 = FUN_00017cd0();
      if (iVar5 == 3) {
        DAT_0006f0a8 = FUN_00019990();
        iVar5 = -1;
        pcVar8 = param_2;
        do {
          if (iVar5 == 0) break;
          iVar5 = iVar5 + -1;
          cVar1 = *pcVar8;
          pcVar8 = pcVar8 + (uint)bVar17 * -2 + 1;
        } while (cVar1 != '\0');
        FUN_0001a1f0();
      }
      else {
        FUN_00044820();
      }
      iVar5 = strcmp((char *)param_1,"-agent");
      if ((iVar5 == 0) || (iVar5 = strcmp((char *)param_1,"-pagent"), iVar5 == 0))
      goto LAB_00015d3a;
      uVar7 = 2;
      iVar5 = strcmp((char *)param_1,"-pageant");
      if (iVar5 == 0) goto LAB_0001688c;
    }
    else {
      iVar5 = strcmp((char *)param_1,"-agent");
      if (iVar5 == 0) {
LAB_00015d3a:
        if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;
        goto LAB_000168a1;
      }
      uVar7 = 2;
      iVar5 = strcmp((char *)param_1,"-pagent");
      if (iVar5 == 0) goto LAB_0001688c;
LAB_0001685f:
      iVar5 = strcmp((char *)param_1,"-pageant");
      if (iVar5 == 0) goto LAB_00016884;
    }
    iVar5 = strcmp((char *)param_1,"-noagent");
    if ((iVar5 == 0) || (iVar5 = strcmp((char *)param_1,"-nopagent"), iVar5 == 0)) {
LAB_00016e5e:
      if (param_3 < 0) {
        return 1;
      }
LAB_00016e44:
      if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;
      if (param_3 != 0) goto LAB_00015c78;
      goto LAB_000168e1;
    }
LAB_000165eb:
    iVar5 = strcmp((char *)param_1,"-nopageant");
    if (iVar5 == 0) goto LAB_00016e5e;
    iVar5 = strcmp((char *)param_1,"-A");
    if (iVar5 != 0) {
      iVar5 = strcmp((char *)param_1,"-a");
      if (iVar5 != 0) goto LAB_00016f0f;
      if (param_3 < 0) {
        return 1;
      }
      goto LAB_0001700b;
    }
    if (param_3 < 0) {
      return 1;
    }
    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;
    if (param_3 != 0) goto LAB_00015c78;
LAB_00016921:
    FUN_000183f0();
    iVar5 = strcmp((char *)param_1,"-a");
    if (iVar5 != 0) {
      uVar7 = 1;
      iVar5 = strcmp((char *)param_1,"-X");
      if (iVar5 == 0) goto LAB_00016f38;
LAB_00016f97:
      iVar5 = strcmp((char *)param_1,"-x");
      if (iVar5 != 0) goto LAB_0001704f;
      if (param_3 < 0) {
        return 1;
      }
LAB_00016fc4:
      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;
      if (param_3 != 0) goto LAB_00015c78;
      goto LAB_000169e4;
    }
    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;
LAB_00016961:
    FUN_000183f0();
    iVar5 = strcmp((char *)param_1,"-X");
    if (iVar5 == 0) {
      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;
      goto LAB_000169a1;
    }
    uVar7 = 1;
    iVar5 = strcmp((char *)param_1,"-x");
    if (iVar5 == 0) goto LAB_00016fc4;
LAB_0001704f:
    iVar5 = strcmp((char *)param_1,"-t");
    if (iVar5 == 0) {
      if (param_3 < 0) {
        return 1;
      }
      goto LAB_0001707c;
    }
LAB_000177b1:
    iVar5 = strcmp((char *)param_1,"-T");
    if (iVar5 != 0) goto LAB_00017759;
    if (param_3 < 0) {
      return 1;
    }
LAB_0001770d:
    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;
    if (param_3 != 0) goto LAB_00017091;
LAB_00016a67:
    FUN_000183f0();
    iVar5 = strcmp((char *)param_1,"-N");
    if (iVar5 == 0) {
      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;
LAB_00016aa7:
      FUN_000183f0();
      iVar5 = strcmp((char *)param_1,"-C");
      if (iVar5 == 0) {
        if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;
        goto LAB_00016ae7;
      }
      uVar7 = 1;
      iVar5 = strcmp((char *)param_1,"-1");
      if (iVar5 != 0) goto LAB_00017647;
LAB_000175ed:
      if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;
      if (param_3 != 0) goto LAB_00015c78;
      goto LAB_00016b27;
    }
    uVar7 = 1;
    iVar5 = strcmp((char *)param_1,"-C");
    if (iVar5 == 0) goto LAB_0001762d;
LAB_00017679:
    iVar5 = strcmp((char *)param_1,"-1");
    if (iVar5 == 0) {
      if (param_3 < 0) {
        return 1;
      }
      goto LAB_000175ed;
    }
LAB_00017647:
    iVar5 = strcmp((char *)param_1,"-2");
    if (iVar5 == 0) {
      if (param_3 < 0) {
        return 1;
      }
LAB_000175ad:
      if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;
      if (param_3 != 0) {
LAB_00015c78:
        FUN_00015950();
        return 1;
      }
LAB_00016b67:
      uVar7 = 1;
      FUN_000183f0();
    }
  }
  else {
    iVar5 = 9;
    pbVar9 = param_1;
    pbVar11 = (byte *)"-loghost";
    do {
      if (iVar5 == 0) break;
      iVar5 = iVar5 + -1;
      bVar13 = *pbVar9 < *pbVar11;
      bVar12 = *pbVar9 == *pbVar11;
      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;
      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;
    } while (bVar12);
    bVar15 = false;
    bVar12 = (!bVar13 && !bVar12) == bVar13;
    if (!bVar12) {
      iVar5 = 9;
      pbVar9 = param_1;
      pbVar11 = (byte *)"-hostkey";
      do {
        if (iVar5 == 0) break;
        iVar5 = iVar5 + -1;
        bVar15 = *pbVar9 < *pbVar11;
        bVar12 = *pbVar9 == *pbVar11;
        pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;
        pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;
      } while (bVar12);
      bVar12 = (!bVar15 && !bVar12) == bVar15;
      if (bVar12) {
        if (param_2 == (char *)0x0) {
          return 0xfffffffe;
        }
        if (param_3 < 0) {
          return 2;
        }
LAB_00016218:
        if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;
        if (param_3 != 0) goto LAB_00016123;
        goto LAB_00015f0d;
      }
      goto LAB_0001624d;
    }
    if (param_2 == (char *)0x0) {
      return 0xfffffffe;
    }
    if (param_3 < 0) {
      return 2;
    }
    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;
    if (param_3 != 0) goto LAB_00016123;
LAB_00015ec5:
    uVar14 = auStack_2c < (undefined1 *)0x4;
    uVar16 = &stack0x00000000 == (undefined1 *)0x30;
    FUN_00018530();
    iVar5 = 9;
    pbVar9 = param_1;
    pbVar11 = (byte *)"-hostkey";
    do {
      if (iVar5 == 0) break;
      iVar5 = iVar5 + -1;
      uVar14 = *pbVar9 < *pbVar11;
      uVar16 = *pbVar9 == *pbVar11;
      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;
      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;
    } while ((bool)uVar16);
    bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;
    if (!bVar12) goto LAB_00016248;
    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;
LAB_00015f0d:
    FUN_00019990();
    iVar5 = FUN_0001a210();
    uVar14 = 0;
    uVar16 = iVar5 == 0;
    if ((bool)uVar16) {
      FUN_00044820();
      FUN_0001a110();
      return 2;
    }
    uVar7 = 2;
    FUN_000185e0();
    FUN_0001a110();
    iVar5 = 3;
    pbVar9 = param_1;
    pbVar11 = &DAT_0004b0ec;
    do {
      if (iVar5 == 0) break;
      iVar5 = iVar5 + -1;
      uVar14 = *pbVar9 < *pbVar11;
      uVar16 = *pbVar9 == *pbVar11;
      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;
      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;
    } while ((bool)uVar16);
    bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;
    if (!bVar12) goto LAB_0001626b;
    bVar12 = (DAT_0006f0a0 & 3) == 0;
    if (!bVar12) goto LAB_000161c3;
LAB_00015f8f:
    bVar15 = false;
    iVar5 = 3;
    pbVar9 = param_1;
    pbVar11 = (byte *)0x53a3b;
    do {
      if (iVar5 == 0) break;
      iVar5 = iVar5 + -1;
      bVar15 = *pbVar9 < *pbVar11;
      bVar12 = *pbVar9 == *pbVar11;
      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;
      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;
    } while (bVar12);
    if ((!bVar15 && !bVar12) == bVar15) {
      FUN_00019ef0();
      FUN_00019990();
    }
    else {
      iVar5 = FUN_00019140();
      if (iVar5 == 0) {
        FUN_00044820();
        return 2;
      }
      do {
        iVar5 = FUN_00019140();
      } while (iVar5 != 0);
      FUN_00019ef0();
      FUN_00019990();
    }
    uVar14 = (undefined1 *)0xffffffef < &stack0xffffffc4;
    uVar16 = &stack0x00000000 == (undefined1 *)0x2c;
    uVar7 = 2;
    FUN_000185e0();
    FUN_0001a110();
    FUN_0001a110();
    iVar5 = 4;
    pbVar9 = param_1;
    pbVar11 = &DAT_0004b0fd;
    do {
      if (iVar5 == 0) break;
      iVar5 = iVar5 + -1;
      uVar14 = *pbVar9 < *pbVar11;
      uVar16 = *pbVar9 == *pbVar11;
      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;
      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;
    } while ((bool)uVar16);
    bVar12 = (!(bool)uVar14 && !(bool)uVar16) == (bool)uVar14;
    if (bVar12) {
      if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;
      goto LAB_000162ed;
    }
LAB_00016698:
    bVar15 = false;
    iVar5 = 3;
    pbVar9 = param_1;
    pbVar11 = &DAT_0004b101;
    do {
      if (iVar5 == 0) break;
      iVar5 = iVar5 + -1;
      bVar15 = *pbVar9 < *pbVar11;
      bVar12 = *pbVar9 == *pbVar11;
      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;
      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;
    } while (bVar12);
    bVar12 = (!bVar15 && !bVar12) == bVar15;
    if (bVar12) {
      if (param_2 == (char *)0x0) {
        return 0xfffffffe;
      }
      if (param_3 < 0) {
        return 2;
      }
      if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;
      if (param_3 != 0) goto LAB_00016123;
      goto LAB_0001639b;
    }
LAB_000166e0:
    bVar15 = false;
    iVar5 = 3;
    pbVar9 = param_1;
    pbVar11 = &DAT_0004b104;
    do {
      if (iVar5 == 0) break;
      iVar5 = iVar5 + -1;
      bVar15 = *pbVar9 < *pbVar11;
      bVar12 = *pbVar9 == *pbVar11;
      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;
      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;
    } while (bVar12);
    bVar12 = (!bVar15 && !bVar12) == bVar15;
    if (bVar12) {
      if (param_2 == (char *)0x0) {
        return 0xfffffffe;
      }
      if (param_3 < 0) {
        return 2;
      }
      if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;
      if (param_3 != 0) goto LAB_00016723;
      goto LAB_000164a7;
    }
LAB_00016777:
    bVar15 = false;
    iVar5 = 4;
    pbVar9 = param_1;
    pbVar11 = &DAT_0004b107;
    do {
      if (iVar5 == 0) break;
      iVar5 = iVar5 + -1;
      bVar15 = *pbVar9 < *pbVar11;
      bVar12 = *pbVar9 == *pbVar11;
      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;
      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;
    } while (bVar12);
    if ((!bVar15 && !bVar12) == bVar15) {
      if (param_2 == (char *)0x0) {
        return 0xfffffffe;
      }
      if (param_3 < 0) {
        return 2;
      }
      if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;
      if (param_3 != 0) goto LAB_00016723;
      goto LAB_000164f6;
    }
    iVar5 = strcmp((char *)param_1,"-agent");
    if ((iVar5 != 0) && (iVar5 = strcmp((char *)param_1,"-pagent"), iVar5 != 0)) goto LAB_0001685f;
LAB_00016884:
    if (param_3 < 0) {
      return 1;
    }
LAB_0001688c:
    if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;
    if (param_3 != 0) goto LAB_00015c78;
LAB_000168a1:
    FUN_000183f0();
    iVar5 = strcmp((char *)param_1,"-noagent");
    if (iVar5 != 0) {
      uVar7 = 1;
      iVar5 = strcmp((char *)param_1,"-nopagent");
      if (iVar5 != 0) goto LAB_000165eb;
      goto LAB_00016e44;
    }
    if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;
LAB_000168e1:
    FUN_000183f0();
    iVar5 = strcmp((char *)param_1,"-A");
    if (iVar5 == 0) {
      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;
      goto LAB_00016921;
    }
    uVar7 = 1;
    iVar5 = strcmp((char *)param_1,"-a");
    if (iVar5 == 0) {
LAB_0001700b:
      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;
      if (param_3 != 0) goto LAB_00015c78;
      goto LAB_00016961;
    }
LAB_00016f0f:
    iVar5 = strcmp((char *)param_1,"-X");
    if (iVar5 != 0) goto LAB_00016f97;
    if (param_3 < 0) {
      return 1;
    }
LAB_00016f38:
    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;
    if (param_3 != 0) goto LAB_00015c78;
LAB_000169a1:
    FUN_000183f0();
    iVar5 = strcmp((char *)param_1,"-x");
    if (iVar5 == 0) {
      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;
LAB_000169e4:
      FUN_000183f0();
      iVar5 = strcmp((char *)param_1,"-t");
      if (iVar5 == 0) {
        if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;
        goto LAB_00016a27;
      }
      uVar7 = 1;
      iVar5 = strcmp((char *)param_1,"-T");
      if (iVar5 == 0) goto LAB_0001770d;
LAB_00017759:
      iVar5 = strcmp((char *)param_1,"-N");
      if (iVar5 != 0) goto LAB_00017727;
      if (param_3 < 0) {
        return 1;
      }
LAB_000176cd:
      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;
      if (param_3 != 0) goto LAB_00015c78;
      goto LAB_00016aa7;
    }
    uVar7 = 1;
    iVar5 = strcmp((char *)param_1,"-t");
    if (iVar5 != 0) goto LAB_000177b1;
LAB_0001707c:
    if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;
    if (param_3 != 0) goto LAB_00017091;
LAB_00016a27:
    FUN_000183f0();
    iVar5 = strcmp((char *)param_1,"-T");
    if (iVar5 == 0) {
      if ((DAT_0006f0a0 & 3) != 0) goto LAB_00015d50;
      goto LAB_00016a67;
    }
    uVar7 = 1;
    iVar5 = strcmp((char *)param_1,"-N");
    if (iVar5 == 0) goto LAB_000176cd;
LAB_00017727:
    iVar5 = strcmp((char *)param_1,"-C");
    if (iVar5 != 0) goto LAB_00017679;
    if (param_3 < 0) {
      return 1;
    }
LAB_0001762d:
    if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;
    if (param_3 != 0) goto LAB_00015c78;
LAB_00016ae7:
    FUN_000183f0();
    iVar5 = strcmp((char *)param_1,"-1");
    if (iVar5 == 0) {
      if ((DAT_0006f0a0 & 2) != 0) goto LAB_00015d50;
LAB_00016b27:
      FUN_000183f0();
      iVar5 = strcmp((char *)param_1,"-2");
      if (iVar5 == 0) {
        if ((DAT_0006f0a0 & 2) != 0) {
LAB_00015d50:
          FUN_00044820();
          return 1;
        }
        goto LAB_00016b67;
      }
    }
    else {
      iVar5 = strcmp((char *)param_1,"-2");
      if (iVar5 == 0) goto LAB_000175ad;
    }
    uVar7 = 1;
  }
  iVar5 = strcmp((char *)param_1,"-i");
  if (iVar5 == 0) {
    if (param_2 == (char *)0x0) {
      return 0xfffffffe;
    }
    if (param_3 < 0) {
      return 2;
    }
    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;
    if (param_3 != 0) goto LAB_00016123;
    FUN_00041790();
    FUN_00018770();
    FUN_00041820();
    iVar5 = strcmp((char *)param_1,"-4");
    if ((iVar5 == 0) || (iVar5 = strcmp((char *)param_1,"-ipv4"), iVar5 == 0)) goto LAB_00017485;
    iVar5 = strcmp((char *)param_1,"-6");
    if (iVar5 == 0) goto LAB_00016c88;
    uVar7 = 2;
    iVar5 = strcmp((char *)param_1,"-ipv6");
joined_r0x000174dc:
    if (iVar5 == 0) goto LAB_00016c88;
  }
  else {
    iVar5 = strcmp((char *)param_1,"-4");
    if ((iVar5 == 0) || (iVar5 = strcmp((char *)param_1,"-ipv4"), iVar5 == 0)) {
      if (param_3 < 0) {
        return 1;
      }
      if (param_3 != 0) {
LAB_00017091:
        FUN_00015950();
        return 1;
      }
LAB_00017485:
      FUN_000183f0();
      iVar5 = strcmp((char *)param_1,"-6");
      if (iVar5 != 0) {
        uVar7 = 1;
        iVar5 = strcmp((char *)param_1,"-ipv6");
        goto joined_r0x000174dc;
      }
    }
    else {
      iVar5 = strcmp((char *)param_1,"-6");
      if ((iVar5 != 0) && (iVar5 = strcmp((char *)param_1,"-ipv6"), iVar5 != 0)) goto LAB_00016ca6;
      if (param_3 < 0) {
        return 1;
      }
      if (param_3 != 0) goto LAB_00017091;
    }
LAB_00016c88:
    uVar7 = 1;
    FUN_000183f0();
  }
LAB_00016ca6:
  iVar5 = strcmp((char *)param_1,"-sercfg");
  if (iVar5 == 0) {
    if (param_2 == (char *)0x0) {
      return 0xfffffffe;
    }
    if (param_3 < 0) {
      return 2;
    }
    if ((DAT_0006f0a0 & 3) != 0) goto LAB_000161c3;
    if (param_3 != 0) {
LAB_00016723:
      FUN_00015950();
      return 2;
    }
    iVar5 = FUN_00017cd0();
    pcVar8 = param_2;
    if (iVar5 != 4) {
      FUN_00044820();
    }
    for (; *pcVar8 != '\0'; pcVar8 = pcVar8 + iVar10 + iVar5) {
      pcVar4 = strchr(pcVar8,0x2c);
      if (pcVar4 == (char *)0x0) {
        uVar6 = 0xffffffff;
        iVar5 = 0;
        pcVar4 = pcVar8;
        do {
          if (uVar6 == 0) break;
          uVar6 = uVar6 - 1;
          cVar1 = *pcVar4;
          pcVar4 = pcVar4 + (uint)bVar17 * -2 + 1;
        } while (cVar1 != '\0');
        iVar10 = ~uVar6 - 1;
      }
      else {
        *pcVar4 = '\0';
        iVar5 = 1;
        iVar10 = (int)pcVar4 - (int)pcVar8;
      }
      if (iVar10 == 1) {
        switch(*pcVar8) {
        case '1':
        case '2':
          FUN_000183f0();
          break;
        default:
          FUN_00044820();
          break;
        case '5':
        case '6':
        case '7':
        case '8':
        case '9':
          FUN_000183f0();
          break;
        case 'D':
          FUN_000183f0();
          break;
        case 'N':
          FUN_000183f0();
          break;
        case 'R':
          FUN_000183f0();
          break;
        case 'X':
          FUN_000183f0();
          break;
        case 'e':
          FUN_000183f0();
          break;
        case 'm':
          FUN_000183f0();
          break;
        case 'n':
          FUN_000183f0();
          break;
        case 'o':
          FUN_000183f0();
          break;
        case 's':
          FUN_000183f0();
        }
      }
      else if ((iVar10 == 3) && (iVar2 = strncmp(pcVar8,"1.5",3), iVar2 == 0)) {
        FUN_000183f0();
      }
      else {
        lVar3 = strtol(pcVar8,(char **)0x0,10);
        if (lVar3 == 0) {
          FUN_00044820();
        }
        else {
          FUN_000183f0();
        }
      }
    }
    iVar5 = strcmp((char *)param_1,"-sessionlog");
    if (iVar5 == 0) {
      if ((DAT_0006f0a0 & 1) != 0) goto LAB_000161c3;
      goto LAB_0001722b;
    }
    iVar5 = strcmp((char *)param_1,"-sshlog");
    if (iVar5 != 0) goto LAB_000173ff;
LAB_000173c4:
    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;
    if (param_3 != 0) {
LAB_00016123:
      FUN_00015950();
      return 2;
    }
  }
  else {
    iVar5 = strcmp((char *)param_1,"-sessionlog");
    if (iVar5 != 0) {
      iVar5 = strcmp((char *)param_1,"-sshlog");
      if (iVar5 != 0) goto LAB_00017404;
LAB_000173b1:
      if (param_2 == (char *)0x0) {
        return 0xfffffffe;
      }
      if (param_3 < 0) {
        return 2;
      }
      goto LAB_000173c4;
    }
    if (param_2 == (char *)0x0) {
      return 0xfffffffe;
    }
    if (param_3 < 0) {
      return 2;
    }
    if ((DAT_0006f0a0 & 1) != 0) goto LAB_000161c3;
    if (param_3 != 0) goto LAB_00016123;
LAB_0001722b:
    FUN_00041790();
    FUN_00018770();
    FUN_000183f0();
    FUN_00041820();
    iVar5 = strcmp((char *)param_1,"-sshlog");
    if (iVar5 != 0) {
LAB_000173ff:
      uVar7 = 2;
LAB_00017404:
      iVar5 = strcmp((char *)param_1,"-sshrawlog");
      if (iVar5 != 0) {
        iVar5 = strcmp((char *)param_1,"-proxycmd");
        if (iVar5 != 0) {
          return uVar7;
        }
        if (param_2 == (char *)0x0) {
          return 0xfffffffe;
        }
        if (param_3 < 0) {
          return 2;
        }
        if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;
        if (param_3 != 0) goto LAB_00016123;
        goto LAB_00017304;
      }
      goto LAB_000173b1;
    }
    if ((DAT_0006f0a0 & 2) != 0) goto LAB_000161c3;
  }
  FUN_00041790();
  FUN_00018770();
  strcmp((char *)param_1,"-sshlog");
  FUN_000183f0();
  FUN_00041820();
  iVar5 = strcmp((char *)param_1,"-proxycmd");
  if (iVar5 != 0) {
    return 2;
  }
  if ((DAT_0006f0a0 & 2) == 0) {
LAB_00017304:
    FUN_000183f0();
    FUN_00018530();
    return 2;
  }
LAB_000161c3:
  FUN_00044820();
  return 2;
}

