
/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */
/* WARNING: Enum "DT": Some values do not have unique names */
/* DWARF original prototype: int process_one_option(Command_line * this, int argc, char * * argv,
   int i, bool * no_more_options) */

int __thiscall
gold::Command_line::process_one_option
          (Command_line *this,int argc,char **argv,int i,bool *no_more_options)

{
  char **ppcVar1;
  byte bVar2;
  int iVar3;
  int iVar4;
  One_option *pOVar5;
  char *pcVar6;
  char **ppcVar7;
  int iVar8;
  bool *extraout_EDX;
  byte *pbVar9;
  byte *opt;
  int iVar10;
  byte *pbVar11;
  bool bVar12;
  bool bVar13;
  byte bVar14;
  byte *local_34;
  undefined **local_30;
  int new_i;
  char *arg;
  int dummy_i;
  
  bVar14 = 0;
  ppcVar1 = argv + i;
  pcVar6 = *ppcVar1;
  if ((*pcVar6 != '-') || (*no_more_options != false)) {
                    /* WARNING: Subroutine does not return */
    do_gold_unreachable("../../gold/options.cc",0x5f0,"process_one_option");
  }
  if ((pcVar6[1] != '-') || (pcVar6[2] != '\0')) {
    new_i = i;
    arg = (char *)0x0;
    pOVar5 = anon_unknown.dwarf_a6a7ee::parse_long_option(argc,argv,false,&arg,&new_i);
    iVar3 = new_i;
    if (pOVar5 != (One_option *)0x0) {
      (**pOVar5->reader->_vptr_Struct_var)(pOVar5->reader,*ppcVar1,arg,this,&this->options_);
      return new_i;
    }
    if ((i == new_i) && (opt = (byte *)argv[new_i], *opt == 0x2d)) {
      iVar10 = 1;
      do {
        if (((anonymous_namespace)::parse_short_option(int,char_const**,int,char_const**,int*)::
             dash_z == '\0') &&
           (iVar8 = __cxa_guard_acquire(&(anonymous_namespace)::
                                         parse_short_option(int,char_const**,int,char_const**,int*)
                                         ::dash_z), iVar8 != 0)) {
          pOVar5 = (One_option *)&DAT_00394fa8;
          (anonymous_namespace)::parse_short_option(int,char_const**,int,char_const**,int*)::dash_z
               = &DAT_00394fa8;
                    /* try { // try from 000e6f0f to 000e6f13 has its CatchHandler @ 000e7065 */
          std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::
          _M_construct<char_const*>
                    ((basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)
                     &(anonymous_namespace)::
                      parse_short_option(int,char_const**,int,char_const**,int*)::dash_z,"","",0);
          DAT_00394fc0 = "";
          DAT_00394fb8 = 4;
          DAT_00394fbc = 0x7a;
          DAT_00394fc4 = 0;
          DAT_00394fc8 = "Z-OPTION";
          DAT_00394fcc = 0;
          DAT_00394fd0 = 0;
          DAT_00394fd4 = 0;
          pcVar6 = strchr((anonymous_namespace)::
                          parse_short_option(int,char_const**,int,char_const**,int*)::dash_z,0x5f);
          if (pcVar6 != (char *)0x0) {
            do {
              *pcVar6 = '-';
              pcVar6 = strchr(pcVar6,0x5f);
            } while (pcVar6 != (char *)0x0);
            if ((DAT_00394fc4 != 0) && (gold::options::ready_to_register != false)) {
                    /* try { // try from 000e6fa2 to 000e6fa6 has its CatchHandler @ 000e705e */
              gold::options::One_option::register_option(pOVar5);
            }
          }
          __cxa_guard_release(&(anonymous_namespace)::
                               parse_short_option(int,char_const**,int,char_const**,int*)::dash_z);
          __cxa_atexit(gold::options::One_option::~One_option,
                       &(anonymous_namespace)::
                        parse_short_option(int,char_const**,int,char_const**,int*)::dash_z,
                       &__dso_handle);
        }
        bVar2 = opt[iVar10];
        if (bVar2 == 0x7a) {
          pbVar9 = opt + iVar10 + 1;
          ppcVar7 = &(anonymous_namespace)::
                     parse_short_option(int,char_const**,int,char_const**,int*)::dash_z;
          local_34 = (byte *)DAT_00394fc8;
          if (DAT_00394fc8 == (char *)0x0) goto LAB_000e6e4d;
LAB_000e6d8c:
          iVar8 = new_i + 1;
          local_34 = pbVar9;
          iVar4 = iVar8;
          pbVar11 = pbVar9;
          if (*pbVar9 != 0) goto LAB_000e6da4;
          if (((One_option *)ppcVar7)->optional_arg != false) {
            local_34 = (byte *)((One_option *)ppcVar7)->default_value;
            pbVar11 = (byte *)((One_option *)ppcVar7)->default_value;
            goto LAB_000e6da4;
          }
          if (iVar8 < argc) {
            local_34 = (byte *)argv[iVar8];
            iVar4 = new_i + 2;
            pbVar11 = (byte *)argv[iVar8];
            goto LAB_000e6da4;
          }
LAB_000e704d:
          new_i = iVar8;
          pcVar6 = "missing argument";
          goto LAB_000e6e04;
        }
        if ((0x7e < (int)(char)bVar2 - 1U) ||
           (ppcVar7 = (char **)gold::options::short_options[(char)bVar2],
           (One_option *)ppcVar7 == (One_option *)0x0)) break;
        local_34 = (byte *)((One_option *)ppcVar7)->helparg;
        pbVar9 = opt + iVar10 + 1;
        if (local_34 != (byte *)0x0) goto LAB_000e6d8c;
LAB_000e6e4d:
        arg = (char *)0x0;
        iVar4 = new_i;
        pbVar11 = (byte *)arg;
        if (*pbVar9 == 0) {
          new_i = new_i + 1;
          bVar13 = ppcVar7 ==
                   &(anonymous_namespace)::
                    parse_short_option(int,char_const**,int,char_const**,int*)::dash_z;
          if (bVar13) {
LAB_000e6e78:
            bVar12 = ppcVar7 < &(anonymous_namespace)::
                                parse_short_option(int,char_const**,int,char_const**,int*)::dash_z;
            dummy_i = 0;
            iVar8 = 6;
            pbVar9 = local_34;
            pbVar11 = (byte *)0x28e8f9;
            do {
              opt = pbVar9;
              if (iVar8 == 0) break;
              iVar8 = iVar8 + -1;
              opt = pbVar9 + (uint)bVar14 * -2 + 1;
              bVar12 = *pbVar9 < *pbVar11;
              bVar13 = *pbVar9 == *pbVar11;
              pbVar9 = opt;
              pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;
            } while (bVar13);
            if ((!bVar12 && !bVar13) == bVar12) {
              arg = (char *)(byte *)0x28e8f9;
            }
            ppcVar7 = (char **)anon_unknown.dwarf_a6a7ee::parse_long_option
                                         (1,&arg,true,&arg,&dummy_i);
            if ((One_option *)ppcVar7 == (One_option *)0x0) {
              pcVar6 = (char *)gettext("unknown -z option");
              anon_unknown.dwarf_a6a7ee::usage(pcVar6,(char *)local_34);
              iVar8 = new_i;
              goto LAB_000e704d;
            }
            local_34 = (byte *)arg;
          }
        }
        else {
LAB_000e6da4:
          arg = (char *)pbVar11;
          new_i = iVar4;
          bVar13 = ppcVar7 ==
                   &(anonymous_namespace)::
                    parse_short_option(int,char_const**,int,char_const**,int*)::dash_z;
          if (bVar13) goto LAB_000e6e78;
        }
        iVar10 = iVar10 + 1;
        (**((One_option *)ppcVar7)->reader->_vptr_Struct_var)
                  (((One_option *)ppcVar7)->reader,*ppcVar1,local_34,this,&this->options_);
        if (new_i != iVar3) {
          return new_i;
        }
        opt = (byte *)argv[iVar3];
      } while (*opt == 0x2d);
    }
    opt = (byte *)*ppcVar1;
    pcVar6 = "unknown option";
LAB_000e6e04:
    local_30 = &_GLOBAL_OFFSET_TABLE_;
    pcVar6 = (char *)gettext(pcVar6);
    anon_unknown.dwarf_a6a7ee::usage(pcVar6,(char *)opt);
    no_more_options = extraout_EDX;
    i = (int)local_30;
  }
  *no_more_options = true;
  return i + 1;
}



/* WARNING: Function: __i686.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */

undefined ** FUN_000e6c60(int param_1,int param_2,int param_3,undefined **param_4,char *param_5)

{
  undefined **ppuVar1;
  undefined4 *puVar2;
  char cVar3;
  undefined **ppuVar4;
  byte *pbVar5;
  int iVar6;
  char *pcVar7;
  undefined4 *puVar8;
  char *__s;
  int iVar9;
  char *extraout_EDX;
  byte *pbVar10;
  bool bVar11;
  bool bVar12;
  byte bVar13;
  byte *local_34;
  undefined **local_30;
  undefined **local_28;
  byte *local_24;
  undefined4 local_20 [4];
  
  bVar13 = 0;
  puVar2 = (undefined4 *)(param_3 + (int)param_4 * 4);
  pcVar7 = (char *)*puVar2;
  if ((*pcVar7 != '-') || (*param_5 != '\0')) {
                    /* WARNING: Subroutine does not return */
    FUN_00069d00("../../gold/options.cc",0x5f0,"process_one_option",pcVar7);
  }
  if ((pcVar7[1] != '-') || (pcVar7[2] != '\0')) {
    local_28 = param_4;
    local_24 = (byte *)0x0;
    iVar6 = FUN_000df460(&local_24,&local_28);
    ppuVar4 = local_28;
    if (iVar6 != 0) {
      (**(code **)**(undefined4 **)(iVar6 + 0x30))
                (*(undefined4 **)(iVar6 + 0x30),*puVar2,local_24,param_1,param_1 + 4);
      return local_28;
    }
    if ((param_4 == local_28) && (pcVar7 = *(char **)(param_3 + (int)local_28 * 4), *pcVar7 == '-'))
    {
      iVar6 = 1;
      do {
        if ((DAT_00394f90 == '\0') && (iVar9 = FUN_001e5390(&DAT_00394f90), iVar9 != 0)) {
          DAT_00394fa0 = &DAT_00394fa8;
                    /* try { // try from 000e6f0f to 000e6f13 has its CatchHandler @ 000e7065 */
          FUN_00050e40(&DAT_00394fa0,"","",0,&DAT_00394fa8);
          DAT_00394fc0 = "";
          DAT_00394fb8 = 4;
          DAT_00394fbc = 0x7a;
          DAT_00394fc4 = 0;
          DAT_00394fc8 = "Z-OPTION";
          DAT_00394fcc = 0;
          DAT_00394fd0 = 0;
          DAT_00394fd4 = 0;
          __s = strchr(DAT_00394fa0,0x5f);
          if (__s != (char *)0x0) {
            do {
              *__s = '-';
              __s = strchr(__s,0x5f);
            } while (__s != (char *)0x0);
            if ((DAT_00394fc4 != 0) && (DAT_003951f0 != '\0')) {
                    /* try { // try from 000e6fa2 to 000e6fa6 has its CatchHandler @ 000e705e */
              FUN_000df670();
            }
          }
          FUN_001e5500(&DAT_00394f90);
          __cxa_atexit(FUN_000e8e10,&DAT_00394fa0,&PTR_LOOP_0038f2e4);
        }
        cVar3 = pcVar7[iVar6];
        if (cVar3 == 'z') {
          pbVar10 = (byte *)(pcVar7 + iVar6 + 1);
          puVar8 = &DAT_00394fa0;
          local_34 = (byte *)DAT_00394fc8;
          if ((byte *)DAT_00394fc8 == (byte *)0x0) goto LAB_000e6e4d;
LAB_000e6d8c:
          ppuVar1 = (undefined **)((int)local_28 + 1);
          local_34 = pbVar10;
          pbVar5 = pbVar10;
          if (*pbVar10 != 0) goto LAB_000e6da4;
          if (*(char *)(puVar8 + 0xb) != '\0') {
            local_34 = (byte *)puVar8[8];
            pbVar5 = (byte *)puVar8[8];
            goto LAB_000e6da4;
          }
          if ((int)ppuVar1 < param_2) {
            local_34 = *(byte **)(param_3 + (int)ppuVar1 * 4);
            ppuVar1 = (undefined **)((int)local_28 + 2);
            pbVar5 = local_34;
            goto LAB_000e6da4;
          }
LAB_000e704d:
          local_28 = ppuVar1;
          pcVar7 = "missing argument";
          goto LAB_000e6e04;
        }
        if ((0x7e < (int)cVar3 - 1U) ||
           (puVar8 = *(undefined4 **)(&DAT_00394fe0 + cVar3 * 4), puVar8 == (undefined4 *)0x0))
        break;
        local_34 = (byte *)puVar8[10];
        pbVar10 = (byte *)(pcVar7 + iVar6 + 1);
        if (local_34 != (byte *)0x0) goto LAB_000e6d8c;
LAB_000e6e4d:
        local_24 = (byte *)0x0;
        ppuVar1 = local_28;
        pbVar5 = local_24;
        if (*pbVar10 == 0) {
          local_28 = (undefined **)((int)local_28 + 1);
          bVar12 = (char **)puVar8 == &DAT_00394fa0;
          if (bVar12) {
LAB_000e6e78:
            bVar11 = puVar8 < &DAT_00394fa0;
            local_20[0] = 0;
            iVar9 = 6;
            pbVar10 = (byte *)0x28e8f9;
            do {
              if (iVar9 == 0) break;
              iVar9 = iVar9 + -1;
              bVar11 = *local_34 < *pbVar10;
              bVar12 = *local_34 == *pbVar10;
              local_34 = local_34 + (uint)bVar13 * -2 + 1;
              pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1;
            } while (bVar12);
            if ((!bVar11 && !bVar12) == bVar11) {
              local_24 = (byte *)0x28e8f9;
            }
            puVar8 = (undefined4 *)FUN_000df460(&local_24,local_20);
            if (puVar8 == (undefined4 *)0x0) {
              gettext("unknown -z option");
              FUN_000dcd10();
              ppuVar1 = local_28;
              goto LAB_000e704d;
            }
            local_34 = local_24;
          }
        }
        else {
LAB_000e6da4:
          local_24 = pbVar5;
          local_28 = ppuVar1;
          bVar12 = (char **)puVar8 == &DAT_00394fa0;
          if (bVar12) goto LAB_000e6e78;
        }
        iVar6 = iVar6 + 1;
        (*(code *)**(undefined4 **)puVar8[0xc])
                  ((undefined4 *)puVar8[0xc],*puVar2,local_34,param_1,param_1 + 4);
        if (local_28 != ppuVar4) {
          return local_28;
        }
        pcVar7 = *(char **)(param_3 + (int)ppuVar4 * 4);
      } while (*pcVar7 == '-');
    }
    pcVar7 = "unknown option";
LAB_000e6e04:
    local_30 = &__DT_PLTGOT;
    gettext(pcVar7);
    FUN_000dcd10();
    param_5 = extraout_EDX;
    param_4 = local_30;
  }
  *param_5 = '\x01';
  return (undefined **)((int)param_4 + 1);
}


CALL 0x000559e6
ADD EAX,0x2a839b
PUSH EBP
MOV EBP,ESP
PUSH EDI
PUSH ESI
PUSH EBX
SUB ESP,0x3c
MOV EBX,dword ptr [EBP + 0x14]
MOV EDX,dword ptr [EBP + 0x18]
MOV dword ptr [EBP + -0x2c],EAX
MOV EAX,dword ptr [EBP + 0x10]
LEA EAX,[EAX + EBX*0x4]
MOV dword ptr [EBP + -0x38],EAX
MOV EAX,dword ptr [EAX]
CMP byte ptr [EAX],0x2d
JNZ 0x000e7014
CMP byte ptr [EDX],0x0
JNZ 0x000e7014
CMP byte ptr [EAX + 0x1],0x2d
JNZ 0x000e6ca9
CMP byte ptr [EAX + 0x2],0x0
JZ 0x000e6e18
SUB ESP,0x8
LEA EAX,[EBP + -0x24]
MOV EDX,dword ptr [EBP + 0x10]
XOR ECX,ECX
PUSH EAX
LEA EAX,[EBP + -0x20]
PUSH EAX
MOV dword ptr [EBP + -0x3c],EAX
MOV EAX,dword ptr [EBP + 0xc]
MOV dword ptr [EBP + -0x24],EBX
MOV dword ptr [EBP + -0x20],0x0
CALL 0x000df460
ADD ESP,0x10
TEST EAX,EAX
JZ 0x000e6d00
MOV EDI,dword ptr [EBP + 0x8]
MOV EAX,dword ptr [EAX + 0x30]
SUB ESP,0xc
LEA ECX,[EDI + 0x4]
MOV EDX,dword ptr [EAX]
PUSH ECX
PUSH EDI
MOV EDI,dword ptr [EBP + -0x38]
PUSH dword ptr [EBP + -0x20]
PUSH dword ptr [EDI]
PUSH EAX
CALL dword ptr [EDX]
MOV EAX,dword ptr [EBP + -0x24]
ADD ESP,0x20
LEA ESP,[EBP + -0xc]
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV EAX,dword ptr [EBP + -0x24]
MOV dword ptr [EBP + -0x34],EAX
CMP EBX,EAX
JNZ 0x000e6df3
MOV EDI,dword ptr [EBP + 0x10]
MOV ESI,dword ptr [EDI + EAX*0x4]
CMP byte ptr [ESI],0x2d
JNZ 0x000e6df3
MOV EAX,dword ptr [EBP + -0x2c]
MOV EDI,0x1
LEA EAX,[EAX + 0x5f90]
MOV dword ptr [EBP + -0x40],EAX
LEA EAX,[0x5fa0]
MOV dword ptr [EBP + -0x44],EAX
LEA ESI,[ESI]
NOP
MOV EAX,dword ptr [EBP + -0x2c]
MOVZX EAX,byte ptr [EAX + 0x5f90]
TEST AL,AL
JZ 0x000e6ed0
MOVSX EAX,byte ptr [ESI + EDI*0x1]
CMP AL,0x7a
JZ 0x000e6e30
LEA EDX,[EAX + -0x1]
CMP EDX,0x7e
JA 0x000e6df3
MOV ECX,dword ptr [EBP + -0x2c]
MOV EAX,dword ptr [ECX + EAX*0x4 + 0x5fe0]
TEST EAX,EAX
JZ 0x000e6df3
MOV ECX,dword ptr [EAX + 0x28]
LEA EBX,[EDI + 0x1]
LEA EDX,[ESI + EBX*0x1]
MOV dword ptr [EBP + -0x30],ECX
TEST ECX,ECX
JZ 0x000e6e4d
MOV ECX,dword ptr [EBP + -0x24]
LEA EDI,[ECX + 0x1]
MOV dword ptr [EBP + -0x24],EDI
CMP byte ptr [EDX],0x0
JZ 0x000e6fe0
MOV dword ptr [EBP + -0x20],EDX
MOV dword ptr [EBP + -0x30],EDX
MOV EDI,dword ptr [EBP + -0x2c]
LEA EDX,[EDI + 0x5fa0]
CMP EAX,EDX
JZ 0x000e6e78
MOV EDI,dword ptr [EBP + 0x8]
MOV EAX,dword ptr [EAX + 0x30]
SUB ESP,0xc
LEA ECX,[EDI + 0x4]
MOV EDX,dword ptr [EAX]
PUSH ECX
MOV ECX,dword ptr [EBP + -0x38]
PUSH EDI
MOV EDI,EBX
PUSH dword ptr [EBP + -0x30]
PUSH dword ptr [ECX]
PUSH EAX
CALL dword ptr [EDX]
MOV EAX,dword ptr [EBP + -0x24]
ADD ESP,0x20
CMP EAX,dword ptr [EBP + -0x34]
JNZ 0x000e6cf6
MOV EAX,dword ptr [EBP + 0x10]
MOV ESI,dword ptr [EBP + -0x34]
MOV ESI,dword ptr [EAX + ESI*0x4]
CMP byte ptr [ESI],0x2d
JZ 0x000e6d40
MOV EAX,dword ptr [EBP + -0x38]
MOV EBX,dword ptr [EBP + -0x2c]
SUB ESP,0xc
MOV ESI,dword ptr [EAX]
LEA EAX,[EBX + 0xffeffbf6]
PUSH EAX
CALL 0x000293b0
ADD ESP,0x10
MOV EDX,ESI
CALL 0x000dcd10
LEA ESI,[ESI]
MOV byte ptr [EDX],0x1
LEA ESP,[EBP + -0xc]
LEA EAX,[EBX + 0x1]
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV EAX,dword ptr [EBP + -0x2c]
LEA EBX,[EDI + 0x1]
LEA EDX,[ESI + EBX*0x1]
LEA EAX,[EAX + 0x5fa0]
MOV ECX,dword ptr [EAX + 0x28]
MOV dword ptr [EBP + -0x30],ECX
TEST ECX,ECX
JNZ 0x000e6d8c
MOV dword ptr [EBP + -0x20],0x0
CMP byte ptr [EDX],0x0
JNZ 0x000e6da4
MOV EDI,dword ptr [EBP + -0x2c]
ADD dword ptr [EBP + -0x24],0x1
LEA EDX,[EDI + 0x5fa0]
CMP EAX,EDX
JNZ 0x000e6db5
LEA ESI,[ESI]
MOV dword ptr [EBP + -0x1c],0x0
LEA EAX,[EDI + 0xffeff8f9]
MOV ESI,dword ptr [EBP + -0x30]
MOV ECX,0x6
MOV EDI,EAX
CMPSB.REPE ES:EDI,ESI
SETA DL
SBB DL,0x0
TEST DL,DL
JNZ 0x000e6e9e
MOV dword ptr [EBP + -0x20],EAX
MOV EDX,dword ptr [EBP + -0x3c]
SUB ESP,0x8
LEA EAX,[EBP + -0x1c]
MOV ECX,0x1
PUSH EAX
MOV EAX,0x1
PUSH EDX
CALL 0x000df460
ADD ESP,0x10
TEST EAX,EAX
JZ 0x000e7030
MOV ESI,dword ptr [EBP + -0x20]
MOV dword ptr [EBP + -0x30],ESI
JMP 0x000e6db5
SUB ESP,0xc
PUSH dword ptr [EBP + -0x40]
MOV EBX,dword ptr [EBP + -0x2c]
CALL 0x001e5390
ADD ESP,0x10
TEST EAX,EAX
JZ 0x000e6d52
MOV EAX,dword ptr [EBP + -0x2c]
MOV EBX,dword ptr [EBP + -0x44]
LEA EDX,[EAX + 0x5fa8]
MOV dword ptr [EBX + EAX*0x1],EDX
LEA EBX,[EAX + 0xfff0edf6]
LEA EAX,[EAX + 0x5fa0]
PUSH 0x0
PUSH EBX
PUSH EBX
PUSH EAX
MOV dword ptr [EBP + -0x48],EDX
MOV dword ptr [EBP + -0x30],EAX
CALL 0x00050e40
MOV EDX,dword ptr [EBP + -0x2c]
POP ECX
MOV ECX,dword ptr [EBP + -0x44]
POP EAX
LEA EAX,[EDX + 0xffeffbdb]
MOV dword ptr [ECX + EDX*0x1 + 0x20],EBX
MOV EBX,EDX
MOV dword ptr [ECX + EDX*0x1 + 0x18],0x4
MOV byte ptr [ECX + EDX*0x1 + 0x1c],0x7a
MOV dword ptr [ECX + EDX*0x1 + 0x24],0x0
MOV dword ptr [ECX + EDX*0x1 + 0x28],EAX
MOV byte ptr [ECX + EDX*0x1 + 0x2c],0x0
MOV dword ptr [ECX + EDX*0x1 + 0x30],0x0
MOV byte ptr [ECX + EDX*0x1 + 0x34],0x0
PUSH 0x5f
PUSH dword ptr [EDX + 0x5fa0]
CALL 0x000291d0
ADD ESP,0x10
TEST EAX,EAX
JZ 0x000e6fa7
LEA ESI,[ESI]
NOP
SUB ESP,0x8
MOV byte ptr [EAX],0x2d
MOV EBX,dword ptr [EBP + -0x2c]
PUSH 0x5f
PUSH EAX
CALL 0x000291d0
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x000e6f70
MOV ECX,dword ptr [EBP + -0x44]
MOV EDX,dword ptr [ECX + EBX*0x1 + 0x24]
TEST EDX,EDX
JZ 0x000e6fa7
CMP byte ptr [EBX + 0x61f0],0x0
JZ 0x000e6fa7
LEA EAX,[EBX + 0x5fa0]
CALL 0x000df670
SUB ESP,0xc
PUSH dword ptr [EBP + -0x40]
MOV EBX,dword ptr [EBP + -0x2c]
CALL 0x001e5500
MOV EBX,dword ptr [EBP + -0x2c]
ADD ESP,0xc
LEA EAX,[EBX + 0x2e4]
PUSH EAX
LEA EAX,[EBX + 0xffd59e10]
PUSH dword ptr [EBP + -0x30]
PUSH EAX
CALL 0x00029110
ADD ESP,0x10
JMP 0x000e6d52
CMP byte ptr [EAX + 0x2c],0x0
JZ 0x000e6ff8
MOV EDI,dword ptr [EAX + 0x20]
MOV dword ptr [EBP + -0x30],EDI
MOV dword ptr [EBP + -0x20],EDI
JMP 0x000e6da4
CMP dword ptr [EBP + 0xc],EDI
JLE 0x000e704d
MOV ESI,dword ptr [EBP + 0x10]
ADD ECX,0x2
MOV dword ptr [EBP + -0x24],ECX
MOV ESI,dword ptr [ESI + EDI*0x4]
MOV dword ptr [EBP + -0x30],ESI
MOV dword ptr [EBP + -0x20],ESI
JMP 0x000e6da4
MOV EBX,dword ptr [EBP + -0x2c]
PUSH EAX
LEA EAX,[EBX + 0xfff028bc]
PUSH EAX
LEA EAX,[EBX + 0xffefe741]
PUSH 0x5f0
PUSH EAX
CALL 0x00069d00
MOV EBX,dword ptr [EBP + -0x2c]
SUB ESP,0xc
LEA EAX,[EBX + 0xffeffbe4]
PUSH EAX
CALL 0x000293b0
MOV EDX,dword ptr [EBP + -0x30]
ADD ESP,0x10
CALL 0x000dcd10
MOV EBX,dword ptr [EBP + -0x2c]
SUB ESP,0xc
LEA EAX,[EBX + 0xffefe7ea]
JMP 0x000e6e04
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */\n\nundefined ** FUN_000e6c60(int param_1,int param_2,int param_3,undefined **param_4,char *param_5)\n\n{\n  undefined **ppuVar1;\n  undefined4 *puVar2;\n  char cVar3;\n  undefined **ppuVar4;\n  byte *pbVar5;\n  int iVar6;\n  char *pcVar7;\n  undefined4 *puVar8;\n  char *__s;\n  int iVar9;\n  char *extraout_EDX;\n  byte *pbVar10;\n  bool bVar11;\n  bool bVar12;\n  byte bVar13;\n  byte *local_34;\n  undefined **local_30;\n  undefined **local_28;\n  byte *local_24;\n  undefined4 local_20 [4];\n  \n  bVar13 = 0;\n  puVar2 = (undefined4 *)(param_3 + (int)param_4 * 4);\n  pcVar7 = (char *)*puVar2;\n  if ((*pcVar7 != '-') || (*param_5 != '\0')) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00069d00("../../gold/options.cc",0x5f0,"process_one_option",pcVar7);\n  }\n  if ((pcVar7[1] != '-') || (pcVar7[2] != '\0')) {\n    local_28 = param_4;\n    local_24 = (byte *)0x0;\n    iVar6 = FUN_000df460(&local_24,&local_28);\n    ppuVar4 = local_28;\n    if (iVar6 != 0) {\n      (**(code **)**(undefined4 **)(iVar6 + 0x30))\n                (*(undefined4 **)(iVar6 + 0x30),*puVar2,local_24,param_1,param_1 + 4);\n      return local_28;\n    }\n    if ((param_4 == local_28) && (pcVar7 = *(char **)(param_3 + (int)local_28 * 4), *pcVar7 == '-'))\n    {\n      iVar6 = 1;\n      do {\n        if ((DAT_00394f90 == '\0') && (iVar9 = FUN_001e5390(&DAT_00394f90), iVar9 != 0)) {\n          DAT_00394fa0 = &DAT_00394fa8;\n                    /* try { // try from 000e6f0f to 000e6f13 has its CatchHandler @ 000e7065 */\n          FUN_00050e40(&DAT_00394fa0,"","",0,&DAT_00394fa8);\n          DAT_00394fc0 = "";\n          DAT_00394fb8 = 4;\n          DAT_00394fbc = 0x7a;\n          DAT_00394fc4 = 0;\n          DAT_00394fc8 = "Z-OPTION";\n          DAT_00394fcc = 0;\n          DAT_00394fd0 = 0;\n          DAT_00394fd4 = 0;\n          __s = strchr(DAT_00394fa0,0x5f);\n          if (__s != (char *)0x0) {\n            do {\n              *__s = '-';\n              __s = strchr(__s,0x5f);\n            } while (__s != (char *)0x0);\n            if ((DAT_00394fc4 != 0) && (DAT_003951f0 != '\0')) {\n                    /* try { // try from 000e6fa2 to 000e6fa6 has its CatchHandler @ 000e705e */\n              FUN_000df670();\n            }\n          }\n          FUN_001e5500(&DAT_00394f90);\n          __cxa_atexit(FUN_000e8e10,&DAT_00394fa0,&PTR_LOOP_0038f2e4);\n        }\n        cVar3 = pcVar7[iVar6];\n        if (cVar3 == 'z') {\n          pbVar10 = (byte *)(pcVar7 + iVar6 + 1);\n          puVar8 = &DAT_00394fa0;\n          local_34 = (byte *)DAT_00394fc8;\n          if ((byte *)DAT_00394fc8 == (byte *)0x0) goto LAB_000e6e4d;\nLAB_000e6d8c:\n          ppuVar1 = (undefined **)((int)local_28 + 1);\n          local_34 = pbVar10;\n          pbVar5 = pbVar10;\n          if (*pbVar10 != 0) goto LAB_000e6da4;\n          if (*(char *)(puVar8 + 0xb) != '\0') {\n            local_34 = (byte *)puVar8[8];\n            pbVar5 = (byte *)puVar8[8];\n            goto LAB_000e6da4;\n          }\n          if ((int)ppuVar1 < param_2) {\n            local_34 = *(byte **)(param_3 + (int)ppuVar1 * 4);\n            ppuVar1 = (undefined **)((int)local_28 + 2);\n            pbVar5 = local_34;\n            goto LAB_000e6da4;\n          }\nLAB_000e704d:\n          local_28 = ppuVar1;\n          pcVar7 = "missing argument";\n          goto LAB_000e6e04;\n        }\n        if ((0x7e < (int)cVar3 - 1U) ||\n           (puVar8 = *(undefined4 **)(&DAT_00394fe0 + cVar3 * 4), puVar8 == (undefined4 *)0x0))\n        break;\n        local_34 = (byte *)puVar8[10];\n        pbVar10 = (byte *)(pcVar7 + iVar6 + 1);\n        if (local_34 != (byte *)0x0) goto LAB_000e6d8c;\nLAB_000e6e4d:\n        local_24 = (byte *)0x0;\n        ppuVar1 = local_28;\n        pbVar5 = local_24;\n        if (*pbVar10 == 0) {\n          local_28 = (undefined **)((int)local_28 + 1);\n          bVar12 = (char **)puVar8 == &DAT_00394fa0;\n          if (bVar12) {\nLAB_000e6e78:\n            bVar11 = puVar8 < &DAT_00394fa0;\n            local_20[0] = 0;\n            iVar9 = 6;\n            pbVar10 = (byte *)0x28e8f9;\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar11 = *local_34 < *pbVar10;\n              bVar12 = *local_34 == *pbVar10;\n              local_34 = local_34 + (uint)bVar13 * -2 + 1;\n              pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1;\n            } while (bVar12);\n            if ((!bVar11 && !bVar12) == bVar11) {\n              local_24 = (byte *)0x28e8f9;\n            }\n            puVar8 = (undefined4 *)FUN_000df460(&local_24,local_20);\n            if (puVar8 == (undefined4 *)0x0) {\n              gettext("unknown -z option");\n              FUN_000dcd10();\n              ppuVar1 = local_28;\n              goto LAB_000e704d;\n            }\n            local_34 = local_24;\n          }\n        }\n        else {\nLAB_000e6da4:\n          local_24 = pbVar5;\n          local_28 = ppuVar1;\n          bVar12 = (char **)puVar8 == &DAT_00394fa0;\n          if (bVar12) goto LAB_000e6e78;\n        }\n        iVar6 = iVar6 + 1;\n        (*(code *)**(undefined4 **)puVar8[0xc])\n                  ((undefined4 *)puVar8[0xc],*puVar2,local_34,param_1,param_1 + 4);\n        if (local_28 != ppuVar4) {\n          return local_28;\n        }\n        pcVar7 = *(char **)(param_3 + (int)ppuVar4 * 4);\n      } while (*pcVar7 == '-');\n    }\n    pcVar7 = "unknown option";\nLAB_000e6e04:\n    local_30 = &__DT_PLTGOT;\n    gettext(pcVar7);\n    FUN_000dcd10();\n    param_5 = extraout_EDX;\n    param_4 = local_30;\n  }\n  *param_5 = '\x01';\n  return (undefined **)((int)param_4 + 1);\n}\n\n" comment (function_definition "undefined ** FUN_000e6c60(int param_1,int param_2,int param_3,undefined **param_4,char *param_5)\n\n{\n  undefined **ppuVar1;\n  undefined4 *puVar2;\n  char cVar3;\n  undefined **ppuVar4;\n  byte *pbVar5;\n  int iVar6;\n  char *pcVar7;\n  undefined4 *puVar8;\n  char *__s;\n  int iVar9;\n  char *extraout_EDX;\n  byte *pbVar10;\n  bool bVar11;\n  bool bVar12;\n  byte bVar13;\n  byte *local_34;\n  undefined **local_30;\n  undefined **local_28;\n  byte *local_24;\n  undefined4 local_20 [4];\n  \n  bVar13 = 0;\n  puVar2 = (undefined4 *)(param_3 + (int)param_4 * 4);\n  pcVar7 = (char *)*puVar2;\n  if ((*pcVar7 != '-') || (*param_5 != '\0')) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00069d00("../../gold/options.cc",0x5f0,"process_one_option",pcVar7);\n  }\n  if ((pcVar7[1] != '-') || (pcVar7[2] != '\0')) {\n    local_28 = param_4;\n    local_24 = (byte *)0x0;\n    iVar6 = FUN_000df460(&local_24,&local_28);\n    ppuVar4 = local_28;\n    if (iVar6 != 0) {\n      (**(code **)**(undefined4 **)(iVar6 + 0x30))\n                (*(undefined4 **)(iVar6 + 0x30),*puVar2,local_24,param_1,param_1 + 4);\n      return local_28;\n    }\n    if ((param_4 == local_28) && (pcVar7 = *(char **)(param_3 + (int)local_28 * 4), *pcVar7 == '-'))\n    {\n      iVar6 = 1;\n      do {\n        if ((DAT_00394f90 == '\0') && (iVar9 = FUN_001e5390(&DAT_00394f90), iVar9 != 0)) {\n          DAT_00394fa0 = &DAT_00394fa8;\n                    /* try { // try from 000e6f0f to 000e6f13 has its CatchHandler @ 000e7065 */\n          FUN_00050e40(&DAT_00394fa0,"","",0,&DAT_00394fa8);\n          DAT_00394fc0 = "";\n          DAT_00394fb8 = 4;\n          DAT_00394fbc = 0x7a;\n          DAT_00394fc4 = 0;\n          DAT_00394fc8 = "Z-OPTION";\n          DAT_00394fcc = 0;\n          DAT_00394fd0 = 0;\n          DAT_00394fd4 = 0;\n          __s = strchr(DAT_00394fa0,0x5f);\n          if (__s != (char *)0x0) {\n            do {\n              *__s = '-';\n              __s = strchr(__s,0x5f);\n            } while (__s != (char *)0x0);\n            if ((DAT_00394fc4 != 0) && (DAT_003951f0 != '\0')) {\n                    /* try { // try from 000e6fa2 to 000e6fa6 has its CatchHandler @ 000e705e */\n              FUN_000df670();\n            }\n          }\n          FUN_001e5500(&DAT_00394f90);\n          __cxa_atexit(FUN_000e8e10,&DAT_00394fa0,&PTR_LOOP_0038f2e4);\n        }\n        cVar3 = pcVar7[iVar6];\n        if (cVar3 == 'z') {\n          pbVar10 = (byte *)(pcVar7 + iVar6 + 1);\n          puVar8 = &DAT_00394fa0;\n          local_34 = (byte *)DAT_00394fc8;\n          if ((byte *)DAT_00394fc8 == (byte *)0x0) goto LAB_000e6e4d;\nLAB_000e6d8c:\n          ppuVar1 = (undefined **)((int)local_28 + 1);\n          local_34 = pbVar10;\n          pbVar5 = pbVar10;\n          if (*pbVar10 != 0) goto LAB_000e6da4;\n          if (*(char *)(puVar8 + 0xb) != '\0') {\n            local_34 = (byte *)puVar8[8];\n            pbVar5 = (byte *)puVar8[8];\n            goto LAB_000e6da4;\n          }\n          if ((int)ppuVar1 < param_2) {\n            local_34 = *(byte **)(param_3 + (int)ppuVar1 * 4);\n            ppuVar1 = (undefined **)((int)local_28 + 2);\n            pbVar5 = local_34;\n            goto LAB_000e6da4;\n          }\nLAB_000e704d:\n          local_28 = ppuVar1;\n          pcVar7 = "missing argument";\n          goto LAB_000e6e04;\n        }\n        if ((0x7e < (int)cVar3 - 1U) ||\n           (puVar8 = *(undefined4 **)(&DAT_00394fe0 + cVar3 * 4), puVar8 == (undefined4 *)0x0))\n        break;\n        local_34 = (byte *)puVar8[10];\n        pbVar10 = (byte *)(pcVar7 + iVar6 + 1);\n        if (local_34 != (byte *)0x0) goto LAB_000e6d8c;\nLAB_000e6e4d:\n        local_24 = (byte *)0x0;\n        ppuVar1 = local_28;\n        pbVar5 = local_24;\n        if (*pbVar10 == 0) {\n          local_28 = (undefined **)((int)local_28 + 1);\n          bVar12 = (char **)puVar8 == &DAT_00394fa0;\n          if (bVar12) {\nLAB_000e6e78:\n            bVar11 = puVar8 < &DAT_00394fa0;\n            local_20[0] = 0;\n            iVar9 = 6;\n            pbVar10 = (byte *)0x28e8f9;\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar11 = *local_34 < *pbVar10;\n              bVar12 = *local_34 == *pbVar10;\n              local_34 = local_34 + (uint)bVar13 * -2 + 1;\n              pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1;\n            } while (bVar12);\n            if ((!bVar11 && !bVar12) == bVar11) {\n              local_24 = (byte *)0x28e8f9;\n            }\n            puVar8 = (undefined4 *)FUN_000df460(&local_24,local_20);\n            if (puVar8 == (undefined4 *)0x0) {\n              gettext("unknown -z option");\n              FUN_000dcd10();\n              ppuVar1 = local_28;\n              goto LAB_000e704d;\n            }\n            local_34 = local_24;\n          }\n        }\n        else {\nLAB_000e6da4:\n          local_24 = pbVar5;\n          local_28 = ppuVar1;\n          bVar12 = (char **)puVar8 == &DAT_00394fa0;\n          if (bVar12) goto LAB_000e6e78;\n        }\n        iVar6 = iVar6 + 1;\n        (*(code *)**(undefined4 **)puVar8[0xc])\n                  ((undefined4 *)puVar8[0xc],*puVar2,local_34,param_1,param_1 + 4);\n        if (local_28 != ppuVar4) {\n          return local_28;\n        }\n        pcVar7 = *(char **)(param_3 + (int)ppuVar4 * 4);\n      } while (*pcVar7 == '-');\n    }\n    pcVar7 = "unknown option";\nLAB_000e6e04:\n    local_30 = &__DT_PLTGOT;\n    gettext(pcVar7);\n    FUN_000dcd10();\n    param_5 = extraout_EDX;\n    param_4 = local_30;\n  }\n  *param_5 = '\x01';\n  return (undefined **)((int)param_4 + 1);\n}" type_identifier (pointer_declarator "** FUN_000e6c60(int param_1,int param_2,int param_3,undefined **param_4,char *param_5)" * (pointer_declarator "* FUN_000e6c60(int param_1,int param_2,int param_3,undefined **param_4,char *param_5)" * (function_declarator "FUN_000e6c60(int param_1,int param_2,int param_3,undefined **param_4,char *param_5)" identifier (parameter_list "(int param_1,int param_2,int param_3,undefined **param_4,char *param_5)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "undefined **param_4" type_identifier (pointer_declarator "**param_4" * (pointer_declarator "*param_4" * identifier))) , (parameter_declaration "char *param_5" primitive_type (pointer_declarator "*param_5" * identifier)) ))))) (compound_statement "{\n  undefined **ppuVar1;\n  undefined4 *puVar2;\n  char cVar3;\n  undefined **ppuVar4;\n  byte *pbVar5;\n  int iVar6;\n  char *pcVar7;\n  undefined4 *puVar8;\n  char *__s;\n  int iVar9;\n  char *extraout_EDX;\n  byte *pbVar10;\n  bool bVar11;\n  bool bVar12;\n  byte bVar13;\n  byte *local_34;\n  undefined **local_30;\n  undefined **local_28;\n  byte *local_24;\n  undefined4 local_20 [4];\n  \n  bVar13 = 0;\n  puVar2 = (undefined4 *)(param_3 + (int)param_4 * 4);\n  pcVar7 = (char *)*puVar2;\n  if ((*pcVar7 != '-') || (*param_5 != '\0')) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00069d00("../../gold/options.cc",0x5f0,"process_one_option",pcVar7);\n  }\n  if ((pcVar7[1] != '-') || (pcVar7[2] != '\0')) {\n    local_28 = param_4;\n    local_24 = (byte *)0x0;\n    iVar6 = FUN_000df460(&local_24,&local_28);\n    ppuVar4 = local_28;\n    if (iVar6 != 0) {\n      (**(code **)**(undefined4 **)(iVar6 + 0x30))\n                (*(undefined4 **)(iVar6 + 0x30),*puVar2,local_24,param_1,param_1 + 4);\n      return local_28;\n    }\n    if ((param_4 == local_28) && (pcVar7 = *(char **)(param_3 + (int)local_28 * 4), *pcVar7 == '-'))\n    {\n      iVar6 = 1;\n      do {\n        if ((DAT_00394f90 == '\0') && (iVar9 = FUN_001e5390(&DAT_00394f90), iVar9 != 0)) {\n          DAT_00394fa0 = &DAT_00394fa8;\n                    /* try { // try from 000e6f0f to 000e6f13 has its CatchHandler @ 000e7065 */\n          FUN_00050e40(&DAT_00394fa0,"","",0,&DAT_00394fa8);\n          DAT_00394fc0 = "";\n          DAT_00394fb8 = 4;\n          DAT_00394fbc = 0x7a;\n          DAT_00394fc4 = 0;\n          DAT_00394fc8 = "Z-OPTION";\n          DAT_00394fcc = 0;\n          DAT_00394fd0 = 0;\n          DAT_00394fd4 = 0;\n          __s = strchr(DAT_00394fa0,0x5f);\n          if (__s != (char *)0x0) {\n            do {\n              *__s = '-';\n              __s = strchr(__s,0x5f);\n            } while (__s != (char *)0x0);\n            if ((DAT_00394fc4 != 0) && (DAT_003951f0 != '\0')) {\n                    /* try { // try from 000e6fa2 to 000e6fa6 has its CatchHandler @ 000e705e */\n              FUN_000df670();\n            }\n          }\n          FUN_001e5500(&DAT_00394f90);\n          __cxa_atexit(FUN_000e8e10,&DAT_00394fa0,&PTR_LOOP_0038f2e4);\n        }\n        cVar3 = pcVar7[iVar6];\n        if (cVar3 == 'z') {\n          pbVar10 = (byte *)(pcVar7 + iVar6 + 1);\n          puVar8 = &DAT_00394fa0;\n          local_34 = (byte *)DAT_00394fc8;\n          if ((byte *)DAT_00394fc8 == (byte *)0x0) goto LAB_000e6e4d;\nLAB_000e6d8c:\n          ppuVar1 = (undefined **)((int)local_28 + 1);\n          local_34 = pbVar10;\n          pbVar5 = pbVar10;\n          if (*pbVar10 != 0) goto LAB_000e6da4;\n          if (*(char *)(puVar8 + 0xb) != '\0') {\n            local_34 = (byte *)puVar8[8];\n            pbVar5 = (byte *)puVar8[8];\n            goto LAB_000e6da4;\n          }\n          if ((int)ppuVar1 < param_2) {\n            local_34 = *(byte **)(param_3 + (int)ppuVar1 * 4);\n            ppuVar1 = (undefined **)((int)local_28 + 2);\n            pbVar5 = local_34;\n            goto LAB_000e6da4;\n          }\nLAB_000e704d:\n          local_28 = ppuVar1;\n          pcVar7 = "missing argument";\n          goto LAB_000e6e04;\n        }\n        if ((0x7e < (int)cVar3 - 1U) ||\n           (puVar8 = *(undefined4 **)(&DAT_00394fe0 + cVar3 * 4), puVar8 == (undefined4 *)0x0))\n        break;\n        local_34 = (byte *)puVar8[10];\n        pbVar10 = (byte *)(pcVar7 + iVar6 + 1);\n        if (local_34 != (byte *)0x0) goto LAB_000e6d8c;\nLAB_000e6e4d:\n        local_24 = (byte *)0x0;\n        ppuVar1 = local_28;\n        pbVar5 = local_24;\n        if (*pbVar10 == 0) {\n          local_28 = (undefined **)((int)local_28 + 1);\n          bVar12 = (char **)puVar8 == &DAT_00394fa0;\n          if (bVar12) {\nLAB_000e6e78:\n            bVar11 = puVar8 < &DAT_00394fa0;\n            local_20[0] = 0;\n            iVar9 = 6;\n            pbVar10 = (byte *)0x28e8f9;\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar11 = *local_34 < *pbVar10;\n              bVar12 = *local_34 == *pbVar10;\n              local_34 = local_34 + (uint)bVar13 * -2 + 1;\n              pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1;\n            } while (bVar12);\n            if ((!bVar11 && !bVar12) == bVar11) {\n              local_24 = (byte *)0x28e8f9;\n            }\n            puVar8 = (undefined4 *)FUN_000df460(&local_24,local_20);\n            if (puVar8 == (undefined4 *)0x0) {\n              gettext("unknown -z option");\n              FUN_000dcd10();\n              ppuVar1 = local_28;\n              goto LAB_000e704d;\n            }\n            local_34 = local_24;\n          }\n        }\n        else {\nLAB_000e6da4:\n          local_24 = pbVar5;\n          local_28 = ppuVar1;\n          bVar12 = (char **)puVar8 == &DAT_00394fa0;\n          if (bVar12) goto LAB_000e6e78;\n        }\n        iVar6 = iVar6 + 1;\n        (*(code *)**(undefined4 **)puVar8[0xc])\n                  ((undefined4 *)puVar8[0xc],*puVar2,local_34,param_1,param_1 + 4);\n        if (local_28 != ppuVar4) {\n          return local_28;\n        }\n        pcVar7 = *(char **)(param_3 + (int)ppuVar4 * 4);\n      } while (*pcVar7 == '-');\n    }\n    pcVar7 = "unknown option";\nLAB_000e6e04:\n    local_30 = &__DT_PLTGOT;\n    gettext(pcVar7);\n    FUN_000dcd10();\n    param_5 = extraout_EDX;\n    param_4 = local_30;\n  }\n  *param_5 = '\x01';\n  return (undefined **)((int)param_4 + 1);\n}" { (declaration "undefined **ppuVar1;" type_identifier (pointer_declarator "**ppuVar1" * (pointer_declarator "*ppuVar1" * identifier)) ;) (declaration "undefined4 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "char cVar3;" primitive_type identifier ;) (declaration "undefined **ppuVar4;" type_identifier (pointer_declarator "**ppuVar4" * (pointer_declarator "*ppuVar4" * identifier)) ;) (declaration "byte *pbVar5;" type_identifier (pointer_declarator "*pbVar5" * identifier) ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "char *pcVar7;" primitive_type (pointer_declarator "*pcVar7" * identifier) ;) (declaration "undefined4 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "char *__s;" primitive_type (pointer_declarator "*__s" * identifier) ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "char *extraout_EDX;" primitive_type (pointer_declarator "*extraout_EDX" * identifier) ;) (declaration "byte *pbVar10;" type_identifier (pointer_declarator "*pbVar10" * identifier) ;) (declaration "bool bVar11;" primitive_type identifier ;) (declaration "bool bVar12;" primitive_type identifier ;) (declaration "byte bVar13;" type_identifier identifier ;) (declaration "byte *local_34;" type_identifier (pointer_declarator "*local_34" * identifier) ;) (declaration "undefined **local_30;" type_identifier (pointer_declarator "**local_30" * (pointer_declarator "*local_30" * identifier)) ;) (declaration "undefined **local_28;" type_identifier (pointer_declarator "**local_28" * (pointer_declarator "*local_28" * identifier)) ;) (declaration "byte *local_24;" type_identifier (pointer_declarator "*local_24" * identifier) ;) (declaration "undefined4 local_20 [4];" type_identifier (array_declarator "local_20 [4]" identifier [ number_literal ]) ;) (expression_statement "bVar13 = 0;" (assignment_expression "bVar13 = 0" identifier = number_literal) ;) (expression_statement "puVar2 = (undefined4 *)(param_3 + (int)param_4 * 4);" (assignment_expression "puVar2 = (undefined4 *)(param_3 + (int)param_4 * 4)" identifier = (cast_expression "(undefined4 *)(param_3 + (int)param_4 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + (int)param_4 * 4)" ( (binary_expression "param_3 + (int)param_4 * 4" identifier + (binary_expression "(int)param_4 * 4" (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) )))) ;) (expression_statement "pcVar7 = (char *)*puVar2;" (assignment_expression "pcVar7 = (char *)*puVar2" identifier = (cast_expression "(char *)*puVar2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar2" * identifier))) ;) (if_statement "if ((*pcVar7 != '-') || (*param_5 != '\0')) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00069d00("../../gold/options.cc",0x5f0,"process_one_option",pcVar7);\n  }" if (parenthesized_expression "((*pcVar7 != '-') || (*param_5 != '\0'))" ( (binary_expression "(*pcVar7 != '-') || (*param_5 != '\0')" (parenthesized_expression "(*pcVar7 != '-')" ( (binary_expression "*pcVar7 != '-'" (pointer_expression "*pcVar7" * identifier) != (char_literal "'-'" ' character ')) )) || (parenthesized_expression "(*param_5 != '\0')" ( (binary_expression "*param_5 != '\0'" (pointer_expression "*param_5" * identifier) != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_00069d00("../../gold/options.cc",0x5f0,"process_one_option",pcVar7);\n  }" { comment (expression_statement "FUN_00069d00("../../gold/options.cc",0x5f0,"process_one_option",pcVar7);" (call_expression "FUN_00069d00("../../gold/options.cc",0x5f0,"process_one_option",pcVar7)" identifier (argument_list "("../../gold/options.cc",0x5f0,"process_one_option",pcVar7)" ( (string_literal ""../../gold/options.cc"" " string_content ") , number_literal , (string_literal ""process_one_option"" " string_content ") , identifier ))) ;) })) (if_statement "if ((pcVar7[1] != '-') || (pcVar7[2] != '\0')) {\n    local_28 = param_4;\n    local_24 = (byte *)0x0;\n    iVar6 = FUN_000df460(&local_24,&local_28);\n    ppuVar4 = local_28;\n    if (iVar6 != 0) {\n      (**(code **)**(undefined4 **)(iVar6 + 0x30))\n                (*(undefined4 **)(iVar6 + 0x30),*puVar2,local_24,param_1,param_1 + 4);\n      return local_28;\n    }\n    if ((param_4 == local_28) && (pcVar7 = *(char **)(param_3 + (int)local_28 * 4), *pcVar7 == '-'))\n    {\n      iVar6 = 1;\n      do {\n        if ((DAT_00394f90 == '\0') && (iVar9 = FUN_001e5390(&DAT_00394f90), iVar9 != 0)) {\n          DAT_00394fa0 = &DAT_00394fa8;\n                    /* try { // try from 000e6f0f to 000e6f13 has its CatchHandler @ 000e7065 */\n          FUN_00050e40(&DAT_00394fa0,"","",0,&DAT_00394fa8);\n          DAT_00394fc0 = "";\n          DAT_00394fb8 = 4;\n          DAT_00394fbc = 0x7a;\n          DAT_00394fc4 = 0;\n          DAT_00394fc8 = "Z-OPTION";\n          DAT_00394fcc = 0;\n          DAT_00394fd0 = 0;\n          DAT_00394fd4 = 0;\n          __s = strchr(DAT_00394fa0,0x5f);\n          if (__s != (char *)0x0) {\n            do {\n              *__s = '-';\n              __s = strchr(__s,0x5f);\n            } while (__s != (char *)0x0);\n            if ((DAT_00394fc4 != 0) && (DAT_003951f0 != '\0')) {\n                    /* try { // try from 000e6fa2 to 000e6fa6 has its CatchHandler @ 000e705e */\n              FUN_000df670();\n            }\n          }\n          FUN_001e5500(&DAT_00394f90);\n          __cxa_atexit(FUN_000e8e10,&DAT_00394fa0,&PTR_LOOP_0038f2e4);\n        }\n        cVar3 = pcVar7[iVar6];\n        if (cVar3 == 'z') {\n          pbVar10 = (byte *)(pcVar7 + iVar6 + 1);\n          puVar8 = &DAT_00394fa0;\n          local_34 = (byte *)DAT_00394fc8;\n          if ((byte *)DAT_00394fc8 == (byte *)0x0) goto LAB_000e6e4d;\nLAB_000e6d8c:\n          ppuVar1 = (undefined **)((int)local_28 + 1);\n          local_34 = pbVar10;\n          pbVar5 = pbVar10;\n          if (*pbVar10 != 0) goto LAB_000e6da4;\n          if (*(char *)(puVar8 + 0xb) != '\0') {\n            local_34 = (byte *)puVar8[8];\n            pbVar5 = (byte *)puVar8[8];\n            goto LAB_000e6da4;\n          }\n          if ((int)ppuVar1 < param_2) {\n            local_34 = *(byte **)(param_3 + (int)ppuVar1 * 4);\n            ppuVar1 = (undefined **)((int)local_28 + 2);\n            pbVar5 = local_34;\n            goto LAB_000e6da4;\n          }\nLAB_000e704d:\n          local_28 = ppuVar1;\n          pcVar7 = "missing argument";\n          goto LAB_000e6e04;\n        }\n        if ((0x7e < (int)cVar3 - 1U) ||\n           (puVar8 = *(undefined4 **)(&DAT_00394fe0 + cVar3 * 4), puVar8 == (undefined4 *)0x0))\n        break;\n        local_34 = (byte *)puVar8[10];\n        pbVar10 = (byte *)(pcVar7 + iVar6 + 1);\n        if (local_34 != (byte *)0x0) goto LAB_000e6d8c;\nLAB_000e6e4d:\n        local_24 = (byte *)0x0;\n        ppuVar1 = local_28;\n        pbVar5 = local_24;\n        if (*pbVar10 == 0) {\n          local_28 = (undefined **)((int)local_28 + 1);\n          bVar12 = (char **)puVar8 == &DAT_00394fa0;\n          if (bVar12) {\nLAB_000e6e78:\n            bVar11 = puVar8 < &DAT_00394fa0;\n            local_20[0] = 0;\n            iVar9 = 6;\n            pbVar10 = (byte *)0x28e8f9;\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar11 = *local_34 < *pbVar10;\n              bVar12 = *local_34 == *pbVar10;\n              local_34 = local_34 + (uint)bVar13 * -2 + 1;\n              pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1;\n            } while (bVar12);\n            if ((!bVar11 && !bVar12) == bVar11) {\n              local_24 = (byte *)0x28e8f9;\n            }\n            puVar8 = (undefined4 *)FUN_000df460(&local_24,local_20);\n            if (puVar8 == (undefined4 *)0x0) {\n              gettext("unknown -z option");\n              FUN_000dcd10();\n              ppuVar1 = local_28;\n              goto LAB_000e704d;\n            }\n            local_34 = local_24;\n          }\n        }\n        else {\nLAB_000e6da4:\n          local_24 = pbVar5;\n          local_28 = ppuVar1;\n          bVar12 = (char **)puVar8 == &DAT_00394fa0;\n          if (bVar12) goto LAB_000e6e78;\n        }\n        iVar6 = iVar6 + 1;\n        (*(code *)**(undefined4 **)puVar8[0xc])\n                  ((undefined4 *)puVar8[0xc],*puVar2,local_34,param_1,param_1 + 4);\n        if (local_28 != ppuVar4) {\n          return local_28;\n        }\n        pcVar7 = *(char **)(param_3 + (int)ppuVar4 * 4);\n      } while (*pcVar7 == '-');\n    }\n    pcVar7 = "unknown option";\nLAB_000e6e04:\n    local_30 = &__DT_PLTGOT;\n    gettext(pcVar7);\n    FUN_000dcd10();\n    param_5 = extraout_EDX;\n    param_4 = local_30;\n  }" if (parenthesized_expression "((pcVar7[1] != '-') || (pcVar7[2] != '\0'))" ( (binary_expression "(pcVar7[1] != '-') || (pcVar7[2] != '\0')" (parenthesized_expression "(pcVar7[1] != '-')" ( (binary_expression "pcVar7[1] != '-'" (subscript_expression "pcVar7[1]" identifier [ number_literal ]) != (char_literal "'-'" ' character ')) )) || (parenthesized_expression "(pcVar7[2] != '\0')" ( (binary_expression "pcVar7[2] != '\0'" (subscript_expression "pcVar7[2]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n    local_28 = param_4;\n    local_24 = (byte *)0x0;\n    iVar6 = FUN_000df460(&local_24,&local_28);\n    ppuVar4 = local_28;\n    if (iVar6 != 0) {\n      (**(code **)**(undefined4 **)(iVar6 + 0x30))\n                (*(undefined4 **)(iVar6 + 0x30),*puVar2,local_24,param_1,param_1 + 4);\n      return local_28;\n    }\n    if ((param_4 == local_28) && (pcVar7 = *(char **)(param_3 + (int)local_28 * 4), *pcVar7 == '-'))\n    {\n      iVar6 = 1;\n      do {\n        if ((DAT_00394f90 == '\0') && (iVar9 = FUN_001e5390(&DAT_00394f90), iVar9 != 0)) {\n          DAT_00394fa0 = &DAT_00394fa8;\n                    /* try { // try from 000e6f0f to 000e6f13 has its CatchHandler @ 000e7065 */\n          FUN_00050e40(&DAT_00394fa0,"","",0,&DAT_00394fa8);\n          DAT_00394fc0 = "";\n          DAT_00394fb8 = 4;\n          DAT_00394fbc = 0x7a;\n          DAT_00394fc4 = 0;\n          DAT_00394fc8 = "Z-OPTION";\n          DAT_00394fcc = 0;\n          DAT_00394fd0 = 0;\n          DAT_00394fd4 = 0;\n          __s = strchr(DAT_00394fa0,0x5f);\n          if (__s != (char *)0x0) {\n            do {\n              *__s = '-';\n              __s = strchr(__s,0x5f);\n            } while (__s != (char *)0x0);\n            if ((DAT_00394fc4 != 0) && (DAT_003951f0 != '\0')) {\n                    /* try { // try from 000e6fa2 to 000e6fa6 has its CatchHandler @ 000e705e */\n              FUN_000df670();\n            }\n          }\n          FUN_001e5500(&DAT_00394f90);\n          __cxa_atexit(FUN_000e8e10,&DAT_00394fa0,&PTR_LOOP_0038f2e4);\n        }\n        cVar3 = pcVar7[iVar6];\n        if (cVar3 == 'z') {\n          pbVar10 = (byte *)(pcVar7 + iVar6 + 1);\n          puVar8 = &DAT_00394fa0;\n          local_34 = (byte *)DAT_00394fc8;\n          if ((byte *)DAT_00394fc8 == (byte *)0x0) goto LAB_000e6e4d;\nLAB_000e6d8c:\n          ppuVar1 = (undefined **)((int)local_28 + 1);\n          local_34 = pbVar10;\n          pbVar5 = pbVar10;\n          if (*pbVar10 != 0) goto LAB_000e6da4;\n          if (*(char *)(puVar8 + 0xb) != '\0') {\n            local_34 = (byte *)puVar8[8];\n            pbVar5 = (byte *)puVar8[8];\n            goto LAB_000e6da4;\n          }\n          if ((int)ppuVar1 < param_2) {\n            local_34 = *(byte **)(param_3 + (int)ppuVar1 * 4);\n            ppuVar1 = (undefined **)((int)local_28 + 2);\n            pbVar5 = local_34;\n            goto LAB_000e6da4;\n          }\nLAB_000e704d:\n          local_28 = ppuVar1;\n          pcVar7 = "missing argument";\n          goto LAB_000e6e04;\n        }\n        if ((0x7e < (int)cVar3 - 1U) ||\n           (puVar8 = *(undefined4 **)(&DAT_00394fe0 + cVar3 * 4), puVar8 == (undefined4 *)0x0))\n        break;\n        local_34 = (byte *)puVar8[10];\n        pbVar10 = (byte *)(pcVar7 + iVar6 + 1);\n        if (local_34 != (byte *)0x0) goto LAB_000e6d8c;\nLAB_000e6e4d:\n        local_24 = (byte *)0x0;\n        ppuVar1 = local_28;\n        pbVar5 = local_24;\n        if (*pbVar10 == 0) {\n          local_28 = (undefined **)((int)local_28 + 1);\n          bVar12 = (char **)puVar8 == &DAT_00394fa0;\n          if (bVar12) {\nLAB_000e6e78:\n            bVar11 = puVar8 < &DAT_00394fa0;\n            local_20[0] = 0;\n            iVar9 = 6;\n            pbVar10 = (byte *)0x28e8f9;\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar11 = *local_34 < *pbVar10;\n              bVar12 = *local_34 == *pbVar10;\n              local_34 = local_34 + (uint)bVar13 * -2 + 1;\n              pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1;\n            } while (bVar12);\n            if ((!bVar11 && !bVar12) == bVar11) {\n              local_24 = (byte *)0x28e8f9;\n            }\n            puVar8 = (undefined4 *)FUN_000df460(&local_24,local_20);\n            if (puVar8 == (undefined4 *)0x0) {\n              gettext("unknown -z option");\n              FUN_000dcd10();\n              ppuVar1 = local_28;\n              goto LAB_000e704d;\n            }\n            local_34 = local_24;\n          }\n        }\n        else {\nLAB_000e6da4:\n          local_24 = pbVar5;\n          local_28 = ppuVar1;\n          bVar12 = (char **)puVar8 == &DAT_00394fa0;\n          if (bVar12) goto LAB_000e6e78;\n        }\n        iVar6 = iVar6 + 1;\n        (*(code *)**(undefined4 **)puVar8[0xc])\n                  ((undefined4 *)puVar8[0xc],*puVar2,local_34,param_1,param_1 + 4);\n        if (local_28 != ppuVar4) {\n          return local_28;\n        }\n        pcVar7 = *(char **)(param_3 + (int)ppuVar4 * 4);\n      } while (*pcVar7 == '-');\n    }\n    pcVar7 = "unknown option";\nLAB_000e6e04:\n    local_30 = &__DT_PLTGOT;\n    gettext(pcVar7);\n    FUN_000dcd10();\n    param_5 = extraout_EDX;\n    param_4 = local_30;\n  }" { (expression_statement "local_28 = param_4;" (assignment_expression "local_28 = param_4" identifier = identifier) ;) (expression_statement "local_24 = (byte *)0x0;" (assignment_expression "local_24 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar6 = FUN_000df460(&local_24,&local_28);" (assignment_expression "iVar6 = FUN_000df460(&local_24,&local_28)" identifier = (call_expression "FUN_000df460(&local_24,&local_28)" identifier (argument_list "(&local_24,&local_28)" ( (pointer_expression "&local_24" & identifier) , (pointer_expression "&local_28" & identifier) )))) ;) (expression_statement "ppuVar4 = local_28;" (assignment_expression "ppuVar4 = local_28" identifier = identifier) ;) (if_statement "if (iVar6 != 0) {\n      (**(code **)**(undefined4 **)(iVar6 + 0x30))\n                (*(undefined4 **)(iVar6 + 0x30),*puVar2,local_24,param_1,param_1 + 4);\n      return local_28;\n    }" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (compound_statement "{\n      (**(code **)**(undefined4 **)(iVar6 + 0x30))\n                (*(undefined4 **)(iVar6 + 0x30),*puVar2,local_24,param_1,param_1 + 4);\n      return local_28;\n    }" { (expression_statement "(**(code **)**(undefined4 **)(iVar6 + 0x30))\n                (*(undefined4 **)(iVar6 + 0x30),*puVar2,local_24,param_1,param_1 + 4);" (call_expression "(**(code **)**(undefined4 **)(iVar6 + 0x30))\n                (*(undefined4 **)(iVar6 + 0x30),*puVar2,local_24,param_1,param_1 + 4)" (parenthesized_expression "(**(code **)**(undefined4 **)(iVar6 + 0x30))" ( (pointer_expression "**(code **)**(undefined4 **)(iVar6 + 0x30)" * (pointer_expression "*(code **)**(undefined4 **)(iVar6 + 0x30)" * (cast_expression "(code **)**(undefined4 **)(iVar6 + 0x30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "**(undefined4 **)(iVar6 + 0x30)" * (pointer_expression "*(undefined4 **)(iVar6 + 0x30)" * (cast_expression "(undefined4 **)(iVar6 + 0x30)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar6 + 0x30)" ( (binary_expression "iVar6 + 0x30" identifier + number_literal) )))))))) )) (argument_list "(*(undefined4 **)(iVar6 + 0x30),*puVar2,local_24,param_1,param_1 + 4)" ( (pointer_expression "*(undefined4 **)(iVar6 + 0x30)" * (cast_expression "(undefined4 **)(iVar6 + 0x30)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar6 + 0x30)" ( (binary_expression "iVar6 + 0x30" identifier + number_literal) )))) , (pointer_expression "*puVar2" * identifier) , identifier , identifier , (binary_expression "param_1 + 4" identifier + number_literal) ))) ;) (return_statement "return local_28;" return identifier ;) })) (if_statement "if ((param_4 == local_28) && (pcVar7 = *(char **)(param_3 + (int)local_28 * 4), *pcVar7 == '-'))\n    {\n      iVar6 = 1;\n      do {\n        if ((DAT_00394f90 == '\0') && (iVar9 = FUN_001e5390(&DAT_00394f90), iVar9 != 0)) {\n          DAT_00394fa0 = &DAT_00394fa8;\n                    /* try { // try from 000e6f0f to 000e6f13 has its CatchHandler @ 000e7065 */\n          FUN_00050e40(&DAT_00394fa0,"","",0,&DAT_00394fa8);\n          DAT_00394fc0 = "";\n          DAT_00394fb8 = 4;\n          DAT_00394fbc = 0x7a;\n          DAT_00394fc4 = 0;\n          DAT_00394fc8 = "Z-OPTION";\n          DAT_00394fcc = 0;\n          DAT_00394fd0 = 0;\n          DAT_00394fd4 = 0;\n          __s = strchr(DAT_00394fa0,0x5f);\n          if (__s != (char *)0x0) {\n            do {\n              *__s = '-';\n              __s = strchr(__s,0x5f);\n            } while (__s != (char *)0x0);\n            if ((DAT_00394fc4 != 0) && (DAT_003951f0 != '\0')) {\n                    /* try { // try from 000e6fa2 to 000e6fa6 has its CatchHandler @ 000e705e */\n              FUN_000df670();\n            }\n          }\n          FUN_001e5500(&DAT_00394f90);\n          __cxa_atexit(FUN_000e8e10,&DAT_00394fa0,&PTR_LOOP_0038f2e4);\n        }\n        cVar3 = pcVar7[iVar6];\n        if (cVar3 == 'z') {\n          pbVar10 = (byte *)(pcVar7 + iVar6 + 1);\n          puVar8 = &DAT_00394fa0;\n          local_34 = (byte *)DAT_00394fc8;\n          if ((byte *)DAT_00394fc8 == (byte *)0x0) goto LAB_000e6e4d;\nLAB_000e6d8c:\n          ppuVar1 = (undefined **)((int)local_28 + 1);\n          local_34 = pbVar10;\n          pbVar5 = pbVar10;\n          if (*pbVar10 != 0) goto LAB_000e6da4;\n          if (*(char *)(puVar8 + 0xb) != '\0') {\n            local_34 = (byte *)puVar8[8];\n            pbVar5 = (byte *)puVar8[8];\n            goto LAB_000e6da4;\n          }\n          if ((int)ppuVar1 < param_2) {\n            local_34 = *(byte **)(param_3 + (int)ppuVar1 * 4);\n            ppuVar1 = (undefined **)((int)local_28 + 2);\n            pbVar5 = local_34;\n            goto LAB_000e6da4;\n          }\nLAB_000e704d:\n          local_28 = ppuVar1;\n          pcVar7 = "missing argument";\n          goto LAB_000e6e04;\n        }\n        if ((0x7e < (int)cVar3 - 1U) ||\n           (puVar8 = *(undefined4 **)(&DAT_00394fe0 + cVar3 * 4), puVar8 == (undefined4 *)0x0))\n        break;\n        local_34 = (byte *)puVar8[10];\n        pbVar10 = (byte *)(pcVar7 + iVar6 + 1);\n        if (local_34 != (byte *)0x0) goto LAB_000e6d8c;\nLAB_000e6e4d:\n        local_24 = (byte *)0x0;\n        ppuVar1 = local_28;\n        pbVar5 = local_24;\n        if (*pbVar10 == 0) {\n          local_28 = (undefined **)((int)local_28 + 1);\n          bVar12 = (char **)puVar8 == &DAT_00394fa0;\n          if (bVar12) {\nLAB_000e6e78:\n            bVar11 = puVar8 < &DAT_00394fa0;\n            local_20[0] = 0;\n            iVar9 = 6;\n            pbVar10 = (byte *)0x28e8f9;\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar11 = *local_34 < *pbVar10;\n              bVar12 = *local_34 == *pbVar10;\n              local_34 = local_34 + (uint)bVar13 * -2 + 1;\n              pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1;\n            } while (bVar12);\n            if ((!bVar11 && !bVar12) == bVar11) {\n              local_24 = (byte *)0x28e8f9;\n            }\n            puVar8 = (undefined4 *)FUN_000df460(&local_24,local_20);\n            if (puVar8 == (undefined4 *)0x0) {\n              gettext("unknown -z option");\n              FUN_000dcd10();\n              ppuVar1 = local_28;\n              goto LAB_000e704d;\n            }\n            local_34 = local_24;\n          }\n        }\n        else {\nLAB_000e6da4:\n          local_24 = pbVar5;\n          local_28 = ppuVar1;\n          bVar12 = (char **)puVar8 == &DAT_00394fa0;\n          if (bVar12) goto LAB_000e6e78;\n        }\n        iVar6 = iVar6 + 1;\n        (*(code *)**(undefined4 **)puVar8[0xc])\n                  ((undefined4 *)puVar8[0xc],*puVar2,local_34,param_1,param_1 + 4);\n        if (local_28 != ppuVar4) {\n          return local_28;\n        }\n        pcVar7 = *(char **)(param_3 + (int)ppuVar4 * 4);\n      } while (*pcVar7 == '-');\n    }" if (parenthesized_expression "((param_4 == local_28) && (pcVar7 = *(char **)(param_3 + (int)local_28 * 4), *pcVar7 == '-'))" ( (binary_expression "(param_4 == local_28) && (pcVar7 = *(char **)(param_3 + (int)local_28 * 4), *pcVar7 == '-')" (parenthesized_expression "(param_4 == local_28)" ( (binary_expression "param_4 == local_28" identifier == identifier) )) && (parenthesized_expression "(pcVar7 = *(char **)(param_3 + (int)local_28 * 4), *pcVar7 == '-')" ( (comma_expression "pcVar7 = *(char **)(param_3 + (int)local_28 * 4), *pcVar7 == '-'" (assignment_expression "pcVar7 = *(char **)(param_3 + (int)local_28 * 4)" identifier = (pointer_expression "*(char **)(param_3 + (int)local_28 * 4)" * (cast_expression "(char **)(param_3 + (int)local_28 * 4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_3 + (int)local_28 * 4)" ( (binary_expression "param_3 + (int)local_28 * 4" identifier + (binary_expression "(int)local_28 * 4" (cast_expression "(int)local_28" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ))))) , (binary_expression "*pcVar7 == '-'" (pointer_expression "*pcVar7" * identifier) == (char_literal "'-'" ' character '))) ))) )) (compound_statement "{\n      iVar6 = 1;\n      do {\n        if ((DAT_00394f90 == '\0') && (iVar9 = FUN_001e5390(&DAT_00394f90), iVar9 != 0)) {\n          DAT_00394fa0 = &DAT_00394fa8;\n                    /* try { // try from 000e6f0f to 000e6f13 has its CatchHandler @ 000e7065 */\n          FUN_00050e40(&DAT_00394fa0,"","",0,&DAT_00394fa8);\n          DAT_00394fc0 = "";\n          DAT_00394fb8 = 4;\n          DAT_00394fbc = 0x7a;\n          DAT_00394fc4 = 0;\n          DAT_00394fc8 = "Z-OPTION";\n          DAT_00394fcc = 0;\n          DAT_00394fd0 = 0;\n          DAT_00394fd4 = 0;\n          __s = strchr(DAT_00394fa0,0x5f);\n          if (__s != (char *)0x0) {\n            do {\n              *__s = '-';\n              __s = strchr(__s,0x5f);\n            } while (__s != (char *)0x0);\n            if ((DAT_00394fc4 != 0) && (DAT_003951f0 != '\0')) {\n                    /* try { // try from 000e6fa2 to 000e6fa6 has its CatchHandler @ 000e705e */\n              FUN_000df670();\n            }\n          }\n          FUN_001e5500(&DAT_00394f90);\n          __cxa_atexit(FUN_000e8e10,&DAT_00394fa0,&PTR_LOOP_0038f2e4);\n        }\n        cVar3 = pcVar7[iVar6];\n        if (cVar3 == 'z') {\n          pbVar10 = (byte *)(pcVar7 + iVar6 + 1);\n          puVar8 = &DAT_00394fa0;\n          local_34 = (byte *)DAT_00394fc8;\n          if ((byte *)DAT_00394fc8 == (byte *)0x0) goto LAB_000e6e4d;\nLAB_000e6d8c:\n          ppuVar1 = (undefined **)((int)local_28 + 1);\n          local_34 = pbVar10;\n          pbVar5 = pbVar10;\n          if (*pbVar10 != 0) goto LAB_000e6da4;\n          if (*(char *)(puVar8 + 0xb) != '\0') {\n            local_34 = (byte *)puVar8[8];\n            pbVar5 = (byte *)puVar8[8];\n            goto LAB_000e6da4;\n          }\n          if ((int)ppuVar1 < param_2) {\n            local_34 = *(byte **)(param_3 + (int)ppuVar1 * 4);\n            ppuVar1 = (undefined **)((int)local_28 + 2);\n            pbVar5 = local_34;\n            goto LAB_000e6da4;\n          }\nLAB_000e704d:\n          local_28 = ppuVar1;\n          pcVar7 = "missing argument";\n          goto LAB_000e6e04;\n        }\n        if ((0x7e < (int)cVar3 - 1U) ||\n           (puVar8 = *(undefined4 **)(&DAT_00394fe0 + cVar3 * 4), puVar8 == (undefined4 *)0x0))\n        break;\n        local_34 = (byte *)puVar8[10];\n        pbVar10 = (byte *)(pcVar7 + iVar6 + 1);\n        if (local_34 != (byte *)0x0) goto LAB_000e6d8c;\nLAB_000e6e4d:\n        local_24 = (byte *)0x0;\n        ppuVar1 = local_28;\n        pbVar5 = local_24;\n        if (*pbVar10 == 0) {\n          local_28 = (undefined **)((int)local_28 + 1);\n          bVar12 = (char **)puVar8 == &DAT_00394fa0;\n          if (bVar12) {\nLAB_000e6e78:\n            bVar11 = puVar8 < &DAT_00394fa0;\n            local_20[0] = 0;\n            iVar9 = 6;\n            pbVar10 = (byte *)0x28e8f9;\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar11 = *local_34 < *pbVar10;\n              bVar12 = *local_34 == *pbVar10;\n              local_34 = local_34 + (uint)bVar13 * -2 + 1;\n              pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1;\n            } while (bVar12);\n            if ((!bVar11 && !bVar12) == bVar11) {\n              local_24 = (byte *)0x28e8f9;\n            }\n            puVar8 = (undefined4 *)FUN_000df460(&local_24,local_20);\n            if (puVar8 == (undefined4 *)0x0) {\n              gettext("unknown -z option");\n              FUN_000dcd10();\n              ppuVar1 = local_28;\n              goto LAB_000e704d;\n            }\n            local_34 = local_24;\n          }\n        }\n        else {\nLAB_000e6da4:\n          local_24 = pbVar5;\n          local_28 = ppuVar1;\n          bVar12 = (char **)puVar8 == &DAT_00394fa0;\n          if (bVar12) goto LAB_000e6e78;\n        }\n        iVar6 = iVar6 + 1;\n        (*(code *)**(undefined4 **)puVar8[0xc])\n                  ((undefined4 *)puVar8[0xc],*puVar2,local_34,param_1,param_1 + 4);\n        if (local_28 != ppuVar4) {\n          return local_28;\n        }\n        pcVar7 = *(char **)(param_3 + (int)ppuVar4 * 4);\n      } while (*pcVar7 == '-');\n    }" { (expression_statement "iVar6 = 1;" (assignment_expression "iVar6 = 1" identifier = number_literal) ;) (do_statement "do {\n        if ((DAT_00394f90 == '\0') && (iVar9 = FUN_001e5390(&DAT_00394f90), iVar9 != 0)) {\n          DAT_00394fa0 = &DAT_00394fa8;\n                    /* try { // try from 000e6f0f to 000e6f13 has its CatchHandler @ 000e7065 */\n          FUN_00050e40(&DAT_00394fa0,"","",0,&DAT_00394fa8);\n          DAT_00394fc0 = "";\n          DAT_00394fb8 = 4;\n          DAT_00394fbc = 0x7a;\n          DAT_00394fc4 = 0;\n          DAT_00394fc8 = "Z-OPTION";\n          DAT_00394fcc = 0;\n          DAT_00394fd0 = 0;\n          DAT_00394fd4 = 0;\n          __s = strchr(DAT_00394fa0,0x5f);\n          if (__s != (char *)0x0) {\n            do {\n              *__s = '-';\n              __s = strchr(__s,0x5f);\n            } while (__s != (char *)0x0);\n            if ((DAT_00394fc4 != 0) && (DAT_003951f0 != '\0')) {\n                    /* try { // try from 000e6fa2 to 000e6fa6 has its CatchHandler @ 000e705e */\n              FUN_000df670();\n            }\n          }\n          FUN_001e5500(&DAT_00394f90);\n          __cxa_atexit(FUN_000e8e10,&DAT_00394fa0,&PTR_LOOP_0038f2e4);\n        }\n        cVar3 = pcVar7[iVar6];\n        if (cVar3 == 'z') {\n          pbVar10 = (byte *)(pcVar7 + iVar6 + 1);\n          puVar8 = &DAT_00394fa0;\n          local_34 = (byte *)DAT_00394fc8;\n          if ((byte *)DAT_00394fc8 == (byte *)0x0) goto LAB_000e6e4d;\nLAB_000e6d8c:\n          ppuVar1 = (undefined **)((int)local_28 + 1);\n          local_34 = pbVar10;\n          pbVar5 = pbVar10;\n          if (*pbVar10 != 0) goto LAB_000e6da4;\n          if (*(char *)(puVar8 + 0xb) != '\0') {\n            local_34 = (byte *)puVar8[8];\n            pbVar5 = (byte *)puVar8[8];\n            goto LAB_000e6da4;\n          }\n          if ((int)ppuVar1 < param_2) {\n            local_34 = *(byte **)(param_3 + (int)ppuVar1 * 4);\n            ppuVar1 = (undefined **)((int)local_28 + 2);\n            pbVar5 = local_34;\n            goto LAB_000e6da4;\n          }\nLAB_000e704d:\n          local_28 = ppuVar1;\n          pcVar7 = "missing argument";\n          goto LAB_000e6e04;\n        }\n        if ((0x7e < (int)cVar3 - 1U) ||\n           (puVar8 = *(undefined4 **)(&DAT_00394fe0 + cVar3 * 4), puVar8 == (undefined4 *)0x0))\n        break;\n        local_34 = (byte *)puVar8[10];\n        pbVar10 = (byte *)(pcVar7 + iVar6 + 1);\n        if (local_34 != (byte *)0x0) goto LAB_000e6d8c;\nLAB_000e6e4d:\n        local_24 = (byte *)0x0;\n        ppuVar1 = local_28;\n        pbVar5 = local_24;\n        if (*pbVar10 == 0) {\n          local_28 = (undefined **)((int)local_28 + 1);\n          bVar12 = (char **)puVar8 == &DAT_00394fa0;\n          if (bVar12) {\nLAB_000e6e78:\n            bVar11 = puVar8 < &DAT_00394fa0;\n            local_20[0] = 0;\n            iVar9 = 6;\n            pbVar10 = (byte *)0x28e8f9;\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar11 = *local_34 < *pbVar10;\n              bVar12 = *local_34 == *pbVar10;\n              local_34 = local_34 + (uint)bVar13 * -2 + 1;\n              pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1;\n            } while (bVar12);\n            if ((!bVar11 && !bVar12) == bVar11) {\n              local_24 = (byte *)0x28e8f9;\n            }\n            puVar8 = (undefined4 *)FUN_000df460(&local_24,local_20);\n            if (puVar8 == (undefined4 *)0x0) {\n              gettext("unknown -z option");\n              FUN_000dcd10();\n              ppuVar1 = local_28;\n              goto LAB_000e704d;\n            }\n            local_34 = local_24;\n          }\n        }\n        else {\nLAB_000e6da4:\n          local_24 = pbVar5;\n          local_28 = ppuVar1;\n          bVar12 = (char **)puVar8 == &DAT_00394fa0;\n          if (bVar12) goto LAB_000e6e78;\n        }\n        iVar6 = iVar6 + 1;\n        (*(code *)**(undefined4 **)puVar8[0xc])\n                  ((undefined4 *)puVar8[0xc],*puVar2,local_34,param_1,param_1 + 4);\n        if (local_28 != ppuVar4) {\n          return local_28;\n        }\n        pcVar7 = *(char **)(param_3 + (int)ppuVar4 * 4);\n      } while (*pcVar7 == '-');" do (compound_statement "{\n        if ((DAT_00394f90 == '\0') && (iVar9 = FUN_001e5390(&DAT_00394f90), iVar9 != 0)) {\n          DAT_00394fa0 = &DAT_00394fa8;\n                    /* try { // try from 000e6f0f to 000e6f13 has its CatchHandler @ 000e7065 */\n          FUN_00050e40(&DAT_00394fa0,"","",0,&DAT_00394fa8);\n          DAT_00394fc0 = "";\n          DAT_00394fb8 = 4;\n          DAT_00394fbc = 0x7a;\n          DAT_00394fc4 = 0;\n          DAT_00394fc8 = "Z-OPTION";\n          DAT_00394fcc = 0;\n          DAT_00394fd0 = 0;\n          DAT_00394fd4 = 0;\n          __s = strchr(DAT_00394fa0,0x5f);\n          if (__s != (char *)0x0) {\n            do {\n              *__s = '-';\n              __s = strchr(__s,0x5f);\n            } while (__s != (char *)0x0);\n            if ((DAT_00394fc4 != 0) && (DAT_003951f0 != '\0')) {\n                    /* try { // try from 000e6fa2 to 000e6fa6 has its CatchHandler @ 000e705e */\n              FUN_000df670();\n            }\n          }\n          FUN_001e5500(&DAT_00394f90);\n          __cxa_atexit(FUN_000e8e10,&DAT_00394fa0,&PTR_LOOP_0038f2e4);\n        }\n        cVar3 = pcVar7[iVar6];\n        if (cVar3 == 'z') {\n          pbVar10 = (byte *)(pcVar7 + iVar6 + 1);\n          puVar8 = &DAT_00394fa0;\n          local_34 = (byte *)DAT_00394fc8;\n          if ((byte *)DAT_00394fc8 == (byte *)0x0) goto LAB_000e6e4d;\nLAB_000e6d8c:\n          ppuVar1 = (undefined **)((int)local_28 + 1);\n          local_34 = pbVar10;\n          pbVar5 = pbVar10;\n          if (*pbVar10 != 0) goto LAB_000e6da4;\n          if (*(char *)(puVar8 + 0xb) != '\0') {\n            local_34 = (byte *)puVar8[8];\n            pbVar5 = (byte *)puVar8[8];\n            goto LAB_000e6da4;\n          }\n          if ((int)ppuVar1 < param_2) {\n            local_34 = *(byte **)(param_3 + (int)ppuVar1 * 4);\n            ppuVar1 = (undefined **)((int)local_28 + 2);\n            pbVar5 = local_34;\n            goto LAB_000e6da4;\n          }\nLAB_000e704d:\n          local_28 = ppuVar1;\n          pcVar7 = "missing argument";\n          goto LAB_000e6e04;\n        }\n        if ((0x7e < (int)cVar3 - 1U) ||\n           (puVar8 = *(undefined4 **)(&DAT_00394fe0 + cVar3 * 4), puVar8 == (undefined4 *)0x0))\n        break;\n        local_34 = (byte *)puVar8[10];\n        pbVar10 = (byte *)(pcVar7 + iVar6 + 1);\n        if (local_34 != (byte *)0x0) goto LAB_000e6d8c;\nLAB_000e6e4d:\n        local_24 = (byte *)0x0;\n        ppuVar1 = local_28;\n        pbVar5 = local_24;\n        if (*pbVar10 == 0) {\n          local_28 = (undefined **)((int)local_28 + 1);\n          bVar12 = (char **)puVar8 == &DAT_00394fa0;\n          if (bVar12) {\nLAB_000e6e78:\n            bVar11 = puVar8 < &DAT_00394fa0;\n            local_20[0] = 0;\n            iVar9 = 6;\n            pbVar10 = (byte *)0x28e8f9;\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar11 = *local_34 < *pbVar10;\n              bVar12 = *local_34 == *pbVar10;\n              local_34 = local_34 + (uint)bVar13 * -2 + 1;\n              pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1;\n            } while (bVar12);\n            if ((!bVar11 && !bVar12) == bVar11) {\n              local_24 = (byte *)0x28e8f9;\n            }\n            puVar8 = (undefined4 *)FUN_000df460(&local_24,local_20);\n            if (puVar8 == (undefined4 *)0x0) {\n              gettext("unknown -z option");\n              FUN_000dcd10();\n              ppuVar1 = local_28;\n              goto LAB_000e704d;\n            }\n            local_34 = local_24;\n          }\n        }\n        else {\nLAB_000e6da4:\n          local_24 = pbVar5;\n          local_28 = ppuVar1;\n          bVar12 = (char **)puVar8 == &DAT_00394fa0;\n          if (bVar12) goto LAB_000e6e78;\n        }\n        iVar6 = iVar6 + 1;\n        (*(code *)**(undefined4 **)puVar8[0xc])\n                  ((undefined4 *)puVar8[0xc],*puVar2,local_34,param_1,param_1 + 4);\n        if (local_28 != ppuVar4) {\n          return local_28;\n        }\n        pcVar7 = *(char **)(param_3 + (int)ppuVar4 * 4);\n      }" { (if_statement "if ((DAT_00394f90 == '\0') && (iVar9 = FUN_001e5390(&DAT_00394f90), iVar9 != 0)) {\n          DAT_00394fa0 = &DAT_00394fa8;\n                    /* try { // try from 000e6f0f to 000e6f13 has its CatchHandler @ 000e7065 */\n          FUN_00050e40(&DAT_00394fa0,"","",0,&DAT_00394fa8);\n          DAT_00394fc0 = "";\n          DAT_00394fb8 = 4;\n          DAT_00394fbc = 0x7a;\n          DAT_00394fc4 = 0;\n          DAT_00394fc8 = "Z-OPTION";\n          DAT_00394fcc = 0;\n          DAT_00394fd0 = 0;\n          DAT_00394fd4 = 0;\n          __s = strchr(DAT_00394fa0,0x5f);\n          if (__s != (char *)0x0) {\n            do {\n              *__s = '-';\n              __s = strchr(__s,0x5f);\n            } while (__s != (char *)0x0);\n            if ((DAT_00394fc4 != 0) && (DAT_003951f0 != '\0')) {\n                    /* try { // try from 000e6fa2 to 000e6fa6 has its CatchHandler @ 000e705e */\n              FUN_000df670();\n            }\n          }\n          FUN_001e5500(&DAT_00394f90);\n          __cxa_atexit(FUN_000e8e10,&DAT_00394fa0,&PTR_LOOP_0038f2e4);\n        }" if (parenthesized_expression "((DAT_00394f90 == '\0') && (iVar9 = FUN_001e5390(&DAT_00394f90), iVar9 != 0))" ( (binary_expression "(DAT_00394f90 == '\0') && (iVar9 = FUN_001e5390(&DAT_00394f90), iVar9 != 0)" (parenthesized_expression "(DAT_00394f90 == '\0')" ( (binary_expression "DAT_00394f90 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(iVar9 = FUN_001e5390(&DAT_00394f90), iVar9 != 0)" ( (comma_expression "iVar9 = FUN_001e5390(&DAT_00394f90), iVar9 != 0" (assignment_expression "iVar9 = FUN_001e5390(&DAT_00394f90)" identifier = (call_expression "FUN_001e5390(&DAT_00394f90)" identifier (argument_list "(&DAT_00394f90)" ( (pointer_expression "&DAT_00394f90" & identifier) )))) , (binary_expression "iVar9 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n          DAT_00394fa0 = &DAT_00394fa8;\n                    /* try { // try from 000e6f0f to 000e6f13 has its CatchHandler @ 000e7065 */\n          FUN_00050e40(&DAT_00394fa0,"","",0,&DAT_00394fa8);\n          DAT_00394fc0 = "";\n          DAT_00394fb8 = 4;\n          DAT_00394fbc = 0x7a;\n          DAT_00394fc4 = 0;\n          DAT_00394fc8 = "Z-OPTION";\n          DAT_00394fcc = 0;\n          DAT_00394fd0 = 0;\n          DAT_00394fd4 = 0;\n          __s = strchr(DAT_00394fa0,0x5f);\n          if (__s != (char *)0x0) {\n            do {\n              *__s = '-';\n              __s = strchr(__s,0x5f);\n            } while (__s != (char *)0x0);\n            if ((DAT_00394fc4 != 0) && (DAT_003951f0 != '\0')) {\n                    /* try { // try from 000e6fa2 to 000e6fa6 has its CatchHandler @ 000e705e */\n              FUN_000df670();\n            }\n          }\n          FUN_001e5500(&DAT_00394f90);\n          __cxa_atexit(FUN_000e8e10,&DAT_00394fa0,&PTR_LOOP_0038f2e4);\n        }" { (expression_statement "DAT_00394fa0 = &DAT_00394fa8;" (assignment_expression "DAT_00394fa0 = &DAT_00394fa8" identifier = (pointer_expression "&DAT_00394fa8" & identifier)) ;) comment (expression_statement "FUN_00050e40(&DAT_00394fa0,"","",0,&DAT_00394fa8);" (call_expression "FUN_00050e40(&DAT_00394fa0,"","",0,&DAT_00394fa8)" identifier (argument_list "(&DAT_00394fa0,"","",0,&DAT_00394fa8)" ( (pointer_expression "&DAT_00394fa0" & identifier) , (string_literal """" " ") , (string_literal """" " ") , number_literal , (pointer_expression "&DAT_00394fa8" & identifier) ))) ;) (expression_statement "DAT_00394fc0 = "";" (assignment_expression "DAT_00394fc0 = """ identifier = (string_literal """" " ")) ;) (expression_statement "DAT_00394fb8 = 4;" (assignment_expression "DAT_00394fb8 = 4" identifier = number_literal) ;) (expression_statement "DAT_00394fbc = 0x7a;" (assignment_expression "DAT_00394fbc = 0x7a" identifier = number_literal) ;) (expression_statement "DAT_00394fc4 = 0;" (assignment_expression "DAT_00394fc4 = 0" identifier = number_literal) ;) (expression_statement "DAT_00394fc8 = "Z-OPTION";" (assignment_expression "DAT_00394fc8 = "Z-OPTION"" identifier = (string_literal ""Z-OPTION"" " string_content ")) ;) (expression_statement "DAT_00394fcc = 0;" (assignment_expression "DAT_00394fcc = 0" identifier = number_literal) ;) (expression_statement "DAT_00394fd0 = 0;" (assignment_expression "DAT_00394fd0 = 0" identifier = number_literal) ;) (expression_statement "DAT_00394fd4 = 0;" (assignment_expression "DAT_00394fd4 = 0" identifier = number_literal) ;) (expression_statement "__s = strchr(DAT_00394fa0,0x5f);" (assignment_expression "__s = strchr(DAT_00394fa0,0x5f)" identifier = (call_expression "strchr(DAT_00394fa0,0x5f)" identifier (argument_list "(DAT_00394fa0,0x5f)" ( identifier , number_literal )))) ;) (if_statement "if (__s != (char *)0x0) {\n            do {\n              *__s = '-';\n              __s = strchr(__s,0x5f);\n            } while (__s != (char *)0x0);\n            if ((DAT_00394fc4 != 0) && (DAT_003951f0 != '\0')) {\n                    /* try { // try from 000e6fa2 to 000e6fa6 has its CatchHandler @ 000e705e */\n              FUN_000df670();\n            }\n          }" if (parenthesized_expression "(__s != (char *)0x0)" ( (binary_expression "__s != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            do {\n              *__s = '-';\n              __s = strchr(__s,0x5f);\n            } while (__s != (char *)0x0);\n            if ((DAT_00394fc4 != 0) && (DAT_003951f0 != '\0')) {\n                    /* try { // try from 000e6fa2 to 000e6fa6 has its CatchHandler @ 000e705e */\n              FUN_000df670();\n            }\n          }" { (do_statement "do {\n              *__s = '-';\n              __s = strchr(__s,0x5f);\n            } while (__s != (char *)0x0);" do (compound_statement "{\n              *__s = '-';\n              __s = strchr(__s,0x5f);\n            }" { (expression_statement "*__s = '-';" (assignment_expression "*__s = '-'" (pointer_expression "*__s" * identifier) = (char_literal "'-'" ' character ')) ;) (expression_statement "__s = strchr(__s,0x5f);" (assignment_expression "__s = strchr(__s,0x5f)" identifier = (call_expression "strchr(__s,0x5f)" identifier (argument_list "(__s,0x5f)" ( identifier , number_literal )))) ;) }) while (parenthesized_expression "(__s != (char *)0x0)" ( (binary_expression "__s != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (if_statement "if ((DAT_00394fc4 != 0) && (DAT_003951f0 != '\0')) {\n                    /* try { // try from 000e6fa2 to 000e6fa6 has its CatchHandler @ 000e705e */\n              FUN_000df670();\n            }" if (parenthesized_expression "((DAT_00394fc4 != 0) && (DAT_003951f0 != '\0'))" ( (binary_expression "(DAT_00394fc4 != 0) && (DAT_003951f0 != '\0')" (parenthesized_expression "(DAT_00394fc4 != 0)" ( (binary_expression "DAT_00394fc4 != 0" identifier != number_literal) )) && (parenthesized_expression "(DAT_003951f0 != '\0')" ( (binary_expression "DAT_003951f0 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n                    /* try { // try from 000e6fa2 to 000e6fa6 has its CatchHandler @ 000e705e */\n              FUN_000df670();\n            }" { comment (expression_statement "FUN_000df670();" (call_expression "FUN_000df670()" identifier (argument_list "()" ( ))) ;) })) })) (expression_statement "FUN_001e5500(&DAT_00394f90);" (call_expression "FUN_001e5500(&DAT_00394f90)" identifier (argument_list "(&DAT_00394f90)" ( (pointer_expression "&DAT_00394f90" & identifier) ))) ;) (expression_statement "__cxa_atexit(FUN_000e8e10,&DAT_00394fa0,&PTR_LOOP_0038f2e4);" (call_expression "__cxa_atexit(FUN_000e8e10,&DAT_00394fa0,&PTR_LOOP_0038f2e4)" identifier (argument_list "(FUN_000e8e10,&DAT_00394fa0,&PTR_LOOP_0038f2e4)" ( identifier , (pointer_expression "&DAT_00394fa0" & identifier) , (pointer_expression "&PTR_LOOP_0038f2e4" & identifier) ))) ;) })) (expression_statement "cVar3 = pcVar7[iVar6];" (assignment_expression "cVar3 = pcVar7[iVar6]" identifier = (subscript_expression "pcVar7[iVar6]" identifier [ identifier ])) ;) (if_statement "if (cVar3 == 'z') {\n          pbVar10 = (byte *)(pcVar7 + iVar6 + 1);\n          puVar8 = &DAT_00394fa0;\n          local_34 = (byte *)DAT_00394fc8;\n          if ((byte *)DAT_00394fc8 == (byte *)0x0) goto LAB_000e6e4d;\nLAB_000e6d8c:\n          ppuVar1 = (undefined **)((int)local_28 + 1);\n          local_34 = pbVar10;\n          pbVar5 = pbVar10;\n          if (*pbVar10 != 0) goto LAB_000e6da4;\n          if (*(char *)(puVar8 + 0xb) != '\0') {\n            local_34 = (byte *)puVar8[8];\n            pbVar5 = (byte *)puVar8[8];\n            goto LAB_000e6da4;\n          }\n          if ((int)ppuVar1 < param_2) {\n            local_34 = *(byte **)(param_3 + (int)ppuVar1 * 4);\n            ppuVar1 = (undefined **)((int)local_28 + 2);\n            pbVar5 = local_34;\n            goto LAB_000e6da4;\n          }\nLAB_000e704d:\n          local_28 = ppuVar1;\n          pcVar7 = "missing argument";\n          goto LAB_000e6e04;\n        }" if (parenthesized_expression "(cVar3 == 'z')" ( (binary_expression "cVar3 == 'z'" identifier == (char_literal "'z'" ' character ')) )) (compound_statement "{\n          pbVar10 = (byte *)(pcVar7 + iVar6 + 1);\n          puVar8 = &DAT_00394fa0;\n          local_34 = (byte *)DAT_00394fc8;\n          if ((byte *)DAT_00394fc8 == (byte *)0x0) goto LAB_000e6e4d;\nLAB_000e6d8c:\n          ppuVar1 = (undefined **)((int)local_28 + 1);\n          local_34 = pbVar10;\n          pbVar5 = pbVar10;\n          if (*pbVar10 != 0) goto LAB_000e6da4;\n          if (*(char *)(puVar8 + 0xb) != '\0') {\n            local_34 = (byte *)puVar8[8];\n            pbVar5 = (byte *)puVar8[8];\n            goto LAB_000e6da4;\n          }\n          if ((int)ppuVar1 < param_2) {\n            local_34 = *(byte **)(param_3 + (int)ppuVar1 * 4);\n            ppuVar1 = (undefined **)((int)local_28 + 2);\n            pbVar5 = local_34;\n            goto LAB_000e6da4;\n          }\nLAB_000e704d:\n          local_28 = ppuVar1;\n          pcVar7 = "missing argument";\n          goto LAB_000e6e04;\n        }" { (expression_statement "pbVar10 = (byte *)(pcVar7 + iVar6 + 1);" (assignment_expression "pbVar10 = (byte *)(pcVar7 + iVar6 + 1)" identifier = (cast_expression "(byte *)(pcVar7 + iVar6 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar7 + iVar6 + 1)" ( (binary_expression "pcVar7 + iVar6 + 1" (binary_expression "pcVar7 + iVar6" identifier + identifier) + number_literal) )))) ;) (expression_statement "puVar8 = &DAT_00394fa0;" (assignment_expression "puVar8 = &DAT_00394fa0" identifier = (pointer_expression "&DAT_00394fa0" & identifier)) ;) (expression_statement "local_34 = (byte *)DAT_00394fc8;" (assignment_expression "local_34 = (byte *)DAT_00394fc8" identifier = (cast_expression "(byte *)DAT_00394fc8" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if ((byte *)DAT_00394fc8 == (byte *)0x0) goto LAB_000e6e4d;" if (parenthesized_expression "((byte *)DAT_00394fc8 == (byte *)0x0)" ( (binary_expression "(byte *)DAT_00394fc8 == (byte *)0x0" (cast_expression "(byte *)DAT_00394fc8" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000e6e4d;" goto statement_identifier ;)) (labeled_statement "LAB_000e6d8c:\n          ppuVar1 = (undefined **)((int)local_28 + 1);" statement_identifier : (expression_statement "ppuVar1 = (undefined **)((int)local_28 + 1);" (assignment_expression "ppuVar1 = (undefined **)((int)local_28 + 1)" identifier = (cast_expression "(undefined **)((int)local_28 + 1)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)local_28 + 1)" ( (binary_expression "(int)local_28 + 1" (cast_expression "(int)local_28" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;)) (expression_statement "local_34 = pbVar10;" (assignment_expression "local_34 = pbVar10" identifier = identifier) ;) (expression_statement "pbVar5 = pbVar10;" (assignment_expression "pbVar5 = pbVar10" identifier = identifier) ;) (if_statement "if (*pbVar10 != 0) goto LAB_000e6da4;" if (parenthesized_expression "(*pbVar10 != 0)" ( (binary_expression "*pbVar10 != 0" (pointer_expression "*pbVar10" * identifier) != number_literal) )) (goto_statement "goto LAB_000e6da4;" goto statement_identifier ;)) (if_statement "if (*(char *)(puVar8 + 0xb) != '\0') {\n            local_34 = (byte *)puVar8[8];\n            pbVar5 = (byte *)puVar8[8];\n            goto LAB_000e6da4;\n          }" if (parenthesized_expression "(*(char *)(puVar8 + 0xb) != '\0')" ( (binary_expression "*(char *)(puVar8 + 0xb) != '\0'" (pointer_expression "*(char *)(puVar8 + 0xb)" * (cast_expression "(char *)(puVar8 + 0xb)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0xb)" ( (binary_expression "puVar8 + 0xb" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            local_34 = (byte *)puVar8[8];\n            pbVar5 = (byte *)puVar8[8];\n            goto LAB_000e6da4;\n          }" { (expression_statement "local_34 = (byte *)puVar8[8];" (assignment_expression "local_34 = (byte *)puVar8[8]" identifier = (cast_expression "(byte *)puVar8[8]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar8[8]" identifier [ number_literal ]))) ;) (expression_statement "pbVar5 = (byte *)puVar8[8];" (assignment_expression "pbVar5 = (byte *)puVar8[8]" identifier = (cast_expression "(byte *)puVar8[8]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar8[8]" identifier [ number_literal ]))) ;) (goto_statement "goto LAB_000e6da4;" goto statement_identifier ;) })) (if_statement "if ((int)ppuVar1 < param_2) {\n            local_34 = *(byte **)(param_3 + (int)ppuVar1 * 4);\n            ppuVar1 = (undefined **)((int)local_28 + 2);\n            pbVar5 = local_34;\n            goto LAB_000e6da4;\n          }" if (parenthesized_expression "((int)ppuVar1 < param_2)" ( (binary_expression "(int)ppuVar1 < param_2" (cast_expression "(int)ppuVar1" ( (type_descriptor "int" primitive_type) ) identifier) < identifier) )) (compound_statement "{\n            local_34 = *(byte **)(param_3 + (int)ppuVar1 * 4);\n            ppuVar1 = (undefined **)((int)local_28 + 2);\n            pbVar5 = local_34;\n            goto LAB_000e6da4;\n          }" { (expression_statement "local_34 = *(byte **)(param_3 + (int)ppuVar1 * 4);" (assignment_expression "local_34 = *(byte **)(param_3 + (int)ppuVar1 * 4)" identifier = (pointer_expression "*(byte **)(param_3 + (int)ppuVar1 * 4)" * (cast_expression "(byte **)(param_3 + (int)ppuVar1 * 4)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_3 + (int)ppuVar1 * 4)" ( (binary_expression "param_3 + (int)ppuVar1 * 4" identifier + (binary_expression "(int)ppuVar1 * 4" (cast_expression "(int)ppuVar1" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ))))) ;) (expression_statement "ppuVar1 = (undefined **)((int)local_28 + 2);" (assignment_expression "ppuVar1 = (undefined **)((int)local_28 + 2)" identifier = (cast_expression "(undefined **)((int)local_28 + 2)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)local_28 + 2)" ( (binary_expression "(int)local_28 + 2" (cast_expression "(int)local_28" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pbVar5 = local_34;" (assignment_expression "pbVar5 = local_34" identifier = identifier) ;) (goto_statement "goto LAB_000e6da4;" goto statement_identifier ;) })) (labeled_statement "LAB_000e704d:\n          local_28 = ppuVar1;" statement_identifier : (expression_statement "local_28 = ppuVar1;" (assignment_expression "local_28 = ppuVar1" identifier = identifier) ;)) (expression_statement "pcVar7 = "missing argument";" (assignment_expression "pcVar7 = "missing argument"" identifier = (string_literal ""missing argument"" " string_content ")) ;) (goto_statement "goto LAB_000e6e04;" goto statement_identifier ;) })) (if_statement "if ((0x7e < (int)cVar3 - 1U) ||\n           (puVar8 = *(undefined4 **)(&DAT_00394fe0 + cVar3 * 4), puVar8 == (undefined4 *)0x0))\n        break;" if (parenthesized_expression "((0x7e < (int)cVar3 - 1U) ||\n           (puVar8 = *(undefined4 **)(&DAT_00394fe0 + cVar3 * 4), puVar8 == (undefined4 *)0x0))" ( (binary_expression "(0x7e < (int)cVar3 - 1U) ||\n           (puVar8 = *(undefined4 **)(&DAT_00394fe0 + cVar3 * 4), puVar8 == (undefined4 *)0x0)" (parenthesized_expression "(0x7e < (int)cVar3 - 1U)" ( (binary_expression "0x7e < (int)cVar3 - 1U" number_literal < (binary_expression "(int)cVar3 - 1U" (cast_expression "(int)cVar3" ( (type_descriptor "int" primitive_type) ) identifier) - number_literal)) )) || (parenthesized_expression "(puVar8 = *(undefined4 **)(&DAT_00394fe0 + cVar3 * 4), puVar8 == (undefined4 *)0x0)" ( (comma_expression "puVar8 = *(undefined4 **)(&DAT_00394fe0 + cVar3 * 4), puVar8 == (undefined4 *)0x0" (assignment_expression "puVar8 = *(undefined4 **)(&DAT_00394fe0 + cVar3 * 4)" identifier = (pointer_expression "*(undefined4 **)(&DAT_00394fe0 + cVar3 * 4)" * (cast_expression "(undefined4 **)(&DAT_00394fe0 + cVar3 * 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(&DAT_00394fe0 + cVar3 * 4)" ( (binary_expression "&DAT_00394fe0 + cVar3 * 4" (pointer_expression "&DAT_00394fe0" & identifier) + (binary_expression "cVar3 * 4" identifier * number_literal)) ))))) , (binary_expression "puVar8 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (break_statement "break;" break ;)) (expression_statement "local_34 = (byte *)puVar8[10];" (assignment_expression "local_34 = (byte *)puVar8[10]" identifier = (cast_expression "(byte *)puVar8[10]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar8[10]" identifier [ number_literal ]))) ;) (expression_statement "pbVar10 = (byte *)(pcVar7 + iVar6 + 1);" (assignment_expression "pbVar10 = (byte *)(pcVar7 + iVar6 + 1)" identifier = (cast_expression "(byte *)(pcVar7 + iVar6 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar7 + iVar6 + 1)" ( (binary_expression "pcVar7 + iVar6 + 1" (binary_expression "pcVar7 + iVar6" identifier + identifier) + number_literal) )))) ;) (if_statement "if (local_34 != (byte *)0x0) goto LAB_000e6d8c;" if (parenthesized_expression "(local_34 != (byte *)0x0)" ( (binary_expression "local_34 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000e6d8c;" goto statement_identifier ;)) (labeled_statement "LAB_000e6e4d:\n        local_24 = (byte *)0x0;" statement_identifier : (expression_statement "local_24 = (byte *)0x0;" (assignment_expression "local_24 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "ppuVar1 = local_28;" (assignment_expression "ppuVar1 = local_28" identifier = identifier) ;) (expression_statement "pbVar5 = local_24;" (assignment_expression "pbVar5 = local_24" identifier = identifier) ;) (if_statement "if (*pbVar10 == 0) {\n          local_28 = (undefined **)((int)local_28 + 1);\n          bVar12 = (char **)puVar8 == &DAT_00394fa0;\n          if (bVar12) {\nLAB_000e6e78:\n            bVar11 = puVar8 < &DAT_00394fa0;\n            local_20[0] = 0;\n            iVar9 = 6;\n            pbVar10 = (byte *)0x28e8f9;\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar11 = *local_34 < *pbVar10;\n              bVar12 = *local_34 == *pbVar10;\n              local_34 = local_34 + (uint)bVar13 * -2 + 1;\n              pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1;\n            } while (bVar12);\n            if ((!bVar11 && !bVar12) == bVar11) {\n              local_24 = (byte *)0x28e8f9;\n            }\n            puVar8 = (undefined4 *)FUN_000df460(&local_24,local_20);\n            if (puVar8 == (undefined4 *)0x0) {\n              gettext("unknown -z option");\n              FUN_000dcd10();\n              ppuVar1 = local_28;\n              goto LAB_000e704d;\n            }\n            local_34 = local_24;\n          }\n        }\n        else {\nLAB_000e6da4:\n          local_24 = pbVar5;\n          local_28 = ppuVar1;\n          bVar12 = (char **)puVar8 == &DAT_00394fa0;\n          if (bVar12) goto LAB_000e6e78;\n        }" if (parenthesized_expression "(*pbVar10 == 0)" ( (binary_expression "*pbVar10 == 0" (pointer_expression "*pbVar10" * identifier) == number_literal) )) (compound_statement "{\n          local_28 = (undefined **)((int)local_28 + 1);\n          bVar12 = (char **)puVar8 == &DAT_00394fa0;\n          if (bVar12) {\nLAB_000e6e78:\n            bVar11 = puVar8 < &DAT_00394fa0;\n            local_20[0] = 0;\n            iVar9 = 6;\n            pbVar10 = (byte *)0x28e8f9;\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar11 = *local_34 < *pbVar10;\n              bVar12 = *local_34 == *pbVar10;\n              local_34 = local_34 + (uint)bVar13 * -2 + 1;\n              pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1;\n            } while (bVar12);\n            if ((!bVar11 && !bVar12) == bVar11) {\n              local_24 = (byte *)0x28e8f9;\n            }\n            puVar8 = (undefined4 *)FUN_000df460(&local_24,local_20);\n            if (puVar8 == (undefined4 *)0x0) {\n              gettext("unknown -z option");\n              FUN_000dcd10();\n              ppuVar1 = local_28;\n              goto LAB_000e704d;\n            }\n            local_34 = local_24;\n          }\n        }" { (expression_statement "local_28 = (undefined **)((int)local_28 + 1);" (assignment_expression "local_28 = (undefined **)((int)local_28 + 1)" identifier = (cast_expression "(undefined **)((int)local_28 + 1)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)local_28 + 1)" ( (binary_expression "(int)local_28 + 1" (cast_expression "(int)local_28" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "bVar12 = (char **)puVar8 == &DAT_00394fa0;" (assignment_expression "bVar12 = (char **)puVar8 == &DAT_00394fa0" identifier = (binary_expression "(char **)puVar8 == &DAT_00394fa0" (cast_expression "(char **)puVar8" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier) == (pointer_expression "&DAT_00394fa0" & identifier))) ;) (if_statement "if (bVar12) {\nLAB_000e6e78:\n            bVar11 = puVar8 < &DAT_00394fa0;\n            local_20[0] = 0;\n            iVar9 = 6;\n            pbVar10 = (byte *)0x28e8f9;\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar11 = *local_34 < *pbVar10;\n              bVar12 = *local_34 == *pbVar10;\n              local_34 = local_34 + (uint)bVar13 * -2 + 1;\n              pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1;\n            } while (bVar12);\n            if ((!bVar11 && !bVar12) == bVar11) {\n              local_24 = (byte *)0x28e8f9;\n            }\n            puVar8 = (undefined4 *)FUN_000df460(&local_24,local_20);\n            if (puVar8 == (undefined4 *)0x0) {\n              gettext("unknown -z option");\n              FUN_000dcd10();\n              ppuVar1 = local_28;\n              goto LAB_000e704d;\n            }\n            local_34 = local_24;\n          }" if (parenthesized_expression "(bVar12)" ( identifier )) (compound_statement "{\nLAB_000e6e78:\n            bVar11 = puVar8 < &DAT_00394fa0;\n            local_20[0] = 0;\n            iVar9 = 6;\n            pbVar10 = (byte *)0x28e8f9;\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar11 = *local_34 < *pbVar10;\n              bVar12 = *local_34 == *pbVar10;\n              local_34 = local_34 + (uint)bVar13 * -2 + 1;\n              pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1;\n            } while (bVar12);\n            if ((!bVar11 && !bVar12) == bVar11) {\n              local_24 = (byte *)0x28e8f9;\n            }\n            puVar8 = (undefined4 *)FUN_000df460(&local_24,local_20);\n            if (puVar8 == (undefined4 *)0x0) {\n              gettext("unknown -z option");\n              FUN_000dcd10();\n              ppuVar1 = local_28;\n              goto LAB_000e704d;\n            }\n            local_34 = local_24;\n          }" { (labeled_statement "LAB_000e6e78:\n            bVar11 = puVar8 < &DAT_00394fa0;" statement_identifier : (expression_statement "bVar11 = puVar8 < &DAT_00394fa0;" (assignment_expression "bVar11 = puVar8 < &DAT_00394fa0" identifier = (binary_expression "puVar8 < &DAT_00394fa0" identifier < (pointer_expression "&DAT_00394fa0" & identifier))) ;)) (expression_statement "local_20[0] = 0;" (assignment_expression "local_20[0] = 0" (subscript_expression "local_20[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar9 = 6;" (assignment_expression "iVar9 = 6" identifier = number_literal) ;) (expression_statement "pbVar10 = (byte *)0x28e8f9;" (assignment_expression "pbVar10 = (byte *)0x28e8f9" identifier = (cast_expression "(byte *)0x28e8f9" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar11 = *local_34 < *pbVar10;\n              bVar12 = *local_34 == *pbVar10;\n              local_34 = local_34 + (uint)bVar13 * -2 + 1;\n              pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1;\n            } while (bVar12);" do (compound_statement "{\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar11 = *local_34 < *pbVar10;\n              bVar12 = *local_34 == *pbVar10;\n              local_34 = local_34 + (uint)bVar13 * -2 + 1;\n              pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1;\n            }" { (if_statement "if (iVar9 == 0) break;" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar9 = iVar9 + -1;" (assignment_expression "iVar9 = iVar9 + -1" identifier = (binary_expression "iVar9 + -1" identifier + number_literal)) ;) (expression_statement "bVar11 = *local_34 < *pbVar10;" (assignment_expression "bVar11 = *local_34 < *pbVar10" identifier = (binary_expression "*local_34 < *pbVar10" (pointer_expression "*local_34" * identifier) < (pointer_expression "*pbVar10" * identifier))) ;) (expression_statement "bVar12 = *local_34 == *pbVar10;" (assignment_expression "bVar12 = *local_34 == *pbVar10" identifier = (binary_expression "*local_34 == *pbVar10" (pointer_expression "*local_34" * identifier) == (pointer_expression "*pbVar10" * identifier))) ;) (expression_statement "local_34 = local_34 + (uint)bVar13 * -2 + 1;" (assignment_expression "local_34 = local_34 + (uint)bVar13 * -2 + 1" identifier = (binary_expression "local_34 + (uint)bVar13 * -2 + 1" (binary_expression "local_34 + (uint)bVar13 * -2" identifier + (binary_expression "(uint)bVar13 * -2" (cast_expression "(uint)bVar13" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1;" (assignment_expression "pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1" identifier = (binary_expression "pbVar10 + (uint)bVar13 * -2 + 1" (binary_expression "pbVar10 + (uint)bVar13 * -2" identifier + (binary_expression "(uint)bVar13 * -2" (cast_expression "(uint)bVar13" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar12)" ( identifier )) ;) (if_statement "if ((!bVar11 && !bVar12) == bVar11) {\n              local_24 = (byte *)0x28e8f9;\n            }" if (parenthesized_expression "((!bVar11 && !bVar12) == bVar11)" ( (binary_expression "(!bVar11 && !bVar12) == bVar11" (parenthesized_expression "(!bVar11 && !bVar12)" ( (binary_expression "!bVar11 && !bVar12" (unary_expression "!bVar11" ! identifier) && (unary_expression "!bVar12" ! identifier)) )) == identifier) )) (compound_statement "{\n              local_24 = (byte *)0x28e8f9;\n            }" { (expression_statement "local_24 = (byte *)0x28e8f9;" (assignment_expression "local_24 = (byte *)0x28e8f9" identifier = (cast_expression "(byte *)0x28e8f9" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (expression_statement "puVar8 = (undefined4 *)FUN_000df460(&local_24,local_20);" (assignment_expression "puVar8 = (undefined4 *)FUN_000df460(&local_24,local_20)" identifier = (cast_expression "(undefined4 *)FUN_000df460(&local_24,local_20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000df460(&local_24,local_20)" identifier (argument_list "(&local_24,local_20)" ( (pointer_expression "&local_24" & identifier) , identifier ))))) ;) (if_statement "if (puVar8 == (undefined4 *)0x0) {\n              gettext("unknown -z option");\n              FUN_000dcd10();\n              ppuVar1 = local_28;\n              goto LAB_000e704d;\n            }" if (parenthesized_expression "(puVar8 == (undefined4 *)0x0)" ( (binary_expression "puVar8 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              gettext("unknown -z option");\n              FUN_000dcd10();\n              ppuVar1 = local_28;\n              goto LAB_000e704d;\n            }" { (expression_statement "gettext("unknown -z option");" (call_expression "gettext("unknown -z option")" identifier (argument_list "("unknown -z option")" ( (string_literal ""unknown -z option"" " string_content ") ))) ;) (expression_statement "FUN_000dcd10();" (call_expression "FUN_000dcd10()" identifier (argument_list "()" ( ))) ;) (expression_statement "ppuVar1 = local_28;" (assignment_expression "ppuVar1 = local_28" identifier = identifier) ;) (goto_statement "goto LAB_000e704d;" goto statement_identifier ;) })) (expression_statement "local_34 = local_24;" (assignment_expression "local_34 = local_24" identifier = identifier) ;) })) }) (else_clause "else {\nLAB_000e6da4:\n          local_24 = pbVar5;\n          local_28 = ppuVar1;\n          bVar12 = (char **)puVar8 == &DAT_00394fa0;\n          if (bVar12) goto LAB_000e6e78;\n        }" else (compound_statement "{\nLAB_000e6da4:\n          local_24 = pbVar5;\n          local_28 = ppuVar1;\n          bVar12 = (char **)puVar8 == &DAT_00394fa0;\n          if (bVar12) goto LAB_000e6e78;\n        }" { (labeled_statement "LAB_000e6da4:\n          local_24 = pbVar5;" statement_identifier : (expression_statement "local_24 = pbVar5;" (assignment_expression "local_24 = pbVar5" identifier = identifier) ;)) (expression_statement "local_28 = ppuVar1;" (assignment_expression "local_28 = ppuVar1" identifier = identifier) ;) (expression_statement "bVar12 = (char **)puVar8 == &DAT_00394fa0;" (assignment_expression "bVar12 = (char **)puVar8 == &DAT_00394fa0" identifier = (binary_expression "(char **)puVar8 == &DAT_00394fa0" (cast_expression "(char **)puVar8" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier) == (pointer_expression "&DAT_00394fa0" & identifier))) ;) (if_statement "if (bVar12) goto LAB_000e6e78;" if (parenthesized_expression "(bVar12)" ( identifier )) (goto_statement "goto LAB_000e6e78;" goto statement_identifier ;)) }))) (expression_statement "iVar6 = iVar6 + 1;" (assignment_expression "iVar6 = iVar6 + 1" identifier = (binary_expression "iVar6 + 1" identifier + number_literal)) ;) (expression_statement "(*(code *)**(undefined4 **)puVar8[0xc])\n                  ((undefined4 *)puVar8[0xc],*puVar2,local_34,param_1,param_1 + 4);" (call_expression "(*(code *)**(undefined4 **)puVar8[0xc])\n                  ((undefined4 *)puVar8[0xc],*puVar2,local_34,param_1,param_1 + 4)" (parenthesized_expression "(*(code *)**(undefined4 **)puVar8[0xc])" ( (pointer_expression "*(code *)**(undefined4 **)puVar8[0xc]" * (cast_expression "(code *)**(undefined4 **)puVar8[0xc]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)puVar8[0xc]" * (pointer_expression "*(undefined4 **)puVar8[0xc]" * (cast_expression "(undefined4 **)puVar8[0xc]" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "puVar8[0xc]" identifier [ number_literal ])))))) )) (argument_list "((undefined4 *)puVar8[0xc],*puVar2,local_34,param_1,param_1 + 4)" ( (cast_expression "(undefined4 *)puVar8[0xc]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar8[0xc]" identifier [ number_literal ])) , (pointer_expression "*puVar2" * identifier) , identifier , identifier , (binary_expression "param_1 + 4" identifier + number_literal) ))) ;) (if_statement "if (local_28 != ppuVar4) {\n          return local_28;\n        }" if (parenthesized_expression "(local_28 != ppuVar4)" ( (binary_expression "local_28 != ppuVar4" identifier != identifier) )) (compound_statement "{\n          return local_28;\n        }" { (return_statement "return local_28;" return identifier ;) })) (expression_statement "pcVar7 = *(char **)(param_3 + (int)ppuVar4 * 4);" (assignment_expression "pcVar7 = *(char **)(param_3 + (int)ppuVar4 * 4)" identifier = (pointer_expression "*(char **)(param_3 + (int)ppuVar4 * 4)" * (cast_expression "(char **)(param_3 + (int)ppuVar4 * 4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_3 + (int)ppuVar4 * 4)" ( (binary_expression "param_3 + (int)ppuVar4 * 4" identifier + (binary_expression "(int)ppuVar4 * 4" (cast_expression "(int)ppuVar4" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ))))) ;) }) while (parenthesized_expression "(*pcVar7 == '-')" ( (binary_expression "*pcVar7 == '-'" (pointer_expression "*pcVar7" * identifier) == (char_literal "'-'" ' character ')) )) ;) })) (expression_statement "pcVar7 = "unknown option";" (assignment_expression "pcVar7 = "unknown option"" identifier = (string_literal ""unknown option"" " string_content ")) ;) (labeled_statement "LAB_000e6e04:\n    local_30 = &__DT_PLTGOT;" statement_identifier : (expression_statement "local_30 = &__DT_PLTGOT;" (assignment_expression "local_30 = &__DT_PLTGOT" identifier = (pointer_expression "&__DT_PLTGOT" & identifier)) ;)) (expression_statement "gettext(pcVar7);" (call_expression "gettext(pcVar7)" identifier (argument_list "(pcVar7)" ( identifier ))) ;) (expression_statement "FUN_000dcd10();" (call_expression "FUN_000dcd10()" identifier (argument_list "()" ( ))) ;) (expression_statement "param_5 = extraout_EDX;" (assignment_expression "param_5 = extraout_EDX" identifier = identifier) ;) (expression_statement "param_4 = local_30;" (assignment_expression "param_4 = local_30" identifier = identifier) ;) })) (expression_statement "*param_5 = '\x01';" (assignment_expression "*param_5 = '\x01'" (pointer_expression "*param_5" * identifier) = (char_literal "'\x01'" ' escape_sequence ')) ;) (return_statement "return (undefined **)((int)param_4 + 1);" return (cast_expression "(undefined **)((int)param_4 + 1)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)param_4 + 1)" ( (binary_expression "(int)param_4 + 1" (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */\n/* WARNING: Enum "DT": Some values do not have unique names */\n/* DWARF original prototype: int process_one_option(Command_line * this, int argc, char * * argv,\n   int i, bool * no_more_options) */\n\nint __thiscall\ngold::Command_line::process_one_option\n          (Command_line *this,int argc,char **argv,int i,bool *no_more_options)\n\n{\n  char **ppcVar1;\n  byte bVar2;\n  int iVar3;\n  int iVar4;\n  One_option *pOVar5;\n  char *pcVar6;\n  char **ppcVar7;\n  int iVar8;\n  bool *extraout_EDX;\n  byte *pbVar9;\n  byte *opt;\n  int iVar10;\n  byte *pbVar11;\n  bool bVar12;\n  bool bVar13;\n  byte bVar14;\n  byte *local_34;\n  undefined **local_30;\n  int new_i;\n  char *arg;\n  int dummy_i;\n  \n  bVar14 = 0;\n  ppcVar1 = argv + i;\n  pcVar6 = *ppcVar1;\n  if ((*pcVar6 != '-') || (*no_more_options != false)) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/options.cc",0x5f0,"process_one_option");\n  }\n  if ((pcVar6[1] != '-') || (pcVar6[2] != '\0')) {\n    new_i = i;\n    arg = (char *)0x0;\n    pOVar5 = anon_unknown.dwarf_a6a7ee::parse_long_option(argc,argv,false,&arg,&new_i);\n    iVar3 = new_i;\n    if (pOVar5 != (One_option *)0x0) {\n      (**pOVar5->reader->_vptr_Struct_var)(pOVar5->reader,*ppcVar1,arg,this,&this->options_);\n      return new_i;\n    }\n    if ((i == new_i) && (opt = (byte *)argv[new_i], *opt == 0x2d)) {\n      iVar10 = 1;\n      do {\n        if (((anonymous_namespace)::parse_short_option(int,char_const**,int,char_const**,int*)::\n             dash_z == '\0') &&\n           (iVar8 = __cxa_guard_acquire(&(anonymous_namespace)::\n                                         parse_short_option(int,char_const**,int,char_const**,int*)\n                                         ::dash_z), iVar8 != 0)) {\n          pOVar5 = (One_option *)&DAT_00394fa8;\n          (anonymous_namespace)::parse_short_option(int,char_const**,int,char_const**,int*)::dash_z\n               = &DAT_00394fa8;\n                    /* try { // try from 000e6f0f to 000e6f13 has its CatchHandler @ 000e7065 */\n          std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n          _M_construct<char_const*>\n                    ((basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                     &(anonymous_namespace)::\n                      parse_short_option(int,char_const**,int,char_const**,int*)::dash_z,"","",0);\n          DAT_00394fc0 = "";\n          DAT_00394fb8 = 4;\n          DAT_00394fbc = 0x7a;\n          DAT_00394fc4 = 0;\n          DAT_00394fc8 = "Z-OPTION";\n          DAT_00394fcc = 0;\n          DAT_00394fd0 = 0;\n          DAT_00394fd4 = 0;\n          pcVar6 = strchr((anonymous_namespace)::\n                          parse_short_option(int,char_const**,int,char_const**,int*)::dash_z,0x5f);\n          if (pcVar6 != (char *)0x0) {\n            do {\n              *pcVar6 = '-';\n              pcVar6 = strchr(pcVar6,0x5f);\n            } while (pcVar6 != (char *)0x0);\n            if ((DAT_00394fc4 != 0) && (gold::options::ready_to_register != false)) {\n                    /* try { // try from 000e6fa2 to 000e6fa6 has its CatchHandler @ 000e705e */\n              gold::options::One_option::register_option(pOVar5);\n            }\n          }\n          __cxa_guard_release(&(anonymous_namespace)::\n                               parse_short_option(int,char_const**,int,char_const**,int*)::dash_z);\n          __cxa_atexit(gold::options::One_option::~One_option,\n                       &(anonymous_namespace)::\n                        parse_short_option(int,char_const**,int,char_const**,int*)::dash_z,\n                       &__dso_handle);\n        }\n        bVar2 = opt[iVar10];\n        if (bVar2 == 0x7a) {\n          pbVar9 = opt + iVar10 + 1;\n          ppcVar7 = &(anonymous_namespace)::\n                     parse_short_option(int,char_const**,int,char_const**,int*)::dash_z;\n          local_34 = (byte *)DAT_00394fc8;\n          if (DAT_00394fc8 == (char *)0x0) goto LAB_000e6e4d;\nLAB_000e6d8c:\n          iVar8 = new_i + 1;\n          local_34 = pbVar9;\n          iVar4 = iVar8;\n          pbVar11 = pbVar9;\n          if (*pbVar9 != 0) goto LAB_000e6da4;\n          if (((One_option *)ppcVar7)->optional_arg != false) {\n            local_34 = (byte *)((One_option *)ppcVar7)->default_value;\n            pbVar11 = (byte *)((One_option *)ppcVar7)->default_value;\n            goto LAB_000e6da4;\n          }\n          if (iVar8 < argc) {\n            local_34 = (byte *)argv[iVar8];\n            iVar4 = new_i + 2;\n            pbVar11 = (byte *)argv[iVar8];\n            goto LAB_000e6da4;\n          }\nLAB_000e704d:\n          new_i = iVar8;\n          pcVar6 = "missing argument";\n          goto LAB_000e6e04;\n        }\n        if ((0x7e < (int)(char)bVar2 - 1U) ||\n           (ppcVar7 = (char **)gold::options::short_options[(char)bVar2],\n           (One_option *)ppcVar7 == (One_option *)0x0)) break;\n        local_34 = (byte *)((One_option *)ppcVar7)->helparg;\n        pbVar9 = opt + iVar10 + 1;\n        if (local_34 != (byte *)0x0) goto LAB_000e6d8c;\nLAB_000e6e4d:\n        arg = (char *)0x0;\n        iVar4 = new_i;\n        pbVar11 = (byte *)arg;\n        if (*pbVar9 == 0) {\n          new_i = new_i + 1;\n          bVar13 = ppcVar7 ==\n                   &(anonymous_namespace)::\n                    parse_short_option(int,char_const**,int,char_const**,int*)::dash_z;\n          if (bVar13) {\nLAB_000e6e78:\n            bVar12 = ppcVar7 < &(anonymous_namespace)::\n                                parse_short_option(int,char_const**,int,char_const**,int*)::dash_z;\n            dummy_i = 0;\n            iVar8 = 6;\n            pbVar9 = local_34;\n            pbVar11 = (byte *)0x28e8f9;\n            do {\n              opt = pbVar9;\n              if (iVar8 == 0) break;\n              iVar8 = iVar8 + -1;\n              opt = pbVar9 + (uint)bVar14 * -2 + 1;\n              bVar12 = *pbVar9 < *pbVar11;\n              bVar13 = *pbVar9 == *pbVar11;\n              pbVar9 = opt;\n              pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n            } while (bVar13);\n            if ((!bVar12 && !bVar13) == bVar12) {\n              arg = (char *)(byte *)0x28e8f9;\n            }\n            ppcVar7 = (char **)anon_unknown.dwarf_a6a7ee::parse_long_option\n                                         (1,&arg,true,&arg,&dummy_i);\n            if ((One_option *)ppcVar7 == (One_option *)0x0) {\n              pcVar6 = (char *)gettext("unknown -z option");\n              anon_unknown.dwarf_a6a7ee::usage(pcVar6,(char *)local_34);\n              iVar8 = new_i;\n              goto LAB_000e704d;\n            }\n            local_34 = (byte *)arg;\n          }\n        }\n        else {\nLAB_000e6da4:\n          arg = (char *)pbVar11;\n          new_i = iVar4;\n          bVar13 = ppcVar7 ==\n                   &(anonymous_namespace)::\n                    parse_short_option(int,char_const**,int,char_const**,int*)::dash_z;\n          if (bVar13) goto LAB_000e6e78;\n        }\n        iVar10 = iVar10 + 1;\n        (**((One_option *)ppcVar7)->reader->_vptr_Struct_var)\n                  (((One_option *)ppcVar7)->reader,*ppcVar1,local_34,this,&this->options_);\n        if (new_i != iVar3) {\n          return new_i;\n        }\n        opt = (byte *)argv[iVar3];\n      } while (*opt == 0x2d);\n    }\n    opt = (byte *)*ppcVar1;\n    pcVar6 = "unknown option";\nLAB_000e6e04:\n    local_30 = &_GLOBAL_OFFSET_TABLE_;\n    pcVar6 = (char *)gettext(pcVar6);\n    anon_unknown.dwarf_a6a7ee::usage(pcVar6,(char *)opt);\n    no_more_options = extraout_EDX;\n    i = (int)local_30;\n  }\n  *no_more_options = true;\n  return i + 1;\n}\n\n" comment comment comment (function_definition "int __thiscall\ngold::Command_line::process_one_option\n          (Command_line *this,int argc,char **argv,int i,bool *no_more_options)\n\n{\n  char **ppcVar1;\n  byte bVar2;\n  int iVar3;\n  int iVar4;\n  One_option *pOVar5;\n  char *pcVar6;\n  char **ppcVar7;\n  int iVar8;\n  bool *extraout_EDX;\n  byte *pbVar9;\n  byte *opt;\n  int iVar10;\n  byte *pbVar11;\n  bool bVar12;\n  bool bVar13;\n  byte bVar14;\n  byte *local_34;\n  undefined **local_30;\n  int new_i;\n  char *arg;\n  int dummy_i;\n  \n  bVar14 = 0;\n  ppcVar1 = argv + i;\n  pcVar6 = *ppcVar1;\n  if ((*pcVar6 != '-') || (*no_more_options != false)) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/options.cc",0x5f0,"process_one_option");\n  }\n  if ((pcVar6[1] != '-') || (pcVar6[2] != '\0')) {\n    new_i = i;\n    arg = (char *)0x0;\n    pOVar5 = anon_unknown.dwarf_a6a7ee::parse_long_option(argc,argv,false,&arg,&new_i);\n    iVar3 = new_i;\n    if (pOVar5 != (One_option *)0x0) {\n      (**pOVar5->reader->_vptr_Struct_var)(pOVar5->reader,*ppcVar1,arg,this,&this->options_);\n      return new_i;\n    }\n    if ((i == new_i) && (opt = (byte *)argv[new_i], *opt == 0x2d)) {\n      iVar10 = 1;\n      do {\n        if (((anonymous_namespace)::parse_short_option(int,char_const**,int,char_const**,int*)::\n             dash_z == '\0') &&\n           (iVar8 = __cxa_guard_acquire(&(anonymous_namespace)::\n                                         parse_short_option(int,char_const**,int,char_const**,int*)\n                                         ::dash_z), iVar8 != 0)) {\n          pOVar5 = (One_option *)&DAT_00394fa8;\n          (anonymous_namespace)::parse_short_option(int,char_const**,int,char_const**,int*)::dash_z\n               = &DAT_00394fa8;\n                    /* try { // try from 000e6f0f to 000e6f13 has its CatchHandler @ 000e7065 */\n          std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n          _M_construct<char_const*>\n                    ((basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                     &(anonymous_namespace)::\n                      parse_short_option(int,char_const**,int,char_const**,int*)::dash_z,"","",0);\n          DAT_00394fc0 = "";\n          DAT_00394fb8 = 4;\n          DAT_00394fbc = 0x7a;\n          DAT_00394fc4 = 0;\n          DAT_00394fc8 = "Z-OPTION";\n          DAT_00394fcc = 0;\n          DAT_00394fd0 = 0;\n          DAT_00394fd4 = 0;\n          pcVar6 = strchr((anonymous_namespace)::\n                          parse_short_option(int,char_const**,int,char_const**,int*)::dash_z,0x5f);\n          if (pcVar6 != (char *)0x0) {\n            do {\n              *pcVar6 = '-';\n              pcVar6 = strchr(pcVar6,0x5f);\n            } while (pcVar6 != (char *)0x0);\n            if ((DAT_00394fc4 != 0) && (gold::options::ready_to_register != false)) {\n                    /* try { // try from 000e6fa2 to 000e6fa6 has its CatchHandler @ 000e705e */\n              gold::options::One_option::register_option(pOVar5);\n            }\n          }\n          __cxa_guard_release(&(anonymous_namespace)::\n                               parse_short_option(int,char_const**,int,char_const**,int*)::dash_z);\n          __cxa_atexit(gold::options::One_option::~One_option,\n                       &(anonymous_namespace)::\n                        parse_short_option(int,char_const**,int,char_const**,int*)::dash_z,\n                       &__dso_handle);\n        }\n        bVar2 = opt[iVar10];\n        if (bVar2 == 0x7a) {\n          pbVar9 = opt + iVar10 + 1;\n          ppcVar7 = &(anonymous_namespace)::\n                     parse_short_option(int,char_const**,int,char_const**,int*)::dash_z;\n          local_34 = (byte *)DAT_00394fc8;\n          if (DAT_00394fc8 == (char *)0x0) goto LAB_000e6e4d;\nLAB_000e6d8c:\n          iVar8 = new_i + 1;\n          local_34 = pbVar9;\n          iVar4 = iVar8;\n          pbVar11 = pbVar9;\n          if (*pbVar9 != 0) goto LAB_000e6da4;\n          if (((One_option *)ppcVar7)->optional_arg != false) {\n            local_34 = (byte *)((One_option *)ppcVar7)->default_value;\n            pbVar11 = (byte *)((One_option *)ppcVar7)->default_value;\n            goto LAB_000e6da4;\n          }\n          if (iVar8 < argc) {\n            local_34 = (byte *)argv[iVar8];\n            iVar4 = new_i + 2;\n            pbVar11 = (byte *)argv[iVar8];\n            goto LAB_000e6da4;\n          }\nLAB_000e704d:\n          new_i = iVar8;\n          pcVar6 = "missing argument";\n          goto LAB_000e6e04;\n        }\n        if ((0x7e < (int)(char)bVar2 - 1U) ||\n           (ppcVar7 = (char **)gold::options::short_options[(char)bVar2],\n           (One_option *)ppcVar7 == (One_option *)0x0)) break;\n        local_34 = (byte *)((One_option *)ppcVar7)->helparg;\n        pbVar9 = opt + iVar10 + 1;\n        if (local_34 != (byte *)0x0) goto LAB_000e6d8c;\nLAB_000e6e4d:\n        arg = (char *)0x0;\n        iVar4 = new_i;\n        pbVar11 = (byte *)arg;\n        if (*pbVar9 == 0) {\n          new_i = new_i + 1;\n          bVar13 = ppcVar7 ==\n                   &(anonymous_namespace)::\n                    parse_short_option(int,char_const**,int,char_const**,int*)::dash_z;\n          if (bVar13) {\nLAB_000e6e78:\n            bVar12 = ppcVar7 < &(anonymous_namespace)::\n                                parse_short_option(int,char_const**,int,char_const**,int*)::dash_z;\n            dummy_i = 0;\n            iVar8 = 6;\n            pbVar9 = local_34;\n            pbVar11 = (byte *)0x28e8f9;\n            do {\n              opt = pbVar9;\n              if (iVar8 == 0) break;\n              iVar8 = iVar8 + -1;\n              opt = pbVar9 + (uint)bVar14 * -2 + 1;\n              bVar12 = *pbVar9 < *pbVar11;\n              bVar13 = *pbVar9 == *pbVar11;\n              pbVar9 = opt;\n              pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n            } while (bVar13);\n            if ((!bVar12 && !bVar13) == bVar12) {\n              arg = (char *)(byte *)0x28e8f9;\n            }\n            ppcVar7 = (char **)anon_unknown.dwarf_a6a7ee::parse_long_option\n                                         (1,&arg,true,&arg,&dummy_i);\n            if ((One_option *)ppcVar7 == (One_option *)0x0) {\n              pcVar6 = (char *)gettext("unknown -z option");\n              anon_unknown.dwarf_a6a7ee::usage(pcVar6,(char *)local_34);\n              iVar8 = new_i;\n              goto LAB_000e704d;\n            }\n            local_34 = (byte *)arg;\n          }\n        }\n        else {\nLAB_000e6da4:\n          arg = (char *)pbVar11;\n          new_i = iVar4;\n          bVar13 = ppcVar7 ==\n                   &(anonymous_namespace)::\n                    parse_short_option(int,char_const**,int,char_const**,int*)::dash_z;\n          if (bVar13) goto LAB_000e6e78;\n        }\n        iVar10 = iVar10 + 1;\n        (**((One_option *)ppcVar7)->reader->_vptr_Struct_var)\n                  (((One_option *)ppcVar7)->reader,*ppcVar1,local_34,this,&this->options_);\n        if (new_i != iVar3) {\n          return new_i;\n        }\n        opt = (byte *)argv[iVar3];\n      } while (*opt == 0x2d);\n    }\n    opt = (byte *)*ppcVar1;\n    pcVar6 = "unknown option";\nLAB_000e6e04:\n    local_30 = &_GLOBAL_OFFSET_TABLE_;\n    pcVar6 = (char *)gettext(pcVar6);\n    anon_unknown.dwarf_a6a7ee::usage(pcVar6,(char *)opt);\n    no_more_options = extraout_EDX;\n    i = (int)local_30;\n  }\n  *no_more_options = true;\n  return i + 1;\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Command_line::" identifier : : identifier : :) (function_declarator "process_one_option\n          (Command_line *this,int argc,char **argv,int i,bool *no_more_options)" identifier (parameter_list "(Command_line *this,int argc,char **argv,int i,bool *no_more_options)" ( (parameter_declaration "Command_line *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "int argc" primitive_type identifier) , (parameter_declaration "char **argv" primitive_type (pointer_declarator "**argv" * (pointer_declarator "*argv" * identifier))) , (parameter_declaration "int i" primitive_type identifier) , (parameter_declaration "bool *no_more_options" primitive_type (pointer_declarator "*no_more_options" * identifier)) ))) (compound_statement "{\n  char **ppcVar1;\n  byte bVar2;\n  int iVar3;\n  int iVar4;\n  One_option *pOVar5;\n  char *pcVar6;\n  char **ppcVar7;\n  int iVar8;\n  bool *extraout_EDX;\n  byte *pbVar9;\n  byte *opt;\n  int iVar10;\n  byte *pbVar11;\n  bool bVar12;\n  bool bVar13;\n  byte bVar14;\n  byte *local_34;\n  undefined **local_30;\n  int new_i;\n  char *arg;\n  int dummy_i;\n  \n  bVar14 = 0;\n  ppcVar1 = argv + i;\n  pcVar6 = *ppcVar1;\n  if ((*pcVar6 != '-') || (*no_more_options != false)) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/options.cc",0x5f0,"process_one_option");\n  }\n  if ((pcVar6[1] != '-') || (pcVar6[2] != '\0')) {\n    new_i = i;\n    arg = (char *)0x0;\n    pOVar5 = anon_unknown.dwarf_a6a7ee::parse_long_option(argc,argv,false,&arg,&new_i);\n    iVar3 = new_i;\n    if (pOVar5 != (One_option *)0x0) {\n      (**pOVar5->reader->_vptr_Struct_var)(pOVar5->reader,*ppcVar1,arg,this,&this->options_);\n      return new_i;\n    }\n    if ((i == new_i) && (opt = (byte *)argv[new_i], *opt == 0x2d)) {\n      iVar10 = 1;\n      do {\n        if (((anonymous_namespace)::parse_short_option(int,char_const**,int,char_const**,int*)::\n             dash_z == '\0') &&\n           (iVar8 = __cxa_guard_acquire(&(anonymous_namespace)::\n                                         parse_short_option(int,char_const**,int,char_const**,int*)\n                                         ::dash_z), iVar8 != 0)) {\n          pOVar5 = (One_option *)&DAT_00394fa8;\n          (anonymous_namespace)::parse_short_option(int,char_const**,int,char_const**,int*)::dash_z\n               = &DAT_00394fa8;\n                    /* try { // try from 000e6f0f to 000e6f13 has its CatchHandler @ 000e7065 */\n          std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n          _M_construct<char_const*>\n                    ((basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                     &(anonymous_namespace)::\n                      parse_short_option(int,char_const**,int,char_const**,int*)::dash_z,"","",0);\n          DAT_00394fc0 = "";\n          DAT_00394fb8 = 4;\n          DAT_00394fbc = 0x7a;\n          DAT_00394fc4 = 0;\n          DAT_00394fc8 = "Z-OPTION";\n          DAT_00394fcc = 0;\n          DAT_00394fd0 = 0;\n          DAT_00394fd4 = 0;\n          pcVar6 = strchr((anonymous_namespace)::\n                          parse_short_option(int,char_const**,int,char_const**,int*)::dash_z,0x5f);\n          if (pcVar6 != (char *)0x0) {\n            do {\n              *pcVar6 = '-';\n              pcVar6 = strchr(pcVar6,0x5f);\n            } while (pcVar6 != (char *)0x0);\n            if ((DAT_00394fc4 != 0) && (gold::options::ready_to_register != false)) {\n                    /* try { // try from 000e6fa2 to 000e6fa6 has its CatchHandler @ 000e705e */\n              gold::options::One_option::register_option(pOVar5);\n            }\n          }\n          __cxa_guard_release(&(anonymous_namespace)::\n                               parse_short_option(int,char_const**,int,char_const**,int*)::dash_z);\n          __cxa_atexit(gold::options::One_option::~One_option,\n                       &(anonymous_namespace)::\n                        parse_short_option(int,char_const**,int,char_const**,int*)::dash_z,\n                       &__dso_handle);\n        }\n        bVar2 = opt[iVar10];\n        if (bVar2 == 0x7a) {\n          pbVar9 = opt + iVar10 + 1;\n          ppcVar7 = &(anonymous_namespace)::\n                     parse_short_option(int,char_const**,int,char_const**,int*)::dash_z;\n          local_34 = (byte *)DAT_00394fc8;\n          if (DAT_00394fc8 == (char *)0x0) goto LAB_000e6e4d;\nLAB_000e6d8c:\n          iVar8 = new_i + 1;\n          local_34 = pbVar9;\n          iVar4 = iVar8;\n          pbVar11 = pbVar9;\n          if (*pbVar9 != 0) goto LAB_000e6da4;\n          if (((One_option *)ppcVar7)->optional_arg != false) {\n            local_34 = (byte *)((One_option *)ppcVar7)->default_value;\n            pbVar11 = (byte *)((One_option *)ppcVar7)->default_value;\n            goto LAB_000e6da4;\n          }\n          if (iVar8 < argc) {\n            local_34 = (byte *)argv[iVar8];\n            iVar4 = new_i + 2;\n            pbVar11 = (byte *)argv[iVar8];\n            goto LAB_000e6da4;\n          }\nLAB_000e704d:\n          new_i = iVar8;\n          pcVar6 = "missing argument";\n          goto LAB_000e6e04;\n        }\n        if ((0x7e < (int)(char)bVar2 - 1U) ||\n           (ppcVar7 = (char **)gold::options::short_options[(char)bVar2],\n           (One_option *)ppcVar7 == (One_option *)0x0)) break;\n        local_34 = (byte *)((One_option *)ppcVar7)->helparg;\n        pbVar9 = opt + iVar10 + 1;\n        if (local_34 != (byte *)0x0) goto LAB_000e6d8c;\nLAB_000e6e4d:\n        arg = (char *)0x0;\n        iVar4 = new_i;\n        pbVar11 = (byte *)arg;\n        if (*pbVar9 == 0) {\n          new_i = new_i + 1;\n          bVar13 = ppcVar7 ==\n                   &(anonymous_namespace)::\n                    parse_short_option(int,char_const**,int,char_const**,int*)::dash_z;\n          if (bVar13) {\nLAB_000e6e78:\n            bVar12 = ppcVar7 < &(anonymous_namespace)::\n                                parse_short_option(int,char_const**,int,char_const**,int*)::dash_z;\n            dummy_i = 0;\n            iVar8 = 6;\n            pbVar9 = local_34;\n            pbVar11 = (byte *)0x28e8f9;\n            do {\n              opt = pbVar9;\n              if (iVar8 == 0) break;\n              iVar8 = iVar8 + -1;\n              opt = pbVar9 + (uint)bVar14 * -2 + 1;\n              bVar12 = *pbVar9 < *pbVar11;\n              bVar13 = *pbVar9 == *pbVar11;\n              pbVar9 = opt;\n              pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n            } while (bVar13);\n            if ((!bVar12 && !bVar13) == bVar12) {\n              arg = (char *)(byte *)0x28e8f9;\n            }\n            ppcVar7 = (char **)anon_unknown.dwarf_a6a7ee::parse_long_option\n                                         (1,&arg,true,&arg,&dummy_i);\n            if ((One_option *)ppcVar7 == (One_option *)0x0) {\n              pcVar6 = (char *)gettext("unknown -z option");\n              anon_unknown.dwarf_a6a7ee::usage(pcVar6,(char *)local_34);\n              iVar8 = new_i;\n              goto LAB_000e704d;\n            }\n            local_34 = (byte *)arg;\n          }\n        }\n        else {\nLAB_000e6da4:\n          arg = (char *)pbVar11;\n          new_i = iVar4;\n          bVar13 = ppcVar7 ==\n                   &(anonymous_namespace)::\n                    parse_short_option(int,char_const**,int,char_const**,int*)::dash_z;\n          if (bVar13) goto LAB_000e6e78;\n        }\n        iVar10 = iVar10 + 1;\n        (**((One_option *)ppcVar7)->reader->_vptr_Struct_var)\n                  (((One_option *)ppcVar7)->reader,*ppcVar1,local_34,this,&this->options_);\n        if (new_i != iVar3) {\n          return new_i;\n        }\n        opt = (byte *)argv[iVar3];\n      } while (*opt == 0x2d);\n    }\n    opt = (byte *)*ppcVar1;\n    pcVar6 = "unknown option";\nLAB_000e6e04:\n    local_30 = &_GLOBAL_OFFSET_TABLE_;\n    pcVar6 = (char *)gettext(pcVar6);\n    anon_unknown.dwarf_a6a7ee::usage(pcVar6,(char *)opt);\n    no_more_options = extraout_EDX;\n    i = (int)local_30;\n  }\n  *no_more_options = true;\n  return i + 1;\n}" { (declaration "char **ppcVar1;" primitive_type (pointer_declarator "**ppcVar1" * (pointer_declarator "*ppcVar1" * identifier)) ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "One_option *pOVar5;" type_identifier (pointer_declarator "*pOVar5" * identifier) ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (declaration "char **ppcVar7;" primitive_type (pointer_declarator "**ppcVar7" * (pointer_declarator "*ppcVar7" * identifier)) ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "bool *extraout_EDX;" primitive_type (pointer_declarator "*extraout_EDX" * identifier) ;) (declaration "byte *pbVar9;" type_identifier (pointer_declarator "*pbVar9" * identifier) ;) (declaration "byte *opt;" type_identifier (pointer_declarator "*opt" * 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 "byte bVar14;" type_identifier identifier ;) (declaration "byte *local_34;" type_identifier (pointer_declarator "*local_34" * identifier) ;) (declaration "undefined **local_30;" type_identifier (pointer_declarator "**local_30" * (pointer_declarator "*local_30" * identifier)) ;) (declaration "int new_i;" primitive_type identifier ;) (declaration "char *arg;" primitive_type (pointer_declarator "*arg" * identifier) ;) (declaration "int dummy_i;" primitive_type identifier ;) (expression_statement "bVar14 = 0;" (assignment_expression "bVar14 = 0" identifier = number_literal) ;) (expression_statement "ppcVar1 = argv + i;" (assignment_expression "ppcVar1 = argv + i" identifier = (binary_expression "argv + i" identifier + identifier)) ;) (expression_statement "pcVar6 = *ppcVar1;" (assignment_expression "pcVar6 = *ppcVar1" identifier = (pointer_expression "*ppcVar1" * identifier)) ;) (if_statement "if ((*pcVar6 != '-') || (*no_more_options != false)) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/options.cc",0x5f0,"process_one_option");\n  }" if (parenthesized_expression "((*pcVar6 != '-') || (*no_more_options != false))" ( (binary_expression "(*pcVar6 != '-') || (*no_more_options != false)" (parenthesized_expression "(*pcVar6 != '-')" ( (binary_expression "*pcVar6 != '-'" (pointer_expression "*pcVar6" * identifier) != (char_literal "'-'" ' character ')) )) || (parenthesized_expression "(*no_more_options != false)" ( (binary_expression "*no_more_options != false" (pointer_expression "*no_more_options" * identifier) != false) ))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/options.cc",0x5f0,"process_one_option");\n  }" { comment (expression_statement "do_gold_unreachable("../../gold/options.cc",0x5f0,"process_one_option");" (call_expression "do_gold_unreachable("../../gold/options.cc",0x5f0,"process_one_option")" identifier (argument_list "("../../gold/options.cc",0x5f0,"process_one_option")" ( (string_literal ""../../gold/options.cc"" " string_content ") , number_literal , (string_literal ""process_one_option"" " string_content ") ))) ;) })) (if_statement "if ((pcVar6[1] != '-') || (pcVar6[2] != '\0')) {\n    new_i = i;\n    arg = (char *)0x0;\n    pOVar5 = anon_unknown.dwarf_a6a7ee::parse_long_option(argc,argv,false,&arg,&new_i);\n    iVar3 = new_i;\n    if (pOVar5 != (One_option *)0x0) {\n      (**pOVar5->reader->_vptr_Struct_var)(pOVar5->reader,*ppcVar1,arg,this,&this->options_);\n      return new_i;\n    }\n    if ((i == new_i) && (opt = (byte *)argv[new_i], *opt == 0x2d)) {\n      iVar10 = 1;\n      do {\n        if (((anonymous_namespace)::parse_short_option(int,char_const**,int,char_const**,int*)::\n             dash_z == '\0') &&\n           (iVar8 = __cxa_guard_acquire(&(anonymous_namespace)::\n                                         parse_short_option(int,char_const**,int,char_const**,int*)\n                                         ::dash_z), iVar8 != 0)) {\n          pOVar5 = (One_option *)&DAT_00394fa8;\n          (anonymous_namespace)::parse_short_option(int,char_const**,int,char_const**,int*)::dash_z\n               = &DAT_00394fa8;\n                    /* try { // try from 000e6f0f to 000e6f13 has its CatchHandler @ 000e7065 */\n          std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n          _M_construct<char_const*>\n                    ((basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                     &(anonymous_namespace)::\n                      parse_short_option(int,char_const**,int,char_const**,int*)::dash_z,"","",0);\n          DAT_00394fc0 = "";\n          DAT_00394fb8 = 4;\n          DAT_00394fbc = 0x7a;\n          DAT_00394fc4 = 0;\n          DAT_00394fc8 = "Z-OPTION";\n          DAT_00394fcc = 0;\n          DAT_00394fd0 = 0;\n          DAT_00394fd4 = 0;\n          pcVar6 = strchr((anonymous_namespace)::\n                          parse_short_option(int,char_const**,int,char_const**,int*)::dash_z,0x5f);\n          if (pcVar6 != (char *)0x0) {\n            do {\n              *pcVar6 = '-';\n              pcVar6 = strchr(pcVar6,0x5f);\n            } while (pcVar6 != (char *)0x0);\n            if ((DAT_00394fc4 != 0) && (gold::options::ready_to_register != false)) {\n                    /* try { // try from 000e6fa2 to 000e6fa6 has its CatchHandler @ 000e705e */\n              gold::options::One_option::register_option(pOVar5);\n            }\n          }\n          __cxa_guard_release(&(anonymous_namespace)::\n                               parse_short_option(int,char_const**,int,char_const**,int*)::dash_z);\n          __cxa_atexit(gold::options::One_option::~One_option,\n                       &(anonymous_namespace)::\n                        parse_short_option(int,char_const**,int,char_const**,int*)::dash_z,\n                       &__dso_handle);\n        }\n        bVar2 = opt[iVar10];\n        if (bVar2 == 0x7a) {\n          pbVar9 = opt + iVar10 + 1;\n          ppcVar7 = &(anonymous_namespace)::\n                     parse_short_option(int,char_const**,int,char_const**,int*)::dash_z;\n          local_34 = (byte *)DAT_00394fc8;\n          if (DAT_00394fc8 == (char *)0x0) goto LAB_000e6e4d;\nLAB_000e6d8c:\n          iVar8 = new_i + 1;\n          local_34 = pbVar9;\n          iVar4 = iVar8;\n          pbVar11 = pbVar9;\n          if (*pbVar9 != 0) goto LAB_000e6da4;\n          if (((One_option *)ppcVar7)->optional_arg != false) {\n            local_34 = (byte *)((One_option *)ppcVar7)->default_value;\n            pbVar11 = (byte *)((One_option *)ppcVar7)->default_value;\n            goto LAB_000e6da4;\n          }\n          if (iVar8 < argc) {\n            local_34 = (byte *)argv[iVar8];\n            iVar4 = new_i + 2;\n            pbVar11 = (byte *)argv[iVar8];\n            goto LAB_000e6da4;\n          }\nLAB_000e704d:\n          new_i = iVar8;\n          pcVar6 = "missing argument";\n          goto LAB_000e6e04;\n        }\n        if ((0x7e < (int)(char)bVar2 - 1U) ||\n           (ppcVar7 = (char **)gold::options::short_options[(char)bVar2],\n           (One_option *)ppcVar7 == (One_option *)0x0)) break;\n        local_34 = (byte *)((One_option *)ppcVar7)->helparg;\n        pbVar9 = opt + iVar10 + 1;\n        if (local_34 != (byte *)0x0) goto LAB_000e6d8c;\nLAB_000e6e4d:\n        arg = (char *)0x0;\n        iVar4 = new_i;\n        pbVar11 = (byte *)arg;\n        if (*pbVar9 == 0) {\n          new_i = new_i + 1;\n          bVar13 = ppcVar7 ==\n                   &(anonymous_namespace)::\n                    parse_short_option(int,char_const**,int,char_const**,int*)::dash_z;\n          if (bVar13) {\nLAB_000e6e78:\n            bVar12 = ppcVar7 < &(anonymous_namespace)::\n                                parse_short_option(int,char_const**,int,char_const**,int*)::dash_z;\n            dummy_i = 0;\n            iVar8 = 6;\n            pbVar9 = local_34;\n            pbVar11 = (byte *)0x28e8f9;\n            do {\n              opt = pbVar9;\n              if (iVar8 == 0) break;\n              iVar8 = iVar8 + -1;\n              opt = pbVar9 + (uint)bVar14 * -2 + 1;\n              bVar12 = *pbVar9 < *pbVar11;\n              bVar13 = *pbVar9 == *pbVar11;\n              pbVar9 = opt;\n              pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n            } while (bVar13);\n            if ((!bVar12 && !bVar13) == bVar12) {\n              arg = (char *)(byte *)0x28e8f9;\n            }\n            ppcVar7 = (char **)anon_unknown.dwarf_a6a7ee::parse_long_option\n                                         (1,&arg,true,&arg,&dummy_i);\n            if ((One_option *)ppcVar7 == (One_option *)0x0) {\n              pcVar6 = (char *)gettext("unknown -z option");\n              anon_unknown.dwarf_a6a7ee::usage(pcVar6,(char *)local_34);\n              iVar8 = new_i;\n              goto LAB_000e704d;\n            }\n            local_34 = (byte *)arg;\n          }\n        }\n        else {\nLAB_000e6da4:\n          arg = (char *)pbVar11;\n          new_i = iVar4;\n          bVar13 = ppcVar7 ==\n                   &(anonymous_namespace)::\n                    parse_short_option(int,char_const**,int,char_const**,int*)::dash_z;\n          if (bVar13) goto LAB_000e6e78;\n        }\n        iVar10 = iVar10 + 1;\n        (**((One_option *)ppcVar7)->reader->_vptr_Struct_var)\n                  (((One_option *)ppcVar7)->reader,*ppcVar1,local_34,this,&this->options_);\n        if (new_i != iVar3) {\n          return new_i;\n        }\n        opt = (byte *)argv[iVar3];\n      } while (*opt == 0x2d);\n    }\n    opt = (byte *)*ppcVar1;\n    pcVar6 = "unknown option";\nLAB_000e6e04:\n    local_30 = &_GLOBAL_OFFSET_TABLE_;\n    pcVar6 = (char *)gettext(pcVar6);\n    anon_unknown.dwarf_a6a7ee::usage(pcVar6,(char *)opt);\n    no_more_options = extraout_EDX;\n    i = (int)local_30;\n  }\n  *no_more_options = true;\n  return i + 1;\n}" if (parenthesized_expression "((pcVar6[1] != '-') || (pcVar6[2] != '\0'))" ( (binary_expression "(pcVar6[1] != '-') || (pcVar6[2] != '\0')" (parenthesized_expression "(pcVar6[1] != '-')" ( (binary_expression "pcVar6[1] != '-'" (subscript_expression "pcVar6[1]" identifier [ number_literal ]) != (char_literal "'-'" ' character ')) )) || (parenthesized_expression "(pcVar6[2] != '\0')" ( (binary_expression "pcVar6[2] != '\0'" (subscript_expression "pcVar6[2]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n    new_i = i;\n    arg = (char *)0x0;\n    pOVar5 = anon_unknown.dwarf_a6a7ee::parse_long_option(argc,argv,false,&arg,&new_i);\n    iVar3 = new_i;\n    if (pOVar5 != (One_option *)0x0) {\n      (**pOVar5->reader->_vptr_Struct_var)(pOVar5->reader,*ppcVar1,arg,this,&this->options_);\n      return new_i;\n    }\n    if ((i == new_i) && (opt = (byte *)argv[new_i], *opt == 0x2d)) {\n      iVar10 = 1;\n      do {\n        if (((anonymous_namespace)::parse_short_option(int,char_const**,int,char_const**,int*)::\n             dash_z == '\0') &&\n           (iVar8 = __cxa_guard_acquire(&(anonymous_namespace)::\n                                         parse_short_option(int,char_const**,int,char_const**,int*)\n                                         ::dash_z), iVar8 != 0)) {\n          pOVar5 = (One_option *)&DAT_00394fa8;\n          (anonymous_namespace)::parse_short_option(int,char_const**,int,char_const**,int*)::dash_z\n               = &DAT_00394fa8;\n                    /* try { // try from 000e6f0f to 000e6f13 has its CatchHandler @ 000e7065 */\n          std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n          _M_construct<char_const*>\n                    ((basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                     &(anonymous_namespace)::\n                      parse_short_option(int,char_const**,int,char_const**,int*)::dash_z,"","",0);\n          DAT_00394fc0 = "";\n          DAT_00394fb8 = 4;\n          DAT_00394fbc = 0x7a;\n          DAT_00394fc4 = 0;\n          DAT_00394fc8 = "Z-OPTION";\n          DAT_00394fcc = 0;\n          DAT_00394fd0 = 0;\n          DAT_00394fd4 = 0;\n          pcVar6 = strchr((anonymous_namespace)::\n                          parse_short_option(int,char_const**,int,char_const**,int*)::dash_z,0x5f);\n          if (pcVar6 != (char *)0x0) {\n            do {\n              *pcVar6 = '-';\n              pcVar6 = strchr(pcVar6,0x5f);\n            } while (pcVar6 != (char *)0x0);\n            if ((DAT_00394fc4 != 0) && (gold::options::ready_to_register != false)) {\n                    /* try { // try from 000e6fa2 to 000e6fa6 has its CatchHandler @ 000e705e */\n              gold::options::One_option::register_option(pOVar5);\n            }\n          }\n          __cxa_guard_release(&(anonymous_namespace)::\n                               parse_short_option(int,char_const**,int,char_const**,int*)::dash_z);\n          __cxa_atexit(gold::options::One_option::~One_option,\n                       &(anonymous_namespace)::\n                        parse_short_option(int,char_const**,int,char_const**,int*)::dash_z,\n                       &__dso_handle);\n        }\n        bVar2 = opt[iVar10];\n        if (bVar2 == 0x7a) {\n          pbVar9 = opt + iVar10 + 1;\n          ppcVar7 = &(anonymous_namespace)::\n                     parse_short_option(int,char_const**,int,char_const**,int*)::dash_z;\n          local_34 = (byte *)DAT_00394fc8;\n          if (DAT_00394fc8 == (char *)0x0) goto LAB_000e6e4d;\nLAB_000e6d8c:\n          iVar8 = new_i + 1;\n          local_34 = pbVar9;\n          iVar4 = iVar8;\n          pbVar11 = pbVar9;\n          if (*pbVar9 != 0) goto LAB_000e6da4;\n          if (((One_option *)ppcVar7)->optional_arg != false) {\n            local_34 = (byte *)((One_option *)ppcVar7)->default_value;\n            pbVar11 = (byte *)((One_option *)ppcVar7)->default_value;\n            goto LAB_000e6da4;\n          }\n          if (iVar8 < argc) {\n            local_34 = (byte *)argv[iVar8];\n            iVar4 = new_i + 2;\n            pbVar11 = (byte *)argv[iVar8];\n            goto LAB_000e6da4;\n          }\nLAB_000e704d:\n          new_i = iVar8;\n          pcVar6 = "missing argument";\n          goto LAB_000e6e04;\n        }\n        if ((0x7e < (int)(char)bVar2 - 1U) ||\n           (ppcVar7 = (char **)gold::options::short_options[(char)bVar2],\n           (One_option *)ppcVar7 == (One_option *)0x0)) break;\n        local_34 = (byte *)((One_option *)ppcVar7)->helparg;\n        pbVar9 = opt + iVar10 + 1;\n        if (local_34 != (byte *)0x0) goto LAB_000e6d8c;\nLAB_000e6e4d:\n        arg = (char *)0x0;\n        iVar4 = new_i;\n        pbVar11 = (byte *)arg;\n        if (*pbVar9 == 0) {\n          new_i = new_i + 1;\n          bVar13 = ppcVar7 ==\n                   &(anonymous_namespace)::\n                    parse_short_option(int,char_const**,int,char_const**,int*)::dash_z;\n          if (bVar13) {\nLAB_000e6e78:\n            bVar12 = ppcVar7 < &(anonymous_namespace)::\n                                parse_short_option(int,char_const**,int,char_const**,int*)::dash_z;\n            dummy_i = 0;\n            iVar8 = 6;\n            pbVar9 = local_34;\n            pbVar11 = (byte *)0x28e8f9;\n            do {\n              opt = pbVar9;\n              if (iVar8 == 0) break;\n              iVar8 = iVar8 + -1;\n              opt = pbVar9 + (uint)bVar14 * -2 + 1;\n              bVar12 = *pbVar9 < *pbVar11;\n              bVar13 = *pbVar9 == *pbVar11;\n              pbVar9 = opt;\n              pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n            } while (bVar13);\n            if ((!bVar12 && !bVar13) == bVar12) {\n              arg = (char *)(byte *)0x28e8f9;\n            }\n            ppcVar7 = (char **)anon_unknown.dwarf_a6a7ee::parse_long_option\n                                         (1,&arg,true,&arg,&dummy_i);\n            if ((One_option *)ppcVar7 == (One_option *)0x0) {\n              pcVar6 = (char *)gettext("unknown -z option");\n              anon_unknown.dwarf_a6a7ee::usage(pcVar6,(char *)local_34);\n              iVar8 = new_i;\n              goto LAB_000e704d;\n            }\n            local_34 = (byte *)arg;\n          }\n        }\n        else {\nLAB_000e6da4:\n          arg = (char *)pbVar11;\n          new_i = iVar4;\n          bVar13 = ppcVar7 ==\n                   &(anonymous_namespace)::\n                    parse_short_option(int,char_const**,int,char_const**,int*)::dash_z;\n          if (bVar13) goto LAB_000e6e78;\n        }\n        iVar10 = iVar10 + 1;\n        (**((One_option *)ppcVar7)->reader->_vptr_Struct_var)\n                  (((One_option *)ppcVar7)->reader,*ppcVar1,local_34,this,&this->options_);\n        if (new_i != iVar3) {\n          return new_i;\n        }\n        opt = (byte *)argv[iVar3];\n      } while (*opt == 0x2d);\n    }\n    opt = (byte *)*ppcVar1;\n    pcVar6 = "unknown option";\nLAB_000e6e04:\n    local_30 = &_GLOBAL_OFFSET_TABLE_;\n    pcVar6 = (char *)gettext(pcVar6);\n    anon_unknown.dwarf_a6a7ee::usage(pcVar6,(char *)opt);\n    no_more_options = extraout_EDX;\n    i = (int)local_30;\n  }\n  *no_more_options = true;\n  return i + 1;\n}" { (expression_statement "new_i = i;" (assignment_expression "new_i = i" identifier = identifier) ;) (expression_statement "arg = (char *)0x0;" (assignment_expression "arg = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (ERROR "pOVar5 = anon_unknown.dwarf_a6a7ee::" (assignment_expression "pOVar5 = anon_unknown.dwarf_a6a7ee" identifier = (field_expression "anon_unknown.dwarf_a6a7ee" identifier . field_identifier)) : :) (expression_statement "parse_long_option(argc,argv,false,&arg,&new_i);" (call_expression "parse_long_option(argc,argv,false,&arg,&new_i)" identifier (argument_list "(argc,argv,false,&arg,&new_i)" ( identifier , identifier , false , (pointer_expression "&arg" & identifier) , (pointer_expression "&new_i" & identifier) ))) ;) (expression_statement "iVar3 = new_i;" (assignment_expression "iVar3 = new_i" identifier = identifier) ;) (if_statement "if (pOVar5 != (One_option *)0x0) {\n      (**pOVar5->reader->_vptr_Struct_var)(pOVar5->reader,*ppcVar1,arg,this,&this->options_);\n      return new_i;\n    }" if (parenthesized_expression "(pOVar5 != (One_option *)0x0)" ( (binary_expression "pOVar5 != (One_option *)0x0" identifier != (cast_expression "(One_option *)0x0" ( (type_descriptor "One_option *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      (**pOVar5->reader->_vptr_Struct_var)(pOVar5->reader,*ppcVar1,arg,this,&this->options_);\n      return new_i;\n    }" { (expression_statement "(**pOVar5->reader->_vptr_Struct_var)(pOVar5->reader,*ppcVar1,arg,this,&this->options_);" (call_expression "(**pOVar5->reader->_vptr_Struct_var)(pOVar5->reader,*ppcVar1,arg,this,&this->options_)" (parenthesized_expression "(**pOVar5->reader->_vptr_Struct_var)" ( (pointer_expression "**pOVar5->reader->_vptr_Struct_var" * (pointer_expression "*pOVar5->reader->_vptr_Struct_var" * (field_expression "pOVar5->reader->_vptr_Struct_var" (field_expression "pOVar5->reader" identifier -> field_identifier) -> field_identifier))) )) (argument_list "(pOVar5->reader,*ppcVar1,arg,this,&this->options_)" ( (field_expression "pOVar5->reader" identifier -> field_identifier) , (pointer_expression "*ppcVar1" * identifier) , identifier , identifier , (pointer_expression "&this->options_" & (field_expression "this->options_" identifier -> field_identifier)) ))) ;) (return_statement "return new_i;" return identifier ;) })) (if_statement "if ((i == new_i) && (opt = (byte *)argv[new_i], *opt == 0x2d)) {\n      iVar10 = 1;\n      do {\n        if (((anonymous_namespace)::parse_short_option(int,char_const**,int,char_const**,int*)::\n             dash_z == '\0') &&\n           (iVar8 = __cxa_guard_acquire(&(anonymous_namespace)::\n                                         parse_short_option(int,char_const**,int,char_const**,int*)\n                                         ::dash_z), iVar8 != 0)) {\n          pOVar5 = (One_option *)&DAT_00394fa8;\n          (anonymous_namespace)::parse_short_option(int,char_const**,int,char_const**,int*)::dash_z\n               = &DAT_00394fa8;\n                    /* try { // try from 000e6f0f to 000e6f13 has its CatchHandler @ 000e7065 */\n          std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n          _M_construct<char_const*>\n                    ((basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                     &(anonymous_namespace)::\n                      parse_short_option(int,char_const**,int,char_const**,int*)::dash_z,"","",0);\n          DAT_00394fc0 = "";\n          DAT_00394fb8 = 4;\n          DAT_00394fbc = 0x7a;\n          DAT_00394fc4 = 0;\n          DAT_00394fc8 = "Z-OPTION";\n          DAT_00394fcc = 0;\n          DAT_00394fd0 = 0;\n          DAT_00394fd4 = 0;\n          pcVar6 = strchr((anonymous_namespace)::\n                          parse_short_option(int,char_const**,int,char_const**,int*)::dash_z,0x5f);\n          if (pcVar6 != (char *)0x0) {\n            do {\n              *pcVar6 = '-';\n              pcVar6 = strchr(pcVar6,0x5f);\n            } while (pcVar6 != (char *)0x0);\n            if ((DAT_00394fc4 != 0) && (gold::options::ready_to_register != false)) {\n                    /* try { // try from 000e6fa2 to 000e6fa6 has its CatchHandler @ 000e705e */\n              gold::options::One_option::register_option(pOVar5);\n            }\n          }\n          __cxa_guard_release(&(anonymous_namespace)::\n                               parse_short_option(int,char_const**,int,char_const**,int*)::dash_z);\n          __cxa_atexit(gold::options::One_option::~One_option,\n                       &(anonymous_namespace)::\n                        parse_short_option(int,char_const**,int,char_const**,int*)::dash_z,\n                       &__dso_handle);\n        }\n        bVar2 = opt[iVar10];\n        if (bVar2 == 0x7a) {\n          pbVar9 = opt + iVar10 + 1;\n          ppcVar7 = &(anonymous_namespace)::\n                     parse_short_option(int,char_const**,int,char_const**,int*)::dash_z;\n          local_34 = (byte *)DAT_00394fc8;\n          if (DAT_00394fc8 == (char *)0x0) goto LAB_000e6e4d;\nLAB_000e6d8c:\n          iVar8 = new_i + 1;\n          local_34 = pbVar9;\n          iVar4 = iVar8;\n          pbVar11 = pbVar9;\n          if (*pbVar9 != 0) goto LAB_000e6da4;\n          if (((One_option *)ppcVar7)->optional_arg != false) {\n            local_34 = (byte *)((One_option *)ppcVar7)->default_value;\n            pbVar11 = (byte *)((One_option *)ppcVar7)->default_value;\n            goto LAB_000e6da4;\n          }\n          if (iVar8 < argc) {\n            local_34 = (byte *)argv[iVar8];\n            iVar4 = new_i + 2;\n            pbVar11 = (byte *)argv[iVar8];\n            goto LAB_000e6da4;\n          }\nLAB_000e704d:\n          new_i = iVar8;\n          pcVar6 = "missing argument";\n          goto LAB_000e6e04;\n        }\n        if ((0x7e < (int)(char)bVar2 - 1U) ||\n           (ppcVar7 = (char **)gold::options::short_options[(char)bVar2],\n           (One_option *)ppcVar7 == (One_option *)0x0)) break;\n        local_34 = (byte *)((One_option *)ppcVar7)->helparg;\n        pbVar9 = opt + iVar10 + 1;\n        if (local_34 != (byte *)0x0) goto LAB_000e6d8c;\nLAB_000e6e4d:\n        arg = (char *)0x0;\n        iVar4 = new_i;\n        pbVar11 = (byte *)arg;\n        if (*pbVar9 == 0) {\n          new_i = new_i + 1;\n          bVar13 = ppcVar7 ==\n                   &(anonymous_namespace)::\n                    parse_short_option(int,char_const**,int,char_const**,int*)::dash_z;\n          if (bVar13) {\nLAB_000e6e78:\n            bVar12 = ppcVar7 < &(anonymous_namespace)::\n                                parse_short_option(int,char_const**,int,char_const**,int*)::dash_z;\n            dummy_i = 0;\n            iVar8 = 6;\n            pbVar9 = local_34;\n            pbVar11 = (byte *)0x28e8f9;\n            do {\n              opt = pbVar9;\n              if (iVar8 == 0) break;\n              iVar8 = iVar8 + -1;\n              opt = pbVar9 + (uint)bVar14 * -2 + 1;\n              bVar12 = *pbVar9 < *pbVar11;\n              bVar13 = *pbVar9 == *pbVar11;\n              pbVar9 = opt;\n              pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n            } while (bVar13);\n            if ((!bVar12 && !bVar13) == bVar12) {\n              arg = (char *)(byte *)0x28e8f9;\n            }\n            ppcVar7 = (char **)anon_unknown.dwarf_a6a7ee::parse_long_option\n                                         (1,&arg,true,&arg,&dummy_i);\n            if ((One_option *)ppcVar7 == (One_option *)0x0) {\n              pcVar6 = (char *)gettext("unknown -z option");\n              anon_unknown.dwarf_a6a7ee::usage(pcVar6,(char *)local_34);\n              iVar8 = new_i;\n              goto LAB_000e704d;\n            }\n            local_34 = (byte *)arg;\n          }\n        }\n        else {\nLAB_000e6da4:\n          arg = (char *)pbVar11;\n          new_i = iVar4;\n          bVar13 = ppcVar7 ==\n                   &(anonymous_namespace)::\n                    parse_short_option(int,char_const**,int,char_const**,int*)::dash_z;\n          if (bVar13) goto LAB_000e6e78;\n        }\n        iVar10 = iVar10 + 1;\n        (**((One_option *)ppcVar7)->reader->_vptr_Struct_var)\n                  (((One_option *)ppcVar7)->reader,*ppcVar1,local_34,this,&this->options_);\n        if (new_i != iVar3) {\n          return new_i;\n        }\n        opt = (byte *)argv[iVar3];\n      } while (*opt == 0x2d);\n    }\n    opt = (byte *)*ppcVar1;\n    pcVar6 = "unknown option";\nLAB_000e6e04:\n    local_30 = &_GLOBAL_OFFSET_TABLE_;\n    pcVar6 = (char *)gettext(pcVar6);\n    anon_unknown.dwarf_a6a7ee::usage(pcVar6,(char *)opt);\n    no_more_options = extraout_EDX;\n    i = (int)local_30;\n  }" if (parenthesized_expression "((i == new_i) && (opt = (byte *)argv[new_i], *opt == 0x2d))" ( (binary_expression "(i == new_i) && (opt = (byte *)argv[new_i], *opt == 0x2d)" (parenthesized_expression "(i == new_i)" ( (binary_expression "i == new_i" identifier == identifier) )) && (parenthesized_expression "(opt = (byte *)argv[new_i], *opt == 0x2d)" ( (comma_expression "opt = (byte *)argv[new_i], *opt == 0x2d" (assignment_expression "opt = (byte *)argv[new_i]" identifier = (cast_expression "(byte *)argv[new_i]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "argv[new_i]" identifier [ identifier ]))) , (binary_expression "*opt == 0x2d" (pointer_expression "*opt" * identifier) == number_literal)) ))) )) (compound_statement "{\n      iVar10 = 1;\n      do {\n        if (((anonymous_namespace)::parse_short_option(int,char_const**,int,char_const**,int*)::\n             dash_z == '\0') &&\n           (iVar8 = __cxa_guard_acquire(&(anonymous_namespace)::\n                                         parse_short_option(int,char_const**,int,char_const**,int*)\n                                         ::dash_z), iVar8 != 0)) {\n          pOVar5 = (One_option *)&DAT_00394fa8;\n          (anonymous_namespace)::parse_short_option(int,char_const**,int,char_const**,int*)::dash_z\n               = &DAT_00394fa8;\n                    /* try { // try from 000e6f0f to 000e6f13 has its CatchHandler @ 000e7065 */\n          std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n          _M_construct<char_const*>\n                    ((basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                     &(anonymous_namespace)::\n                      parse_short_option(int,char_const**,int,char_const**,int*)::dash_z,"","",0);\n          DAT_00394fc0 = "";\n          DAT_00394fb8 = 4;\n          DAT_00394fbc = 0x7a;\n          DAT_00394fc4 = 0;\n          DAT_00394fc8 = "Z-OPTION";\n          DAT_00394fcc = 0;\n          DAT_00394fd0 = 0;\n          DAT_00394fd4 = 0;\n          pcVar6 = strchr((anonymous_namespace)::\n                          parse_short_option(int,char_const**,int,char_const**,int*)::dash_z,0x5f);\n          if (pcVar6 != (char *)0x0) {\n            do {\n              *pcVar6 = '-';\n              pcVar6 = strchr(pcVar6,0x5f);\n            } while (pcVar6 != (char *)0x0);\n            if ((DAT_00394fc4 != 0) && (gold::options::ready_to_register != false)) {\n                    /* try { // try from 000e6fa2 to 000e6fa6 has its CatchHandler @ 000e705e */\n              gold::options::One_option::register_option(pOVar5);\n            }\n          }\n          __cxa_guard_release(&(anonymous_namespace)::\n                               parse_short_option(int,char_const**,int,char_const**,int*)::dash_z);\n          __cxa_atexit(gold::options::One_option::~One_option,\n                       &(anonymous_namespace)::\n                        parse_short_option(int,char_const**,int,char_const**,int*)::dash_z,\n                       &__dso_handle);\n        }\n        bVar2 = opt[iVar10];\n        if (bVar2 == 0x7a) {\n          pbVar9 = opt + iVar10 + 1;\n          ppcVar7 = &(anonymous_namespace)::\n                     parse_short_option(int,char_const**,int,char_const**,int*)::dash_z;\n          local_34 = (byte *)DAT_00394fc8;\n          if (DAT_00394fc8 == (char *)0x0) goto LAB_000e6e4d;\nLAB_000e6d8c:\n          iVar8 = new_i + 1;\n          local_34 = pbVar9;\n          iVar4 = iVar8;\n          pbVar11 = pbVar9;\n          if (*pbVar9 != 0) goto LAB_000e6da4;\n          if (((One_option *)ppcVar7)->optional_arg != false) {\n            local_34 = (byte *)((One_option *)ppcVar7)->default_value;\n            pbVar11 = (byte *)((One_option *)ppcVar7)->default_value;\n            goto LAB_000e6da4;\n          }\n          if (iVar8 < argc) {\n            local_34 = (byte *)argv[iVar8];\n            iVar4 = new_i + 2;\n            pbVar11 = (byte *)argv[iVar8];\n            goto LAB_000e6da4;\n          }\nLAB_000e704d:\n          new_i = iVar8;\n          pcVar6 = "missing argument";\n          goto LAB_000e6e04;\n        }\n        if ((0x7e < (int)(char)bVar2 - 1U) ||\n           (ppcVar7 = (char **)gold::options::short_options[(char)bVar2],\n           (One_option *)ppcVar7 == (One_option *)0x0)) break;\n        local_34 = (byte *)((One_option *)ppcVar7)->helparg;\n        pbVar9 = opt + iVar10 + 1;\n        if (local_34 != (byte *)0x0) goto LAB_000e6d8c;\nLAB_000e6e4d:\n        arg = (char *)0x0;\n        iVar4 = new_i;\n        pbVar11 = (byte *)arg;\n        if (*pbVar9 == 0) {\n          new_i = new_i + 1;\n          bVar13 = ppcVar7 ==\n                   &(anonymous_namespace)::\n                    parse_short_option(int,char_const**,int,char_const**,int*)::dash_z;\n          if (bVar13) {\nLAB_000e6e78:\n            bVar12 = ppcVar7 < &(anonymous_namespace)::\n                                parse_short_option(int,char_const**,int,char_const**,int*)::dash_z;\n            dummy_i = 0;\n            iVar8 = 6;\n            pbVar9 = local_34;\n            pbVar11 = (byte *)0x28e8f9;\n            do {\n              opt = pbVar9;\n              if (iVar8 == 0) break;\n              iVar8 = iVar8 + -1;\n              opt = pbVar9 + (uint)bVar14 * -2 + 1;\n              bVar12 = *pbVar9 < *pbVar11;\n              bVar13 = *pbVar9 == *pbVar11;\n              pbVar9 = opt;\n              pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n            } while (bVar13);\n            if ((!bVar12 && !bVar13) == bVar12) {\n              arg = (char *)(byte *)0x28e8f9;\n            }\n            ppcVar7 = (char **)anon_unknown.dwarf_a6a7ee::parse_long_option\n                                         (1,&arg,true,&arg,&dummy_i);\n            if ((One_option *)ppcVar7 == (One_option *)0x0) {\n              pcVar6 = (char *)gettext("unknown -z option");\n              anon_unknown.dwarf_a6a7ee::usage(pcVar6,(char *)local_34);\n              iVar8 = new_i;\n              goto LAB_000e704d;\n            }\n            local_34 = (byte *)arg;\n          }\n        }\n        else {\nLAB_000e6da4:\n          arg = (char *)pbVar11;\n          new_i = iVar4;\n          bVar13 = ppcVar7 ==\n                   &(anonymous_namespace)::\n                    parse_short_option(int,char_const**,int,char_const**,int*)::dash_z;\n          if (bVar13) goto LAB_000e6e78;\n        }\n        iVar10 = iVar10 + 1;\n        (**((One_option *)ppcVar7)->reader->_vptr_Struct_var)\n                  (((One_option *)ppcVar7)->reader,*ppcVar1,local_34,this,&this->options_);\n        if (new_i != iVar3) {\n          return new_i;\n        }\n        opt = (byte *)argv[iVar3];\n      } while (*opt == 0x2d);\n    }\n    opt = (byte *)*ppcVar1;\n    pcVar6 = "unknown option";\nLAB_000e6e04:\n    local_30 = &_GLOBAL_OFFSET_TABLE_;\n    pcVar6 = (char *)gettext(pcVar6);\n    anon_unknown.dwarf_a6a7ee::usage(pcVar6,(char *)opt);\n    no_more_options = extraout_EDX;\n    i = (int)local_30;\n  }" { (expression_statement "iVar10 = 1;" (assignment_expression "iVar10 = 1" identifier = number_literal) ;) (ERROR "do {\n        if (((anonymous_namespace)::parse_short_option(int,char_const**,int,char_const**,int*)::\n             dash_z == '\0') &&\n           (iVar8 = __cxa_guard_acquire(&(anonymous_namespace)::\n                                         parse_short_option(int,char_const**,int,char_const**,int*)\n                                         ::dash_z), iVar8 != 0)) {\n          pOVar5 = (One_option *)&DAT_00394fa8;\n          (anonymous_namespace)::parse_short_option(int,char_const**,int,char_const**,int*)::dash_z\n               = &DAT_00394fa8;\n                    /* try { // try from 000e6f0f to 000e6f13 has its CatchHandler @ 000e7065 */\n          std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n          _M_construct<char_const*>\n                    ((basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                     &(anonymous_namespace)::\n                      parse_short_option(int,char_const**,int,char_const**,int*)::dash_z,"","",0);\n          DAT_00394fc0 = "";\n          DAT_00394fb8 = 4;\n          DAT_00394fbc = 0x7a;\n          DAT_00394fc4 = 0;\n          DAT_00394fc8 = "Z-OPTION";\n          DAT_00394fcc = 0;\n          DAT_00394fd0 = 0;\n          DAT_00394fd4 = 0;\n          pcVar6 = strchr((anonymous_namespace)::\n                          parse_short_option(int,char_const**,int,char_const**,int*)::dash_z,0x5f);\n          if (pcVar6 != (char *)0x0) {\n            do {\n              *pcVar6 = '-';\n              pcVar6 = strchr(pcVar6,0x5f);\n            } while (pcVar6 != (char *)0x0);\n            if ((DAT_00394fc4 != 0) && (gold::options::ready_to_register != false)) {\n                    /* try { // try from 000e6fa2 to 000e6fa6 has its CatchHandler @ 000e705e */\n              gold::options::One_option::register_option(pOVar5);\n            }\n          }\n          __cxa_guard_release(&(anonymous_namespace)::\n                               parse_short_option(int,char_const**,int,char_const**,int*)::dash_z);\n          __cxa_atexit(gold::options::One_option::~One_option,\n                       &(anonymous_namespace)::\n                        parse_short_option(int,char_const**,int,char_const**,int*)::dash_z,\n                       &__dso_handle);\n        }\n        bVar2 = opt[iVar10];\n        if (bVar2 == 0x7a) {\n          pbVar9 = opt + iVar10 + 1;\n          ppcVar7 = &(anonymous_namespace)::\n                     parse_short_option(int,char_const**,int,char_const**,int*)::dash_z;\n          local_34 = (byte *)DAT_00394fc8;\n          if (DAT_00394fc8 == (char *)0x0) goto LAB_000e6e4d;\nLAB_000e6d8c:\n          iVar8 = new_i + 1;\n          local_34 = pbVar9;\n          iVar4 = iVar8;\n          pbVar11 = pbVar9;\n          if (*pbVar9 != 0) goto LAB_000e6da4;\n          if (((One_option *)ppcVar7)->optional_arg != false) {\n            local_34 = (byte *)((One_option *)ppcVar7)->default_value;\n            pbVar11 = (byte *)((One_option *)ppcVar7)->default_value;\n            goto LAB_000e6da4;\n          }\n          if (iVar8 < argc) {\n            local_34 = (byte *)argv[iVar8];\n            iVar4 = new_i + 2;\n            pbVar11 = (byte *)argv[iVar8];\n            goto LAB_000e6da4;\n          }\nLAB_000e704d:\n          new_i = iVar8;\n          pcVar6 = "missing argument";\n          goto LAB_000e6e04;\n        }\n        if ((0x7e < (int)(char)bVar2 - 1U) ||\n           (ppcVar7 = (char **)gold::options::short_options[(char)bVar2],\n           (One_option *)ppcVar7 == (One_option *)0x0)) break;\n        local_34 = (byte *)((One_option *)ppcVar7)->helparg;\n        pbVar9 = opt + iVar10 + 1;\n        if (local_34 != (byte *)0x0) goto LAB_000e6d8c;\nLAB_000e6e4d:\n        arg = (char *)0x0;\n        iVar4 = new_i;\n        pbVar11 = (byte *)arg;\n        if (*pbVar9 == 0) {\n          new_i = new_i + 1;\n          bVar13 = ppcVar7 ==\n                   &(anonymous_namespace)::\n                    parse_short_option(int,char_const**,int,char_const**,int*)::dash_z;\n          if (bVar13) {\nLAB_000e6e78:\n            bVar12 = ppcVar7 < &(anonymous_namespace)::\n                                parse_short_option(int,char_const**,int,char_const**,int*)::dash_z;\n            dummy_i = 0;\n            iVar8 = 6;\n            pbVar9 = local_34;\n            pbVar11 = (byte *)0x28e8f9;\n            do {\n              opt = pbVar9;\n              if (iVar8 == 0) break;\n              iVar8 = iVar8 + -1;\n              opt = pbVar9 + (uint)bVar14 * -2 + 1;\n              bVar12 = *pbVar9 < *pbVar11;\n              bVar13 = *pbVar9 == *pbVar11;\n              pbVar9 = opt;\n              pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n            } while (bVar13);\n            if ((!bVar12 && !bVar13) == bVar12) {\n              arg = (char *)(byte *)0x28e8f9;\n            }\n            ppcVar7 = (char **)anon_unknown.dwarf_a6a7ee::parse_long_option\n                                         (1,&arg,true,&arg,&dummy_i);\n            if ((One_option *)ppcVar7 == (One_option *)0x0) {\n              pcVar6 = (char *)gettext("unknown -z option");\n              anon_unknown.dwarf_a6a7ee::usage(pcVar6,(char *)local_34);\n              iVar8 = new_i;\n              goto LAB_000e704d;\n            }\n            local_34 = (byte *)arg;\n          }\n        }\n        else {\nLAB_000e6da4:\n          arg = (char *)pbVar11;\n          new_i = iVar4;\n          bVar13 = ppcVar7 ==\n                   &(anonymous_namespace)::\n                    parse_short_option(int,char_const**,int,char_const**,int*)::dash_z;\n          if (bVar13) goto LAB_000e6e78;\n        }\n        iVar10 = iVar10 + 1;\n        (**((One_option *)ppcVar7)->reader->_vptr_Struct_var)\n                  (((One_option *)ppcVar7)->reader,*ppcVar1,local_34,this,&this->options_);\n        if (new_i != iVar3) {\n          return new_i;\n        }\n        opt = (byte *)argv[iVar3];\n      } while (*opt == 0x2d);\n    }\n    opt = (byte *)*ppcVar1;\n    pcVar6 = "unknown option";\nLAB_000e6e04:\n    local_30 = &_GLOBAL_OFFSET_TABLE_;\n    pcVar6 = (char *)gettext(pcVar6);\n    anon_unknown.dwarf_a6a7ee::usage(pcVar6,(char *)opt);\n    no_more_options = extraout_EDX;\n    i = (int)local_30;" do (compound_statement "{\n        if (((anonymous_namespace)::parse_short_option(int,char_const**,int,char_const**,int*)::\n             dash_z == '\0') &&\n           (iVar8 = __cxa_guard_acquire(&(anonymous_namespace)::\n                                         parse_short_option(int,char_const**,int,char_const**,int*)\n                                         ::dash_z), iVar8 != 0)) {\n          pOVar5 = (One_option *)&DAT_00394fa8;\n          (anonymous_namespace)::parse_short_option(int,char_const**,int,char_const**,int*)::dash_z\n               = &DAT_00394fa8;\n                    /* try { // try from 000e6f0f to 000e6f13 has its CatchHandler @ 000e7065 */\n          std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n          _M_construct<char_const*>\n                    ((basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                     &(anonymous_namespace)::\n                      parse_short_option(int,char_const**,int,char_const**,int*)::dash_z,"","",0);\n          DAT_00394fc0 = "";\n          DAT_00394fb8 = 4;\n          DAT_00394fbc = 0x7a;\n          DAT_00394fc4 = 0;\n          DAT_00394fc8 = "Z-OPTION";\n          DAT_00394fcc = 0;\n          DAT_00394fd0 = 0;\n          DAT_00394fd4 = 0;\n          pcVar6 = strchr((anonymous_namespace)::\n                          parse_short_option(int,char_const**,int,char_const**,int*)::dash_z,0x5f);\n          if (pcVar6 != (char *)0x0) {\n            do {\n              *pcVar6 = '-';\n              pcVar6 = strchr(pcVar6,0x5f);\n            } while (pcVar6 != (char *)0x0);\n            if ((DAT_00394fc4 != 0) && (gold::options::ready_to_register != false)) {\n                    /* try { // try from 000e6fa2 to 000e6fa6 has its CatchHandler @ 000e705e */\n              gold::options::One_option::register_option(pOVar5);\n            }\n          }\n          __cxa_guard_release(&(anonymous_namespace)::\n                               parse_short_option(int,char_const**,int,char_const**,int*)::dash_z);\n          __cxa_atexit(gold::options::One_option::~One_option,\n                       &(anonymous_namespace)::\n                        parse_short_option(int,char_const**,int,char_const**,int*)::dash_z,\n                       &__dso_handle);\n        }\n        bVar2 = opt[iVar10];\n        if (bVar2 == 0x7a) {\n          pbVar9 = opt + iVar10 + 1;\n          ppcVar7 = &(anonymous_namespace)::\n                     parse_short_option(int,char_const**,int,char_const**,int*)::dash_z;\n          local_34 = (byte *)DAT_00394fc8;\n          if (DAT_00394fc8 == (char *)0x0) goto LAB_000e6e4d;\nLAB_000e6d8c:\n          iVar8 = new_i + 1;\n          local_34 = pbVar9;\n          iVar4 = iVar8;\n          pbVar11 = pbVar9;\n          if (*pbVar9 != 0) goto LAB_000e6da4;\n          if (((One_option *)ppcVar7)->optional_arg != false) {\n            local_34 = (byte *)((One_option *)ppcVar7)->default_value;\n            pbVar11 = (byte *)((One_option *)ppcVar7)->default_value;\n            goto LAB_000e6da4;\n          }\n          if (iVar8 < argc) {\n            local_34 = (byte *)argv[iVar8];\n            iVar4 = new_i + 2;\n            pbVar11 = (byte *)argv[iVar8];\n            goto LAB_000e6da4;\n          }\nLAB_000e704d:\n          new_i = iVar8;\n          pcVar6 = "missing argument";\n          goto LAB_000e6e04;\n        }\n        if ((0x7e < (int)(char)bVar2 - 1U) ||\n           (ppcVar7 = (char **)gold::options::short_options[(char)bVar2],\n           (One_option *)ppcVar7 == (One_option *)0x0)) break;\n        local_34 = (byte *)((One_option *)ppcVar7)->helparg;\n        pbVar9 = opt + iVar10 + 1;\n        if (local_34 != (byte *)0x0) goto LAB_000e6d8c;\nLAB_000e6e4d:\n        arg = (char *)0x0;\n        iVar4 = new_i;\n        pbVar11 = (byte *)arg;\n        if (*pbVar9 == 0) {\n          new_i = new_i + 1;\n          bVar13 = ppcVar7 ==\n                   &(anonymous_namespace)::\n                    parse_short_option(int,char_const**,int,char_const**,int*)::dash_z;\n          if (bVar13) {\nLAB_000e6e78:\n            bVar12 = ppcVar7 < &(anonymous_namespace)::\n                                parse_short_option(int,char_const**,int,char_const**,int*)::dash_z;\n            dummy_i = 0;\n            iVar8 = 6;\n            pbVar9 = local_34;\n            pbVar11 = (byte *)0x28e8f9;\n            do {\n              opt = pbVar9;\n              if (iVar8 == 0) break;\n              iVar8 = iVar8 + -1;\n              opt = pbVar9 + (uint)bVar14 * -2 + 1;\n              bVar12 = *pbVar9 < *pbVar11;\n              bVar13 = *pbVar9 == *pbVar11;\n              pbVar9 = opt;\n              pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n            } while (bVar13);\n            if ((!bVar12 && !bVar13) == bVar12) {\n              arg = (char *)(byte *)0x28e8f9;\n            }\n            ppcVar7 = (char **)anon_unknown.dwarf_a6a7ee::parse_long_option\n                                         (1,&arg,true,&arg,&dummy_i);\n            if ((One_option *)ppcVar7 == (One_option *)0x0) {\n              pcVar6 = (char *)gettext("unknown -z option");\n              anon_unknown.dwarf_a6a7ee::usage(pcVar6,(char *)local_34);\n              iVar8 = new_i;\n              goto LAB_000e704d;\n            }\n            local_34 = (byte *)arg;\n          }\n        }\n        else {\nLAB_000e6da4:\n          arg = (char *)pbVar11;\n          new_i = iVar4;\n          bVar13 = ppcVar7 ==\n                   &(anonymous_namespace)::\n                    parse_short_option(int,char_const**,int,char_const**,int*)::dash_z;\n          if (bVar13) goto LAB_000e6e78;\n        }\n        iVar10 = iVar10 + 1;\n        (**((One_option *)ppcVar7)->reader->_vptr_Struct_var)\n                  (((One_option *)ppcVar7)->reader,*ppcVar1,local_34,this,&this->options_);\n        if (new_i != iVar3) {\n          return new_i;\n        }\n        opt = (byte *)argv[iVar3];\n      } while (*opt == 0x2d);\n    }" { (if_statement "if (((anonymous_namespace)::parse_short_option(int,char_const**,int,char_const**,int*)::\n             dash_z == '\0') &&\n           (iVar8 = __cxa_guard_acquire(&(anonymous_namespace)::\n                                         parse_short_option(int,char_const**,int,char_const**,int*)\n                                         ::dash_z), iVar8 != 0)) {\n          pOVar5 = (One_option *)&DAT_00394fa8;\n          (anonymous_namespace)::parse_short_option(int,char_const**,int,char_const**,int*)::dash_z\n               = &DAT_00394fa8;\n                    /* try { // try from 000e6f0f to 000e6f13 has its CatchHandler @ 000e7065 */\n          std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n          _M_construct<char_const*>\n                    ((basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                     &(anonymous_namespace)::\n                      parse_short_option(int,char_const**,int,char_const**,int*)::dash_z,"","",0);\n          DAT_00394fc0 = "";\n          DAT_00394fb8 = 4;\n          DAT_00394fbc = 0x7a;\n          DAT_00394fc4 = 0;\n          DAT_00394fc8 = "Z-OPTION";\n          DAT_00394fcc = 0;\n          DAT_00394fd0 = 0;\n          DAT_00394fd4 = 0;\n          pcVar6 = strchr((anonymous_namespace)::\n                          parse_short_option(int,char_const**,int,char_const**,int*)::dash_z,0x5f);\n          if (pcVar6 != (char *)0x0) {\n            do {\n              *pcVar6 = '-';\n              pcVar6 = strchr(pcVar6,0x5f);\n            } while (pcVar6 != (char *)0x0);\n            if ((DAT_00394fc4 != 0) && (gold::options::ready_to_register != false)) {\n                    /* try { // try from 000e6fa2 to 000e6fa6 has its CatchHandler @ 000e705e */\n              gold::options::One_option::register_option(pOVar5);\n            }\n          }\n          __cxa_guard_release(&(anonymous_namespace)::\n                               parse_short_option(int,char_const**,int,char_const**,int*)::dash_z);\n          __cxa_atexit(gold::options::One_option::~One_option,\n                       &(anonymous_namespace)::\n                        parse_short_option(int,char_const**,int,char_const**,int*)::dash_z,\n                       &__dso_handle);\n        }\n        bVar2 = opt[iVar10];\n        if (bVar2 == 0x7a) {\n          pbVar9 = opt + iVar10 + 1;\n          ppcVar7 = &(anonymous_namespace)::\n                     parse_short_option(int,char_const**,int,char_const**,int*)::dash_z;\n          local_34 = (byte *)DAT_00394fc8;\n          if (DAT_00394fc8 == (char *)0x0) goto LAB_000e6e4d;\nLAB_000e6d8c:\n          iVar8 = new_i + 1;\n          local_34 = pbVar9;\n          iVar4 = iVar8;\n          pbVar11 = pbVar9;\n          if (*pbVar9 != 0) goto LAB_000e6da4;\n          if (((One_option *)ppcVar7)->optional_arg != false) {\n            local_34 = (byte *)((One_option *)ppcVar7)->default_value;\n            pbVar11 = (byte *)((One_option *)ppcVar7)->default_value;\n            goto LAB_000e6da4;\n          }\n          if (iVar8 < argc) {\n            local_34 = (byte *)argv[iVar8];\n            iVar4 = new_i + 2;\n            pbVar11 = (byte *)argv[iVar8];\n            goto LAB_000e6da4;\n          }\nLAB_000e704d:\n          new_i = iVar8;\n          pcVar6 = "missing argument";\n          goto LAB_000e6e04;\n        }\n        if ((0x7e < (int)(char)bVar2 - 1U) ||\n           (ppcVar7 = (char **)gold::options::short_options[(char)bVar2],\n           (One_option *)ppcVar7 == (One_option *)0x0)) break;\n        local_34 = (byte *)((One_option *)ppcVar7)->helparg;\n        pbVar9 = opt + iVar10 + 1;\n        if (local_34 != (byte *)0x0) goto LAB_000e6d8c;\nLAB_000e6e4d:\n        arg = (char *)0x0;\n        iVar4 = new_i;\n        pbVar11 = (byte *)arg;\n        if (*pbVar9 == 0) {\n          new_i = new_i + 1;\n          bVar13 = ppcVar7 ==\n                   &(anonymous_namespace)::\n                    parse_short_option(int,char_const**,int,char_const**,int*)::dash_z;\n          if (bVar13) {\nLAB_000e6e78:\n            bVar12 = ppcVar7 < &(anonymous_namespace)::\n                                parse_short_option(int,char_const**,int,char_const**,int*)::dash_z;\n            dummy_i = 0;\n            iVar8 = 6;\n            pbVar9 = local_34;\n            pbVar11 = (byte *)0x28e8f9;\n            do {\n              opt = pbVar9;\n              if (iVar8 == 0) break;\n              iVar8 = iVar8 + -1;\n              opt = pbVar9 + (uint)bVar14 * -2 + 1;\n              bVar12 = *pbVar9 < *pbVar11;\n              bVar13 = *pbVar9 == *pbVar11;\n              pbVar9 = opt;\n              pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n            } while (bVar13);\n            if ((!bVar12 && !bVar13) == bVar12) {\n              arg = (char *)(byte *)0x28e8f9;\n            }\n            ppcVar7 = (char **)anon_unknown.dwarf_a6a7ee::parse_long_option\n                                         (1,&arg,true,&arg,&dummy_i);\n            if ((One_option *)ppcVar7 == (One_option *)0x0) {\n              pcVar6 = (char *)gettext("unknown -z option");\n              anon_unknown.dwarf_a6a7ee::usage(pcVar6,(char *)local_34);\n              iVar8 = new_i;\n              goto LAB_000e704d;\n            }\n            local_34 = (byte *)arg;\n          }\n        }\n        else {\nLAB_000e6da4:\n          arg = (char *)pbVar11;\n          new_i = iVar4;\n          bVar13 = ppcVar7 ==\n                   &(anonymous_namespace)::\n                    parse_short_option(int,char_const**,int,char_const**,int*)::dash_z;\n          if (bVar13) goto LAB_000e6e78;\n        }\n        iVar10 = iVar10 + 1;\n        (**((One_option *)ppcVar7)->reader->_vptr_Struct_var)\n                  (((One_option *)ppcVar7)->reader,*ppcVar1,local_34,this,&this->options_);\n        if (new_i != iVar3) {\n          return new_i;\n        }\n        opt = (byte *)argv[iVar3];\n      }" if (parenthesized_expression "(((anonymous_namespace)::parse_short_option(int,char_const**,int,char_const**,int*)::\n             dash_z == '\0') &&\n           (iVar8 = __cxa_guard_acquire(&(anonymous_namespace)::\n                                         parse_short_option(int,char_const**,int,char_const**,int*)\n                                         ::dash_z), iVar8 != 0))" ( (binary_expression "((anonymous_namespace)::parse_short_option(int,char_const**,int,char_const**,int*)::\n             dash_z == '\0') &&\n           (iVar8 = __cxa_guard_acquire(&(anonymous_namespace)::\n                                         parse_short_option(int,char_const**,int,char_const**,int*)\n                                         ::dash_z), iVar8 != 0))" (parenthesized_expression "((anonymous_namespace)::parse_short_option(int,char_const**,int,char_const**,int*)::\n             dash_z == '\0')" ( (ERROR "(anonymous_namespace)::parse_short_option(int,char_const**,int,char_const**,int*)::" (parenthesized_expression "(anonymous_namespace)" ( identifier )) : : (type_descriptor "parse_short_option(int,char_const**,int,char_const**,int*)" type_identifier (abstract_function_declarator "(int,char_const**,int,char_const**,int*)" (parameter_list "(int,char_const**,int,char_const**,int*)" ( (parameter_declaration "int" primitive_type) , (parameter_declaration "char_const**" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) , (parameter_declaration "int" primitive_type) , (parameter_declaration "char_const**" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) , (parameter_declaration "int*" primitive_type (abstract_pointer_declarator "*" *)) )))) : :) (binary_expression "dash_z == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(iVar8 = __cxa_guard_acquire(&(anonymous_namespace)::\n                                         parse_short_option(int,char_const**,int,char_const**,int*)\n                                         ::dash_z), iVar8 != 0))" ( (assignment_expression "iVar8 = __cxa_guard_acquire(&(anonymous_namespace)::\n                                         parse_short_option(int,char_const**,int,char_const**,int*)\n                                         ::dash_z), iVar8 != 0)" identifier = (call_expression "__cxa_guard_acquire(&(anonymous_namespace)::\n                                         parse_short_option(int,char_const**,int,char_const**,int*)\n                                         ::dash_z), iVar8 != 0)" identifier (argument_list "(&(anonymous_namespace)::\n                                         parse_short_option(int,char_const**,int,char_const**,int*)\n                                         ::dash_z), iVar8 != 0)" ( (ERROR "&(anonymous_namespace)::" (pointer_expression "&(anonymous_namespace)" & (parenthesized_expression "(anonymous_namespace)" ( identifier ))) : :) (call_expression "parse_short_option(int,char_const**,int,char_const**,int*)\n                                         ::dash_z)" identifier (argument_list "(int,char_const**,int,char_const**,int*)\n                                         ::dash_z)" ( identifier , (binary_expression "char_const**" identifier * (pointer_expression "*" * identifier)) , identifier , (binary_expression "char_const**" identifier * (pointer_expression "*" * identifier)) , (binary_expression "int*)\n                                         ::dash_z" identifier * (ERROR ")\n                                         ::" ) : :) identifier) ))) , (binary_expression "iVar8 != 0" identifier != number_literal) )))) ))) )) (compound_statement "{\n          pOVar5 = (One_option *)&DAT_00394fa8;\n          (anonymous_namespace)::parse_short_option(int,char_const**,int,char_const**,int*)::dash_z\n               = &DAT_00394fa8;\n                    /* try { // try from 000e6f0f to 000e6f13 has its CatchHandler @ 000e7065 */\n          std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n          _M_construct<char_const*>\n                    ((basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                     &(anonymous_namespace)::\n                      parse_short_option(int,char_const**,int,char_const**,int*)::dash_z,"","",0);\n          DAT_00394fc0 = "";\n          DAT_00394fb8 = 4;\n          DAT_00394fbc = 0x7a;\n          DAT_00394fc4 = 0;\n          DAT_00394fc8 = "Z-OPTION";\n          DAT_00394fcc = 0;\n          DAT_00394fd0 = 0;\n          DAT_00394fd4 = 0;\n          pcVar6 = strchr((anonymous_namespace)::\n                          parse_short_option(int,char_const**,int,char_const**,int*)::dash_z,0x5f);\n          if (pcVar6 != (char *)0x0) {\n            do {\n              *pcVar6 = '-';\n              pcVar6 = strchr(pcVar6,0x5f);\n            } while (pcVar6 != (char *)0x0);\n            if ((DAT_00394fc4 != 0) && (gold::options::ready_to_register != false)) {\n                    /* try { // try from 000e6fa2 to 000e6fa6 has its CatchHandler @ 000e705e */\n              gold::options::One_option::register_option(pOVar5);\n            }\n          }\n          __cxa_guard_release(&(anonymous_namespace)::\n                               parse_short_option(int,char_const**,int,char_const**,int*)::dash_z);\n          __cxa_atexit(gold::options::One_option::~One_option,\n                       &(anonymous_namespace)::\n                        parse_short_option(int,char_const**,int,char_const**,int*)::dash_z,\n                       &__dso_handle);\n        }\n        bVar2 = opt[iVar10];\n        if (bVar2 == 0x7a) {\n          pbVar9 = opt + iVar10 + 1;\n          ppcVar7 = &(anonymous_namespace)::\n                     parse_short_option(int,char_const**,int,char_const**,int*)::dash_z;\n          local_34 = (byte *)DAT_00394fc8;\n          if (DAT_00394fc8 == (char *)0x0) goto LAB_000e6e4d;\nLAB_000e6d8c:\n          iVar8 = new_i + 1;\n          local_34 = pbVar9;\n          iVar4 = iVar8;\n          pbVar11 = pbVar9;\n          if (*pbVar9 != 0) goto LAB_000e6da4;\n          if (((One_option *)ppcVar7)->optional_arg != false) {\n            local_34 = (byte *)((One_option *)ppcVar7)->default_value;\n            pbVar11 = (byte *)((One_option *)ppcVar7)->default_value;\n            goto LAB_000e6da4;\n          }\n          if (iVar8 < argc) {\n            local_34 = (byte *)argv[iVar8];\n            iVar4 = new_i + 2;\n            pbVar11 = (byte *)argv[iVar8];\n            goto LAB_000e6da4;\n          }\nLAB_000e704d:\n          new_i = iVar8;\n          pcVar6 = "missing argument";\n          goto LAB_000e6e04;\n        }\n        if ((0x7e < (int)(char)bVar2 - 1U) ||\n           (ppcVar7 = (char **)gold::options::short_options[(char)bVar2],\n           (One_option *)ppcVar7 == (One_option *)0x0)) break;\n        local_34 = (byte *)((One_option *)ppcVar7)->helparg;\n        pbVar9 = opt + iVar10 + 1;\n        if (local_34 != (byte *)0x0) goto LAB_000e6d8c;\nLAB_000e6e4d:\n        arg = (char *)0x0;\n        iVar4 = new_i;\n        pbVar11 = (byte *)arg;\n        if (*pbVar9 == 0) {\n          new_i = new_i + 1;\n          bVar13 = ppcVar7 ==\n                   &(anonymous_namespace)::\n                    parse_short_option(int,char_const**,int,char_const**,int*)::dash_z;\n          if (bVar13) {\nLAB_000e6e78:\n            bVar12 = ppcVar7 < &(anonymous_namespace)::\n                                parse_short_option(int,char_const**,int,char_const**,int*)::dash_z;\n            dummy_i = 0;\n            iVar8 = 6;\n            pbVar9 = local_34;\n            pbVar11 = (byte *)0x28e8f9;\n            do {\n              opt = pbVar9;\n              if (iVar8 == 0) break;\n              iVar8 = iVar8 + -1;\n              opt = pbVar9 + (uint)bVar14 * -2 + 1;\n              bVar12 = *pbVar9 < *pbVar11;\n              bVar13 = *pbVar9 == *pbVar11;\n              pbVar9 = opt;\n              pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n            } while (bVar13);\n            if ((!bVar12 && !bVar13) == bVar12) {\n              arg = (char *)(byte *)0x28e8f9;\n            }\n            ppcVar7 = (char **)anon_unknown.dwarf_a6a7ee::parse_long_option\n                                         (1,&arg,true,&arg,&dummy_i);\n            if ((One_option *)ppcVar7 == (One_option *)0x0) {\n              pcVar6 = (char *)gettext("unknown -z option");\n              anon_unknown.dwarf_a6a7ee::usage(pcVar6,(char *)local_34);\n              iVar8 = new_i;\n              goto LAB_000e704d;\n            }\n            local_34 = (byte *)arg;\n          }\n        }\n        else {\nLAB_000e6da4:\n          arg = (char *)pbVar11;\n          new_i = iVar4;\n          bVar13 = ppcVar7 ==\n                   &(anonymous_namespace)::\n                    parse_short_option(int,char_const**,int,char_const**,int*)::dash_z;\n          if (bVar13) goto LAB_000e6e78;\n        }\n        iVar10 = iVar10 + 1;\n        (**((One_option *)ppcVar7)->reader->_vptr_Struct_var)\n                  (((One_option *)ppcVar7)->reader,*ppcVar1,local_34,this,&this->options_);\n        if (new_i != iVar3) {\n          return new_i;\n        }\n        opt = (byte *)argv[iVar3];\n      }" { (expression_statement "pOVar5 = (One_option *)&DAT_00394fa8;" (assignment_expression "pOVar5 = (One_option *)&DAT_00394fa8" identifier = (cast_expression "(One_option *)&DAT_00394fa8" ( (type_descriptor "One_option *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00394fa8" & identifier))) ;) (ERROR "(anonymous_namespace)::" (parenthesized_expression "(anonymous_namespace)" ( identifier )) : :) (expression_statement "parse_short_option(int,char_const**,int,char_const**,int*)::dash_z\n               = &DAT_00394fa8;" (call_expression "parse_short_option(int,char_const**,int,char_const**,int*)::dash_z\n               = &DAT_00394fa8" identifier (argument_list "(int,char_const**,int,char_const**,int*)::dash_z\n               = &DAT_00394fa8" ( identifier , (binary_expression "char_const**" identifier * (pointer_expression "*" * identifier)) , identifier , (binary_expression "char_const**" identifier * (pointer_expression "*" * identifier)) , (binary_expression "int*)::dash_z\n               = &DAT_00394fa8" identifier * (ERROR ")::" ) : :) (assignment_expression "dash_z\n               = &DAT_00394fa8" identifier = (pointer_expression "&DAT_00394fa8" & identifier))) ))) ;) comment (labeled_statement "std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n          _M_construct<char_const*>\n                    ((basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                     &(anonymous_namespace)::\n                      parse_short_option(int,char_const**,int,char_const**,int*)::dash_z,"","",0);" statement_identifier (ERROR "::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>:" : : (comma_expression "__cxx11::basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::basic_string<char,_std::char_traits<char>" : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : : (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > :) : (expression_statement "_M_construct<char_const*>\n                    ((basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                     &(anonymous_namespace)::\n                      parse_short_option(int,char_const**,int,char_const**,int*)::dash_z,"","",0);" (binary_expression "_M_construct<char_const*>\n                    ((basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                     &(anonymous_namespace)::\n                      parse_short_option(int,char_const**,int,char_const**,int*)::dash_z,"","",0)" (binary_expression "_M_construct<char_const" identifier < identifier) (ERROR "*" *) > (parenthesized_expression "((basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                     &(anonymous_namespace)::\n                      parse_short_option(int,char_const**,int,char_const**,int*)::dash_z,"","",0)" ( (parenthesized_expression "(basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                     &(anonymous_namespace)::\n                      parse_short_option(int,char_const**,int,char_const**,int*)::dash_z,"","",0)" ( (ERROR "basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                     &(anonymous_namespace)::\n                      parse_short_option(int,char_const**,int,char_const**,int*)::" (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<char>_> *)\n                     &(anonymous_namespace)" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (pointer_expression "*)\n                     &(anonymous_namespace)" * (ERROR ")" )) (pointer_expression "&(anonymous_namespace)" & (parenthesized_expression "(anonymous_namespace)" ( identifier ))))) : : (type_descriptor "parse_short_option(int,char_const**,int,char_const**,int*)" type_identifier (abstract_function_declarator "(int,char_const**,int,char_const**,int*)" (parameter_list "(int,char_const**,int,char_const**,int*)" ( (parameter_declaration "int" primitive_type) , (parameter_declaration "char_const**" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) , (parameter_declaration "int" primitive_type) , (parameter_declaration "char_const**" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) , (parameter_declaration "int*" primitive_type (abstract_pointer_declarator "*" *)) )))) : :) (comma_expression "dash_z,"","",0" identifier , (comma_expression ""","",0" (string_literal """" " ") , (comma_expression """,0" (string_literal """" " ") , number_literal))) )) ))) ;)) (expression_statement "DAT_00394fc0 = "";" (assignment_expression "DAT_00394fc0 = """ identifier = (string_literal """" " ")) ;) (expression_statement "DAT_00394fb8 = 4;" (assignment_expression "DAT_00394fb8 = 4" identifier = number_literal) ;) (expression_statement "DAT_00394fbc = 0x7a;" (assignment_expression "DAT_00394fbc = 0x7a" identifier = number_literal) ;) (expression_statement "DAT_00394fc4 = 0;" (assignment_expression "DAT_00394fc4 = 0" identifier = number_literal) ;) (expression_statement "DAT_00394fc8 = "Z-OPTION";" (assignment_expression "DAT_00394fc8 = "Z-OPTION"" identifier = (string_literal ""Z-OPTION"" " string_content ")) ;) (expression_statement "DAT_00394fcc = 0;" (assignment_expression "DAT_00394fcc = 0" identifier = number_literal) ;) (expression_statement "DAT_00394fd0 = 0;" (assignment_expression "DAT_00394fd0 = 0" identifier = number_literal) ;) (expression_statement "DAT_00394fd4 = 0;" (assignment_expression "DAT_00394fd4 = 0" identifier = number_literal) ;) (expression_statement "pcVar6 = strchr((anonymous_namespace)::\n                          parse_short_option(int,char_const**,int,char_const**,int*)::dash_z,0x5f);" (assignment_expression "pcVar6 = strchr((anonymous_namespace)::\n                          parse_short_option(int,char_const**,int,char_const**,int*)::dash_z,0x5f)" identifier = (call_expression "strchr((anonymous_namespace)::\n                          parse_short_option(int,char_const**,int,char_const**,int*)::dash_z,0x5f)" identifier (argument_list "((anonymous_namespace)::\n                          parse_short_option(int,char_const**,int,char_const**,int*)::dash_z,0x5f)" ( (ERROR "(anonymous_namespace)::" (parenthesized_expression "(anonymous_namespace)" ( identifier )) : :) (call_expression "parse_short_option(int,char_const**,int,char_const**,int*)::dash_z,0x5f)" identifier (argument_list "(int,char_const**,int,char_const**,int*)::dash_z,0x5f)" ( identifier , (binary_expression "char_const**" identifier * (pointer_expression "*" * identifier)) , identifier , (binary_expression "char_const**" identifier * (pointer_expression "*" * identifier)) , (binary_expression "int*)::dash_z" identifier * (ERROR ")::" ) : :) identifier) , number_literal ))) )))) ;) (if_statement "if (pcVar6 != (char *)0x0) {\n            do {\n              *pcVar6 = '-';\n              pcVar6 = strchr(pcVar6,0x5f);\n            } while (pcVar6 != (char *)0x0);\n            if ((DAT_00394fc4 != 0) && (gold::options::ready_to_register != false)) {\n                    /* try { // try from 000e6fa2 to 000e6fa6 has its CatchHandler @ 000e705e */\n              gold::options::One_option::register_option(pOVar5);\n            }\n          }" if (parenthesized_expression "(pcVar6 != (char *)0x0)" ( (binary_expression "pcVar6 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            do {\n              *pcVar6 = '-';\n              pcVar6 = strchr(pcVar6,0x5f);\n            } while (pcVar6 != (char *)0x0);\n            if ((DAT_00394fc4 != 0) && (gold::options::ready_to_register != false)) {\n                    /* try { // try from 000e6fa2 to 000e6fa6 has its CatchHandler @ 000e705e */\n              gold::options::One_option::register_option(pOVar5);\n            }\n          }" { (do_statement "do {\n              *pcVar6 = '-';\n              pcVar6 = strchr(pcVar6,0x5f);\n            } while (pcVar6 != (char *)0x0);" do (compound_statement "{\n              *pcVar6 = '-';\n              pcVar6 = strchr(pcVar6,0x5f);\n            }" { (expression_statement "*pcVar6 = '-';" (assignment_expression "*pcVar6 = '-'" (pointer_expression "*pcVar6" * identifier) = (char_literal "'-'" ' character ')) ;) (expression_statement "pcVar6 = strchr(pcVar6,0x5f);" (assignment_expression "pcVar6 = strchr(pcVar6,0x5f)" identifier = (call_expression "strchr(pcVar6,0x5f)" identifier (argument_list "(pcVar6,0x5f)" ( identifier , number_literal )))) ;) }) while (parenthesized_expression "(pcVar6 != (char *)0x0)" ( (binary_expression "pcVar6 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (if_statement "if ((DAT_00394fc4 != 0) && (gold::options::ready_to_register != false)) {\n                    /* try { // try from 000e6fa2 to 000e6fa6 has its CatchHandler @ 000e705e */\n              gold::options::One_option::register_option(pOVar5);\n            }" if (parenthesized_expression "((DAT_00394fc4 != 0) && (gold::options::ready_to_register != false))" ( (binary_expression "(DAT_00394fc4 != 0) && (gold::options::ready_to_register != false)" (parenthesized_expression "(DAT_00394fc4 != 0)" ( (binary_expression "DAT_00394fc4 != 0" identifier != number_literal) )) && (parenthesized_expression "(gold::options::ready_to_register != false)" ( (ERROR "gold::options::" identifier : : identifier : :) (binary_expression "ready_to_register != false" identifier != false) ))) )) (compound_statement "{\n                    /* try { // try from 000e6fa2 to 000e6fa6 has its CatchHandler @ 000e705e */\n              gold::options::One_option::register_option(pOVar5);\n            }" { comment (labeled_statement "gold::options::One_option::register_option(pOVar5);" statement_identifier : (ERROR ":" :) (labeled_statement "options::One_option::register_option(pOVar5);" statement_identifier : (ERROR ":" :) (labeled_statement "One_option::register_option(pOVar5);" statement_identifier : (ERROR ":" :) (expression_statement "register_option(pOVar5);" (call_expression "register_option(pOVar5)" identifier (argument_list "(pOVar5)" ( identifier ))) ;)))) })) })) (expression_statement "__cxa_guard_release(&(anonymous_namespace)::\n                               parse_short_option(int,char_const**,int,char_const**,int*)::dash_z);\n          __cxa_atexit(gold::options::One_option::~One_option,\n                       &(anonymous_namespace)::\n                        parse_short_option(int,char_const**,int,char_const**,int*)::dash_z,\n                       &__dso_handle);\n        }\n        bVar2 = opt[iVar10];\n        if (bVar2 == 0x7a) {\n          pbVar9 = opt + iVar10 + 1;\n          ppcVar7 = &(anonymous_namespace)::\n                     parse_short_option(int,char_const**,int,char_const**,int*)::dash_z;\n          local_34 = (byte *)DAT_00394fc8;\n          if (DAT_00394fc8 == (char *)0x0) goto LAB_000e6e4d;\nLAB_000e6d8c:\n          iVar8 = new_i + 1;\n          local_34 = pbVar9;\n          iVar4 = iVar8;\n          pbVar11 = pbVar9;\n          if (*pbVar9 != 0) goto LAB_000e6da4;\n          if (((One_option *)ppcVar7)->optional_arg != false) {\n            local_34 = (byte *)((One_option *)ppcVar7)->default_value;\n            pbVar11 = (byte *)((One_option *)ppcVar7)->default_value;\n            goto LAB_000e6da4;\n          }\n          if (iVar8 < argc) {\n            local_34 = (byte *)argv[iVar8];\n            iVar4 = new_i + 2;\n            pbVar11 = (byte *)argv[iVar8];\n            goto LAB_000e6da4;\n          }\nLAB_000e704d:\n          new_i = iVar8;\n          pcVar6 = "missing argument";\n          goto LAB_000e6e04;\n        }\n        if ((0x7e < (int)(char)bVar2 - 1U) ||\n           (ppcVar7 = (char **)gold::options::short_options[(char)bVar2],\n           (One_option *)ppcVar7 == (One_option *)0x0)) break;" (binary_expression "__cxa_guard_release(&(anonymous_namespace)::\n                               parse_short_option(int,char_const**,int,char_const**,int*)::dash_z);\n          __cxa_atexit(gold::options::One_option::~One_option,\n                       &(anonymous_namespace)::\n                        parse_short_option(int,char_const**,int,char_const**,int*)::dash_z,\n                       &__dso_handle);\n        }\n        bVar2 = opt[iVar10];\n        if (bVar2 == 0x7a) {\n          pbVar9 = opt + iVar10 + 1;\n          ppcVar7 = &(anonymous_namespace)::\n                     parse_short_option(int,char_const**,int,char_const**,int*)::dash_z;\n          local_34 = (byte *)DAT_00394fc8;\n          if (DAT_00394fc8 == (char *)0x0) goto LAB_000e6e4d;\nLAB_000e6d8c:\n          iVar8 = new_i + 1;\n          local_34 = pbVar9;\n          iVar4 = iVar8;\n          pbVar11 = pbVar9;\n          if (*pbVar9 != 0) goto LAB_000e6da4;\n          if (((One_option *)ppcVar7)->optional_arg != false) {\n            local_34 = (byte *)((One_option *)ppcVar7)->default_value;\n            pbVar11 = (byte *)((One_option *)ppcVar7)->default_value;\n            goto LAB_000e6da4;\n          }\n          if (iVar8 < argc) {\n            local_34 = (byte *)argv[iVar8];\n            iVar4 = new_i + 2;\n            pbVar11 = (byte *)argv[iVar8];\n            goto LAB_000e6da4;\n          }\nLAB_000e704d:\n          new_i = iVar8;\n          pcVar6 = "missing argument";\n          goto LAB_000e6e04;\n        }\n        if ((0x7e < (int)(char)bVar2 - 1U) ||\n           (ppcVar7 = (char **)gold::options::short_options[(char)bVar2],\n           (One_option *)ppcVar7 == (One_option *)0x0)" (call_expression "__cxa_guard_release(&(anonymous_namespace)::\n                               parse_short_option(int,char_const**,int,char_const**,int*)::dash_z);\n          __cxa_atexit(gold::options::One_option::~One_option,\n                       &(anonymous_namespace)::\n                        parse_short_option(int,char_const**,int,char_const**,int*)::dash_z,\n                       &__dso_handle);\n        }\n        bVar2 = opt[iVar10];\n        if (bVar2 == 0x7a) {\n          pbVar9 = opt + iVar10 + 1;\n          ppcVar7 = &(anonymous_namespace)::\n                     parse_short_option(int,char_const**,int,char_const**,int*)::dash_z;\n          local_34 = (byte *)DAT_00394fc8;\n          if (DAT_00394fc8 == (char *)0x0) goto LAB_000e6e4d;\nLAB_000e6d8c:\n          iVar8 = new_i + 1;\n          local_34 = pbVar9;\n          iVar4 = iVar8;\n          pbVar11 = pbVar9;\n          if (*pbVar9 != 0) goto LAB_000e6da4;\n          if (((One_option *)ppcVar7)->optional_arg != false) {\n            local_34 = (byte *)((One_option *)ppcVar7)->default_value;\n            pbVar11 = (byte *)((One_option *)ppcVar7)->default_value;\n            goto LAB_000e6da4;\n          }\n          if (iVar8 < argc) {\n            local_34 = (byte *)argv[iVar8];\n            iVar4 = new_i + 2;\n            pbVar11 = (byte *)argv[iVar8];\n            goto LAB_000e6da4;\n          }\nLAB_000e704d:\n          new_i = iVar8;\n          pcVar6 = "missing argument";\n          goto LAB_000e6e04;\n        }\n        if ((0x7e < (int)(char)bVar2 - 1U)" identifier (argument_list "(&(anonymous_namespace)::\n                               parse_short_option(int,char_const**,int,char_const**,int*)::dash_z);\n          __cxa_atexit(gold::options::One_option::~One_option,\n                       &(anonymous_namespace)::\n                        parse_short_option(int,char_const**,int,char_const**,int*)::dash_z,\n                       &__dso_handle);\n        }\n        bVar2 = opt[iVar10];\n        if (bVar2 == 0x7a) {\n          pbVar9 = opt + iVar10 + 1;\n          ppcVar7 = &(anonymous_namespace)::\n                     parse_short_option(int,char_const**,int,char_const**,int*)::dash_z;\n          local_34 = (byte *)DAT_00394fc8;\n          if (DAT_00394fc8 == (char *)0x0) goto LAB_000e6e4d;\nLAB_000e6d8c:\n          iVar8 = new_i + 1;\n          local_34 = pbVar9;\n          iVar4 = iVar8;\n          pbVar11 = pbVar9;\n          if (*pbVar9 != 0) goto LAB_000e6da4;\n          if (((One_option *)ppcVar7)->optional_arg != false) {\n            local_34 = (byte *)((One_option *)ppcVar7)->default_value;\n            pbVar11 = (byte *)((One_option *)ppcVar7)->default_value;\n            goto LAB_000e6da4;\n          }\n          if (iVar8 < argc) {\n            local_34 = (byte *)argv[iVar8];\n            iVar4 = new_i + 2;\n            pbVar11 = (byte *)argv[iVar8];\n            goto LAB_000e6da4;\n          }\nLAB_000e704d:\n          new_i = iVar8;\n          pcVar6 = "missing argument";\n          goto LAB_000e6e04;\n        }\n        if ((0x7e < (int)(char)bVar2 - 1U)" ( (ERROR "&(anonymous_namespace)::\n                               parse_short_option(int,char_const**,int,char_const**,int*)::dash_z);" (pointer_expression "&(anonymous_namespace)" & (parenthesized_expression "(anonymous_namespace)" ( identifier ))) : : (call_expression "parse_short_option(int,char_const**,int,char_const**,int*)::dash_z)" identifier (argument_list "(int,char_const**,int,char_const**,int*)::dash_z)" ( identifier , (binary_expression "char_const**" identifier * (pointer_expression "*" * identifier)) , identifier , (binary_expression "char_const**" identifier * (pointer_expression "*" * identifier)) , (binary_expression "int*)::dash_z" identifier * (ERROR ")::" ) : :) identifier) ))) ;) (binary_expression "__cxa_atexit(gold::options::One_option::~One_option,\n                       &(anonymous_namespace)::\n                        parse_short_option(int,char_const**,int,char_const**,int*)::dash_z,\n                       &__dso_handle);\n        }\n        bVar2 = opt[iVar10];\n        if (bVar2 == 0x7a) {\n          pbVar9 = opt + iVar10 + 1;\n          ppcVar7 = &(anonymous_namespace)::\n                     parse_short_option(int,char_const**,int,char_const**,int*)::dash_z;\n          local_34 = (byte *)DAT_00394fc8;\n          if (DAT_00394fc8 == (char *)0x0) goto LAB_000e6e4d;\nLAB_000e6d8c:\n          iVar8 = new_i + 1;\n          local_34 = pbVar9;\n          iVar4 = iVar8;\n          pbVar11 = pbVar9;\n          if (*pbVar9 != 0) goto LAB_000e6da4;\n          if (((One_option *)ppcVar7)->optional_arg != false) {\n            local_34 = (byte *)((One_option *)ppcVar7)->default_value;\n            pbVar11 = (byte *)((One_option *)ppcVar7)->default_value;\n            goto LAB_000e6da4;\n          }\n          if (iVar8 < argc) {\n            local_34 = (byte *)argv[iVar8];\n            iVar4 = new_i + 2;\n            pbVar11 = (byte *)argv[iVar8];\n            goto LAB_000e6da4;\n          }\nLAB_000e704d:\n          new_i = iVar8;\n          pcVar6 = "missing argument";\n          goto LAB_000e6e04;\n        }\n        if ((0x7e < (int)(char)bVar2 - 1U" (call_expression "__cxa_atexit(gold::options::One_option::~One_option,\n                       &(anonymous_namespace)::\n                        parse_short_option(int,char_const**,int,char_const**,int*)::dash_z,\n                       &__dso_handle);\n        }\n        bVar2 = opt[iVar10];\n        if (bVar2 == 0x7a) {\n          pbVar9 = opt + iVar10 + 1;\n          ppcVar7 = &(anonymous_namespace)::\n                     parse_short_option(int,char_const**,int,char_const**,int*)::dash_z;\n          local_34 = (byte *)DAT_00394fc8;\n          if (DAT_00394fc8 == (char *)0x0) goto LAB_000e6e4d;\nLAB_000e6d8c:\n          iVar8 = new_i + 1;\n          local_34 = pbVar9;\n          iVar4 = iVar8;\n          pbVar11 = pbVar9;\n          if (*pbVar9 != 0) goto LAB_000e6da4;\n          if (((One_option *)ppcVar7)->optional_arg != false) {\n            local_34 = (byte *)((One_option *)ppcVar7)->default_value;\n            pbVar11 = (byte *)((One_option *)ppcVar7)->default_value;\n            goto LAB_000e6da4;\n          }\n          if (iVar8 < argc) {\n            local_34 = (byte *)argv[iVar8];\n            iVar4 = new_i + 2;\n            pbVar11 = (byte *)argv[iVar8];\n            goto LAB_000e6da4;\n          }\nLAB_000e704d:\n          new_i = iVar8;\n          pcVar6 = "missing argument";\n          goto LAB_000e6e04;\n        }\n        if ((0x7e < (int)(char)" (call_expression "__cxa_atexit(gold::options::One_option::~One_option,\n                       &(anonymous_namespace)::\n                        parse_short_option(int,char_const**,int,char_const**,int*)::dash_z,\n                       &__dso_handle);\n        }\n        bVar2 = opt[iVar10];\n        if (bVar2 == 0x7a) {\n          pbVar9 = opt + iVar10 + 1;\n          ppcVar7 = &(anonymous_namespace)::\n                     parse_short_option(int,char_const**,int,char_const**,int*)::dash_z;\n          local_34 = (byte *)DAT_00394fc8;\n          if (DAT_00394fc8 == (char *)0x0) goto LAB_000e6e4d;\nLAB_000e6d8c:\n          iVar8 = new_i + 1;\n          local_34 = pbVar9;\n          iVar4 = iVar8;\n          pbVar11 = pbVar9;\n          if (*pbVar9 != 0) goto LAB_000e6da4;\n          if (((One_option *)ppcVar7)->optional_arg != false) {\n            local_34 = (byte *)((One_option *)ppcVar7)->default_value;\n            pbVar11 = (byte *)((One_option *)ppcVar7)->default_value;\n            goto LAB_000e6da4;\n          }\n          if (iVar8 < argc) {\n            local_34 = (byte *)argv[iVar8];\n            iVar4 = new_i + 2;\n            pbVar11 = (byte *)argv[iVar8];\n            goto LAB_000e6da4;\n          }\nLAB_000e704d:\n          new_i = iVar8;\n          pcVar6 = "missing argument";\n          goto LAB_000e6e04;\n        }\n        if ((0x7e < (int)" identifier (argument_list "(gold::options::One_option::~One_option,\n                       &(anonymous_namespace)::\n                        parse_short_option(int,char_const**,int,char_const**,int*)::dash_z,\n                       &__dso_handle);\n        }\n        bVar2 = opt[iVar10];\n        if (bVar2 == 0x7a) {\n          pbVar9 = opt + iVar10 + 1;\n          ppcVar7 = &(anonymous_namespace)::\n                     parse_short_option(int,char_const**,int,char_const**,int*)::dash_z;\n          local_34 = (byte *)DAT_00394fc8;\n          if (DAT_00394fc8 == (char *)0x0) goto LAB_000e6e4d;\nLAB_000e6d8c:\n          iVar8 = new_i + 1;\n          local_34 = pbVar9;\n          iVar4 = iVar8;\n          pbVar11 = pbVar9;\n          if (*pbVar9 != 0) goto LAB_000e6da4;\n          if (((One_option *)ppcVar7)->optional_arg != false) {\n            local_34 = (byte *)((One_option *)ppcVar7)->default_value;\n            pbVar11 = (byte *)((One_option *)ppcVar7)->default_value;\n            goto LAB_000e6da4;\n          }\n          if (iVar8 < argc) {\n            local_34 = (byte *)argv[iVar8];\n            iVar4 = new_i + 2;\n            pbVar11 = (byte *)argv[iVar8];\n            goto LAB_000e6da4;\n          }\nLAB_000e704d:\n          new_i = iVar8;\n          pcVar6 = "missing argument";\n          goto LAB_000e6e04;\n        }\n        if ((0x7e < (int)" ( (ERROR "gold::options::One_option::" identifier : : identifier : : identifier : :) (unary_expression "~One_option" ~ identifier) , (ERROR "&(anonymous_namespace)::\n                        parse_short_option(int,char_const**,int,char_const**,int*)::dash_z,\n                       &__dso_handle);\n        }\n        bVar2 = opt[iVar10];\n        if (bVar2 == 0x7a)" (pointer_expression "&(anonymous_namespace)" & (parenthesized_expression "(anonymous_namespace)" ( identifier ))) : : (call_expression "parse_short_option(int,char_const**,int,char_const**,int*)::dash_z,\n                       &__dso_handle)" identifier (argument_list "(int,char_const**,int,char_const**,int*)::dash_z,\n                       &__dso_handle)" ( identifier , (binary_expression "char_const**" identifier * (pointer_expression "*" * identifier)) , identifier , (binary_expression "char_const**" identifier * (pointer_expression "*" * identifier)) , (binary_expression "int*)::dash_z" identifier * (ERROR ")::" ) : :) identifier) , (pointer_expression "&__dso_handle" & identifier) ))) ; } (call_expression "bVar2 = opt[iVar10];\n        if (bVar2 == 0x7a)" (assignment_expression "bVar2 = opt[iVar10]" identifier = (subscript_expression "opt[iVar10]" identifier [ identifier ])) (ERROR ";\n        if" ; if) (argument_list "(bVar2 == 0x7a)" ( (binary_expression "bVar2 == 0x7a" identifier == number_literal) )))) (compound_statement "{\n          pbVar9 = opt + iVar10 + 1;\n          ppcVar7 = &(anonymous_namespace)::\n                     parse_short_option(int,char_const**,int,char_const**,int*)::dash_z;\n          local_34 = (byte *)DAT_00394fc8;\n          if (DAT_00394fc8 == (char *)0x0) goto LAB_000e6e4d;\nLAB_000e6d8c:\n          iVar8 = new_i + 1;\n          local_34 = pbVar9;\n          iVar4 = iVar8;\n          pbVar11 = pbVar9;\n          if (*pbVar9 != 0) goto LAB_000e6da4;\n          if (((One_option *)ppcVar7)->optional_arg != false) {\n            local_34 = (byte *)((One_option *)ppcVar7)->default_value;\n            pbVar11 = (byte *)((One_option *)ppcVar7)->default_value;\n            goto LAB_000e6da4;\n          }\n          if (iVar8 < argc) {\n            local_34 = (byte *)argv[iVar8];\n            iVar4 = new_i + 2;\n            pbVar11 = (byte *)argv[iVar8];\n            goto LAB_000e6da4;\n          }\nLAB_000e704d:\n          new_i = iVar8;\n          pcVar6 = "missing argument";\n          goto LAB_000e6e04;\n        }" { (expression_statement "pbVar9 = opt + iVar10 + 1;" (assignment_expression "pbVar9 = opt + iVar10 + 1" identifier = (binary_expression "opt + iVar10 + 1" (binary_expression "opt + iVar10" identifier + identifier) + number_literal)) ;) (ERROR "ppcVar7 = &(anonymous_namespace)::" (assignment_expression "ppcVar7 = &(anonymous_namespace)" identifier = (pointer_expression "&(anonymous_namespace)" & (parenthesized_expression "(anonymous_namespace)" ( identifier )))) : :) (expression_statement "parse_short_option(int,char_const**,int,char_const**,int*)::dash_z;" (call_expression "parse_short_option(int,char_const**,int,char_const**,int*)::dash_z" identifier (argument_list "(int,char_const**,int,char_const**,int*)::dash_z" ( identifier , (binary_expression "char_const**" identifier * (pointer_expression "*" * identifier)) , identifier , (binary_expression "char_const**" identifier * (pointer_expression "*" * identifier)) , (binary_expression "int*)::dash_z" identifier * (ERROR ")::" ) : :) identifier) ))) ;) (expression_statement "local_34 = (byte *)DAT_00394fc8;" (assignment_expression "local_34 = (byte *)DAT_00394fc8" identifier = (cast_expression "(byte *)DAT_00394fc8" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (DAT_00394fc8 == (char *)0x0) goto LAB_000e6e4d;" if (parenthesized_expression "(DAT_00394fc8 == (char *)0x0)" ( (binary_expression "DAT_00394fc8 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000e6e4d;" goto statement_identifier ;)) (labeled_statement "LAB_000e6d8c:\n          iVar8 = new_i + 1;" statement_identifier : (expression_statement "iVar8 = new_i + 1;" (assignment_expression "iVar8 = new_i + 1" identifier = (binary_expression "new_i + 1" identifier + number_literal)) ;)) (expression_statement "local_34 = pbVar9;" (assignment_expression "local_34 = pbVar9" identifier = identifier) ;) (expression_statement "iVar4 = iVar8;" (assignment_expression "iVar4 = iVar8" identifier = identifier) ;) (expression_statement "pbVar11 = pbVar9;" (assignment_expression "pbVar11 = pbVar9" identifier = identifier) ;) (if_statement "if (*pbVar9 != 0) goto LAB_000e6da4;" if (parenthesized_expression "(*pbVar9 != 0)" ( (binary_expression "*pbVar9 != 0" (pointer_expression "*pbVar9" * identifier) != number_literal) )) (goto_statement "goto LAB_000e6da4;" goto statement_identifier ;)) (if_statement "if (((One_option *)ppcVar7)->optional_arg != false) {\n            local_34 = (byte *)((One_option *)ppcVar7)->default_value;\n            pbVar11 = (byte *)((One_option *)ppcVar7)->default_value;\n            goto LAB_000e6da4;\n          }" if (parenthesized_expression "(((One_option *)ppcVar7)->optional_arg != false)" ( (binary_expression "((One_option *)ppcVar7)->optional_arg != false" (field_expression "((One_option *)ppcVar7)->optional_arg" (parenthesized_expression "((One_option *)ppcVar7)" ( (cast_expression "(One_option *)ppcVar7" ( (type_descriptor "One_option *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier) != false) )) (compound_statement "{\n            local_34 = (byte *)((One_option *)ppcVar7)->default_value;\n            pbVar11 = (byte *)((One_option *)ppcVar7)->default_value;\n            goto LAB_000e6da4;\n          }" { (expression_statement "local_34 = (byte *)((One_option *)ppcVar7)->default_value;" (assignment_expression "local_34 = (byte *)((One_option *)ppcVar7)->default_value" identifier = (cast_expression "(byte *)((One_option *)ppcVar7)->default_value" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "((One_option *)ppcVar7)->default_value" (parenthesized_expression "((One_option *)ppcVar7)" ( (cast_expression "(One_option *)ppcVar7" ( (type_descriptor "One_option *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier))) ;) (expression_statement "pbVar11 = (byte *)((One_option *)ppcVar7)->default_value;" (assignment_expression "pbVar11 = (byte *)((One_option *)ppcVar7)->default_value" identifier = (cast_expression "(byte *)((One_option *)ppcVar7)->default_value" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "((One_option *)ppcVar7)->default_value" (parenthesized_expression "((One_option *)ppcVar7)" ( (cast_expression "(One_option *)ppcVar7" ( (type_descriptor "One_option *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier))) ;) (goto_statement "goto LAB_000e6da4;" goto statement_identifier ;) })) (if_statement "if (iVar8 < argc) {\n            local_34 = (byte *)argv[iVar8];\n            iVar4 = new_i + 2;\n            pbVar11 = (byte *)argv[iVar8];\n            goto LAB_000e6da4;\n          }" if (parenthesized_expression "(iVar8 < argc)" ( (binary_expression "iVar8 < argc" identifier < identifier) )) (compound_statement "{\n            local_34 = (byte *)argv[iVar8];\n            iVar4 = new_i + 2;\n            pbVar11 = (byte *)argv[iVar8];\n            goto LAB_000e6da4;\n          }" { (expression_statement "local_34 = (byte *)argv[iVar8];" (assignment_expression "local_34 = (byte *)argv[iVar8]" identifier = (cast_expression "(byte *)argv[iVar8]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "argv[iVar8]" identifier [ identifier ]))) ;) (expression_statement "iVar4 = new_i + 2;" (assignment_expression "iVar4 = new_i + 2" identifier = (binary_expression "new_i + 2" identifier + number_literal)) ;) (expression_statement "pbVar11 = (byte *)argv[iVar8];" (assignment_expression "pbVar11 = (byte *)argv[iVar8]" identifier = (cast_expression "(byte *)argv[iVar8]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "argv[iVar8]" identifier [ identifier ]))) ;) (goto_statement "goto LAB_000e6da4;" goto statement_identifier ;) })) (labeled_statement "LAB_000e704d:\n          new_i = iVar8;" statement_identifier : (expression_statement "new_i = iVar8;" (assignment_expression "new_i = iVar8" identifier = identifier) ;)) (expression_statement "pcVar6 = "missing argument";" (assignment_expression "pcVar6 = "missing argument"" identifier = (string_literal ""missing argument"" " string_content ")) ;) (goto_statement "goto LAB_000e6e04;" goto statement_identifier ;) }) (ERROR "if ((0x7e < (int" if ( ( number_literal < ( primitive_type) ))) (argument_list "(char)" ( identifier ))) (ERROR "bVar2" identifier) - number_literal) ))) || (parenthesized_expression "(ppcVar7 = (char **)gold::options::short_options[(char)bVar2],\n           (One_option *)ppcVar7 == (One_option *)0x0)" ( (comma_expression "ppcVar7 = (char **)gold::options::short_options[(char)bVar2],\n           (One_option *)ppcVar7 == (One_option *)0x0" (subscript_expression "ppcVar7 = (char **)gold::options::short_options[(char)bVar2]" (assignment_expression "ppcVar7 = (char **)gold" identifier = (cast_expression "(char **)gold" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) (ERROR "::options::short_options" : : identifier : : identifier) [ (cast_expression "(char)bVar2" ( (type_descriptor "char" primitive_type) ) identifier) ]) , (binary_expression "(One_option *)ppcVar7 == (One_option *)0x0" (cast_expression "(One_option *)ppcVar7" ( (type_descriptor "One_option *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) == (cast_expression "(One_option *)0x0" ( (type_descriptor "One_option *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) (ERROR ") break" ) break) ;) (expression_statement "local_34 = (byte *)((One_option *)ppcVar7)->helparg;" (assignment_expression "local_34 = (byte *)((One_option *)ppcVar7)->helparg" identifier = (cast_expression "(byte *)((One_option *)ppcVar7)->helparg" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "((One_option *)ppcVar7)->helparg" (parenthesized_expression "((One_option *)ppcVar7)" ( (cast_expression "(One_option *)ppcVar7" ( (type_descriptor "One_option *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier))) ;) (expression_statement "pbVar9 = opt + iVar10 + 1;" (assignment_expression "pbVar9 = opt + iVar10 + 1" identifier = (binary_expression "opt + iVar10 + 1" (binary_expression "opt + iVar10" identifier + identifier) + number_literal)) ;) (if_statement "if (local_34 != (byte *)0x0) goto LAB_000e6d8c;" if (parenthesized_expression "(local_34 != (byte *)0x0)" ( (binary_expression "local_34 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000e6d8c;" goto statement_identifier ;)) (labeled_statement "LAB_000e6e4d:\n        arg = (char *)0x0;" statement_identifier : (expression_statement "arg = (char *)0x0;" (assignment_expression "arg = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "iVar4 = new_i;" (assignment_expression "iVar4 = new_i" identifier = identifier) ;) (expression_statement "pbVar11 = (byte *)arg;" (assignment_expression "pbVar11 = (byte *)arg" identifier = (cast_expression "(byte *)arg" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (*pbVar9 == 0) {\n          new_i = new_i + 1;\n          bVar13 = ppcVar7 ==\n                   &(anonymous_namespace)::\n                    parse_short_option(int,char_const**,int,char_const**,int*)::dash_z;\n          if (bVar13) {\nLAB_000e6e78:\n            bVar12 = ppcVar7 < &(anonymous_namespace)::\n                                parse_short_option(int,char_const**,int,char_const**,int*)::dash_z;\n            dummy_i = 0;\n            iVar8 = 6;\n            pbVar9 = local_34;\n            pbVar11 = (byte *)0x28e8f9;\n            do {\n              opt = pbVar9;\n              if (iVar8 == 0) break;\n              iVar8 = iVar8 + -1;\n              opt = pbVar9 + (uint)bVar14 * -2 + 1;\n              bVar12 = *pbVar9 < *pbVar11;\n              bVar13 = *pbVar9 == *pbVar11;\n              pbVar9 = opt;\n              pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n            } while (bVar13);\n            if ((!bVar12 && !bVar13) == bVar12) {\n              arg = (char *)(byte *)0x28e8f9;\n            }\n            ppcVar7 = (char **)anon_unknown.dwarf_a6a7ee::parse_long_option\n                                         (1,&arg,true,&arg,&dummy_i);\n            if ((One_option *)ppcVar7 == (One_option *)0x0) {\n              pcVar6 = (char *)gettext("unknown -z option");\n              anon_unknown.dwarf_a6a7ee::usage(pcVar6,(char *)local_34);\n              iVar8 = new_i;\n              goto LAB_000e704d;\n            }\n            local_34 = (byte *)arg;\n          }\n        }\n        else {\nLAB_000e6da4:\n          arg = (char *)pbVar11;\n          new_i = iVar4;\n          bVar13 = ppcVar7 ==\n                   &(anonymous_namespace)::\n                    parse_short_option(int,char_const**,int,char_const**,int*)::dash_z;\n          if (bVar13) goto LAB_000e6e78;\n        }" if (parenthesized_expression "(*pbVar9 == 0)" ( (binary_expression "*pbVar9 == 0" (pointer_expression "*pbVar9" * identifier) == number_literal) )) (compound_statement "{\n          new_i = new_i + 1;\n          bVar13 = ppcVar7 ==\n                   &(anonymous_namespace)::\n                    parse_short_option(int,char_const**,int,char_const**,int*)::dash_z;\n          if (bVar13) {\nLAB_000e6e78:\n            bVar12 = ppcVar7 < &(anonymous_namespace)::\n                                parse_short_option(int,char_const**,int,char_const**,int*)::dash_z;\n            dummy_i = 0;\n            iVar8 = 6;\n            pbVar9 = local_34;\n            pbVar11 = (byte *)0x28e8f9;\n            do {\n              opt = pbVar9;\n              if (iVar8 == 0) break;\n              iVar8 = iVar8 + -1;\n              opt = pbVar9 + (uint)bVar14 * -2 + 1;\n              bVar12 = *pbVar9 < *pbVar11;\n              bVar13 = *pbVar9 == *pbVar11;\n              pbVar9 = opt;\n              pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n            } while (bVar13);\n            if ((!bVar12 && !bVar13) == bVar12) {\n              arg = (char *)(byte *)0x28e8f9;\n            }\n            ppcVar7 = (char **)anon_unknown.dwarf_a6a7ee::parse_long_option\n                                         (1,&arg,true,&arg,&dummy_i);\n            if ((One_option *)ppcVar7 == (One_option *)0x0) {\n              pcVar6 = (char *)gettext("unknown -z option");\n              anon_unknown.dwarf_a6a7ee::usage(pcVar6,(char *)local_34);\n              iVar8 = new_i;\n              goto LAB_000e704d;\n            }\n            local_34 = (byte *)arg;\n          }\n        }" { (expression_statement "new_i = new_i + 1;" (assignment_expression "new_i = new_i + 1" identifier = (binary_expression "new_i + 1" identifier + number_literal)) ;) (ERROR "bVar13 = ppcVar7 ==\n                   &(anonymous_namespace)::" (assignment_expression "bVar13 = ppcVar7 ==\n                   &(anonymous_namespace)" identifier = (binary_expression "ppcVar7 ==\n                   &(anonymous_namespace)" identifier == (pointer_expression "&(anonymous_namespace)" & (parenthesized_expression "(anonymous_namespace)" ( identifier ))))) : :) (expression_statement "parse_short_option(int,char_const**,int,char_const**,int*)::dash_z;" (call_expression "parse_short_option(int,char_const**,int,char_const**,int*)::dash_z" identifier (argument_list "(int,char_const**,int,char_const**,int*)::dash_z" ( identifier , (binary_expression "char_const**" identifier * (pointer_expression "*" * identifier)) , identifier , (binary_expression "char_const**" identifier * (pointer_expression "*" * identifier)) , (binary_expression "int*)::dash_z" identifier * (ERROR ")::" ) : :) identifier) ))) ;) (if_statement "if (bVar13) {\nLAB_000e6e78:\n            bVar12 = ppcVar7 < &(anonymous_namespace)::\n                                parse_short_option(int,char_const**,int,char_const**,int*)::dash_z;\n            dummy_i = 0;\n            iVar8 = 6;\n            pbVar9 = local_34;\n            pbVar11 = (byte *)0x28e8f9;\n            do {\n              opt = pbVar9;\n              if (iVar8 == 0) break;\n              iVar8 = iVar8 + -1;\n              opt = pbVar9 + (uint)bVar14 * -2 + 1;\n              bVar12 = *pbVar9 < *pbVar11;\n              bVar13 = *pbVar9 == *pbVar11;\n              pbVar9 = opt;\n              pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n            } while (bVar13);\n            if ((!bVar12 && !bVar13) == bVar12) {\n              arg = (char *)(byte *)0x28e8f9;\n            }\n            ppcVar7 = (char **)anon_unknown.dwarf_a6a7ee::parse_long_option\n                                         (1,&arg,true,&arg,&dummy_i);\n            if ((One_option *)ppcVar7 == (One_option *)0x0) {\n              pcVar6 = (char *)gettext("unknown -z option");\n              anon_unknown.dwarf_a6a7ee::usage(pcVar6,(char *)local_34);\n              iVar8 = new_i;\n              goto LAB_000e704d;\n            }\n            local_34 = (byte *)arg;\n          }" if (parenthesized_expression "(bVar13)" ( identifier )) (compound_statement "{\nLAB_000e6e78:\n            bVar12 = ppcVar7 < &(anonymous_namespace)::\n                                parse_short_option(int,char_const**,int,char_const**,int*)::dash_z;\n            dummy_i = 0;\n            iVar8 = 6;\n            pbVar9 = local_34;\n            pbVar11 = (byte *)0x28e8f9;\n            do {\n              opt = pbVar9;\n              if (iVar8 == 0) break;\n              iVar8 = iVar8 + -1;\n              opt = pbVar9 + (uint)bVar14 * -2 + 1;\n              bVar12 = *pbVar9 < *pbVar11;\n              bVar13 = *pbVar9 == *pbVar11;\n              pbVar9 = opt;\n              pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n            } while (bVar13);\n            if ((!bVar12 && !bVar13) == bVar12) {\n              arg = (char *)(byte *)0x28e8f9;\n            }\n            ppcVar7 = (char **)anon_unknown.dwarf_a6a7ee::parse_long_option\n                                         (1,&arg,true,&arg,&dummy_i);\n            if ((One_option *)ppcVar7 == (One_option *)0x0) {\n              pcVar6 = (char *)gettext("unknown -z option");\n              anon_unknown.dwarf_a6a7ee::usage(pcVar6,(char *)local_34);\n              iVar8 = new_i;\n              goto LAB_000e704d;\n            }\n            local_34 = (byte *)arg;\n          }" { (labeled_statement "LAB_000e6e78:\n            bVar12 = ppcVar7 < &(anonymous_namespace)::\n                                parse_short_option(int,char_const**,int,char_const**,int*)::dash_z;" statement_identifier : (ERROR "bVar12 = ppcVar7 < &(anonymous_namespace)::" (assignment_expression "bVar12 = ppcVar7 < &(anonymous_namespace)" identifier = (binary_expression "ppcVar7 < &(anonymous_namespace)" identifier < (pointer_expression "&(anonymous_namespace)" & (parenthesized_expression "(anonymous_namespace)" ( identifier ))))) : :) (expression_statement "parse_short_option(int,char_const**,int,char_const**,int*)::dash_z;" (call_expression "parse_short_option(int,char_const**,int,char_const**,int*)::dash_z" identifier (argument_list "(int,char_const**,int,char_const**,int*)::dash_z" ( identifier , (binary_expression "char_const**" identifier * (pointer_expression "*" * identifier)) , identifier , (binary_expression "char_const**" identifier * (pointer_expression "*" * identifier)) , (binary_expression "int*)::dash_z" identifier * (ERROR ")::" ) : :) identifier) ))) ;)) (expression_statement "dummy_i = 0;" (assignment_expression "dummy_i = 0" identifier = number_literal) ;) (expression_statement "iVar8 = 6;" (assignment_expression "iVar8 = 6" identifier = number_literal) ;) (expression_statement "pbVar9 = local_34;" (assignment_expression "pbVar9 = local_34" identifier = identifier) ;) (expression_statement "pbVar11 = (byte *)0x28e8f9;" (assignment_expression "pbVar11 = (byte *)0x28e8f9" identifier = (cast_expression "(byte *)0x28e8f9" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n              opt = pbVar9;\n              if (iVar8 == 0) break;\n              iVar8 = iVar8 + -1;\n              opt = pbVar9 + (uint)bVar14 * -2 + 1;\n              bVar12 = *pbVar9 < *pbVar11;\n              bVar13 = *pbVar9 == *pbVar11;\n              pbVar9 = opt;\n              pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n            } while (bVar13);" do (compound_statement "{\n              opt = pbVar9;\n              if (iVar8 == 0) break;\n              iVar8 = iVar8 + -1;\n              opt = pbVar9 + (uint)bVar14 * -2 + 1;\n              bVar12 = *pbVar9 < *pbVar11;\n              bVar13 = *pbVar9 == *pbVar11;\n              pbVar9 = opt;\n              pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n            }" { (expression_statement "opt = pbVar9;" (assignment_expression "opt = pbVar9" identifier = identifier) ;) (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 "opt = pbVar9 + (uint)bVar14 * -2 + 1;" (assignment_expression "opt = pbVar9 + (uint)bVar14 * -2 + 1" identifier = (binary_expression "pbVar9 + (uint)bVar14 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar14 * -2" identifier + (binary_expression "(uint)bVar14 * -2" (cast_expression "(uint)bVar14" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + 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 "bVar13 = *pbVar9 == *pbVar11;" (assignment_expression "bVar13 = *pbVar9 == *pbVar11" identifier = (binary_expression "*pbVar9 == *pbVar11" (pointer_expression "*pbVar9" * identifier) == (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "pbVar9 = opt;" (assignment_expression "pbVar9 = opt" identifier = identifier) ;) (expression_statement "pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1" identifier = (binary_expression "pbVar11 + (uint)bVar14 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar14 * -2" identifier + (binary_expression "(uint)bVar14 * -2" (cast_expression "(uint)bVar14" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar13)" ( identifier )) ;) (if_statement "if ((!bVar12 && !bVar13) == bVar12) {\n              arg = (char *)(byte *)0x28e8f9;\n            }" if (parenthesized_expression "((!bVar12 && !bVar13) == bVar12)" ( (binary_expression "(!bVar12 && !bVar13) == bVar12" (parenthesized_expression "(!bVar12 && !bVar13)" ( (binary_expression "!bVar12 && !bVar13" (unary_expression "!bVar12" ! identifier) && (unary_expression "!bVar13" ! identifier)) )) == identifier) )) (compound_statement "{\n              arg = (char *)(byte *)0x28e8f9;\n            }" { (expression_statement "arg = (char *)(byte *)0x28e8f9;" (assignment_expression "arg = (char *)(byte *)0x28e8f9" identifier = (cast_expression "(char *)(byte *)0x28e8f9" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (cast_expression "(byte *)0x28e8f9" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) })) (ERROR "ppcVar7 = (char **)anon_unknown.dwarf_a6a7ee::" (assignment_expression "ppcVar7 = (char **)anon_unknown.dwarf_a6a7ee" identifier = (cast_expression "(char **)anon_unknown.dwarf_a6a7ee" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (field_expression "anon_unknown.dwarf_a6a7ee" identifier . field_identifier))) : :) (expression_statement "parse_long_option\n                                         (1,&arg,true,&arg,&dummy_i);" (call_expression "parse_long_option\n                                         (1,&arg,true,&arg,&dummy_i)" identifier (argument_list "(1,&arg,true,&arg,&dummy_i)" ( number_literal , (pointer_expression "&arg" & identifier) , true , (pointer_expression "&arg" & identifier) , (pointer_expression "&dummy_i" & identifier) ))) ;) (if_statement "if ((One_option *)ppcVar7 == (One_option *)0x0) {\n              pcVar6 = (char *)gettext("unknown -z option");\n              anon_unknown.dwarf_a6a7ee::usage(pcVar6,(char *)local_34);\n              iVar8 = new_i;\n              goto LAB_000e704d;\n            }" if (parenthesized_expression "((One_option *)ppcVar7 == (One_option *)0x0)" ( (binary_expression "(One_option *)ppcVar7 == (One_option *)0x0" (cast_expression "(One_option *)ppcVar7" ( (type_descriptor "One_option *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) == (cast_expression "(One_option *)0x0" ( (type_descriptor "One_option *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              pcVar6 = (char *)gettext("unknown -z option");\n              anon_unknown.dwarf_a6a7ee::usage(pcVar6,(char *)local_34);\n              iVar8 = new_i;\n              goto LAB_000e704d;\n            }" { (expression_statement "pcVar6 = (char *)gettext("unknown -z option");" (assignment_expression "pcVar6 = (char *)gettext("unknown -z option")" identifier = (cast_expression "(char *)gettext("unknown -z option")" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "gettext("unknown -z option")" identifier (argument_list "("unknown -z option")" ( (string_literal ""unknown -z option"" " string_content ") ))))) ;) (ERROR "anon_unknown.dwarf_a6a7ee::" (field_expression "anon_unknown.dwarf_a6a7ee" identifier . field_identifier) : :) (expression_statement "usage(pcVar6,(char *)local_34);" (call_expression "usage(pcVar6,(char *)local_34)" identifier (argument_list "(pcVar6,(char *)local_34)" ( identifier , (cast_expression "(char *)local_34" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (expression_statement "iVar8 = new_i;" (assignment_expression "iVar8 = new_i" identifier = identifier) ;) (goto_statement "goto LAB_000e704d;" goto statement_identifier ;) })) (expression_statement "local_34 = (byte *)arg;" (assignment_expression "local_34 = (byte *)arg" identifier = (cast_expression "(byte *)arg" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) })) }) (else_clause "else {\nLAB_000e6da4:\n          arg = (char *)pbVar11;\n          new_i = iVar4;\n          bVar13 = ppcVar7 ==\n                   &(anonymous_namespace)::\n                    parse_short_option(int,char_const**,int,char_const**,int*)::dash_z;\n          if (bVar13) goto LAB_000e6e78;\n        }" else (compound_statement "{\nLAB_000e6da4:\n          arg = (char *)pbVar11;\n          new_i = iVar4;\n          bVar13 = ppcVar7 ==\n                   &(anonymous_namespace)::\n                    parse_short_option(int,char_const**,int,char_const**,int*)::dash_z;\n          if (bVar13) goto LAB_000e6e78;\n        }" { (labeled_statement "LAB_000e6da4:\n          arg = (char *)pbVar11;" statement_identifier : (expression_statement "arg = (char *)pbVar11;" (assignment_expression "arg = (char *)pbVar11" identifier = (cast_expression "(char *)pbVar11" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;)) (expression_statement "new_i = iVar4;" (assignment_expression "new_i = iVar4" identifier = identifier) ;) (ERROR "bVar13 = ppcVar7 ==\n                   &(anonymous_namespace)::" (assignment_expression "bVar13 = ppcVar7 ==\n                   &(anonymous_namespace)" identifier = (binary_expression "ppcVar7 ==\n                   &(anonymous_namespace)" identifier == (pointer_expression "&(anonymous_namespace)" & (parenthesized_expression "(anonymous_namespace)" ( identifier ))))) : :) (expression_statement "parse_short_option(int,char_const**,int,char_const**,int*)::dash_z;" (call_expression "parse_short_option(int,char_const**,int,char_const**,int*)::dash_z" identifier (argument_list "(int,char_const**,int,char_const**,int*)::dash_z" ( identifier , (binary_expression "char_const**" identifier * (pointer_expression "*" * identifier)) , identifier , (binary_expression "char_const**" identifier * (pointer_expression "*" * identifier)) , (binary_expression "int*)::dash_z" identifier * (ERROR ")::" ) : :) identifier) ))) ;) (if_statement "if (bVar13) goto LAB_000e6e78;" if (parenthesized_expression "(bVar13)" ( identifier )) (goto_statement "goto LAB_000e6e78;" goto statement_identifier ;)) }))) (expression_statement "iVar10 = iVar10 + 1;" (assignment_expression "iVar10 = iVar10 + 1" identifier = (binary_expression "iVar10 + 1" identifier + number_literal)) ;) (expression_statement "(**((One_option *)ppcVar7)->reader->_vptr_Struct_var)\n                  (((One_option *)ppcVar7)->reader,*ppcVar1,local_34,this,&this->options_);" (call_expression "(**((One_option *)ppcVar7)->reader->_vptr_Struct_var)\n                  (((One_option *)ppcVar7)->reader,*ppcVar1,local_34,this,&this->options_)" (parenthesized_expression "(**((One_option *)ppcVar7)->reader->_vptr_Struct_var)" ( (pointer_expression "**((One_option *)ppcVar7)->reader->_vptr_Struct_var" * (pointer_expression "*((One_option *)ppcVar7)->reader->_vptr_Struct_var" * (field_expression "((One_option *)ppcVar7)->reader->_vptr_Struct_var" (field_expression "((One_option *)ppcVar7)->reader" (parenthesized_expression "((One_option *)ppcVar7)" ( (cast_expression "(One_option *)ppcVar7" ( (type_descriptor "One_option *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier) -> field_identifier))) )) (argument_list "(((One_option *)ppcVar7)->reader,*ppcVar1,local_34,this,&this->options_)" ( (field_expression "((One_option *)ppcVar7)->reader" (parenthesized_expression "((One_option *)ppcVar7)" ( (cast_expression "(One_option *)ppcVar7" ( (type_descriptor "One_option *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier) , (pointer_expression "*ppcVar1" * identifier) , identifier , identifier , (pointer_expression "&this->options_" & (field_expression "this->options_" identifier -> field_identifier)) ))) ;) (if_statement "if (new_i != iVar3) {\n          return new_i;\n        }" if (parenthesized_expression "(new_i != iVar3)" ( (binary_expression "new_i != iVar3" identifier != identifier) )) (compound_statement "{\n          return new_i;\n        }" { (return_statement "return new_i;" return identifier ;) })) (expression_statement "opt = (byte *)argv[iVar3];" (assignment_expression "opt = (byte *)argv[iVar3]" identifier = (cast_expression "(byte *)argv[iVar3]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "argv[iVar3]" identifier [ identifier ]))) ;) })) (while_statement "while (*opt == 0x2d);" while (parenthesized_expression "(*opt == 0x2d)" ( (binary_expression "*opt == 0x2d" (pointer_expression "*opt" * identifier) == number_literal) )) (expression_statement ";" ;)) }) identifier = ( identifier * ) * identifier ; identifier = " identifier identifier " ; identifier : identifier = & identifier ; identifier = ( primitive_type * ) identifier ( identifier ) ; identifier . identifier : : identifier ( identifier , ( primitive_type * ) identifier ) ; identifier = identifier ; identifier = ( primitive_type ) identifier ;) })) (expression_statement "*no_more_options = true;" (assignment_expression "*no_more_options = true" (pointer_expression "*no_more_options" * identifier) = true) ;) (return_statement "return i + 1;" return (binary_expression "i + 1" identifier + number_literal) ;) })) })))
(translation_unit "undefined ** FUN_000e6c60(int param_1,int param_2,int param_3,undefined **param_4,char *param_5)\n\n{\n  undefined **ppuVar1;\n  undefined4 *puVar2;\n  char cVar3;\n  undefined **ppuVar4;\n  byte *pbVar5;\n  int iVar6;\n  char *pcVar7;\n  undefined4 *puVar8;\n  char *__s;\n  int iVar9;\n  char *extraout_EDX;\n  byte *pbVar10;\n  bool bVar11;\n  bool bVar12;\n  byte bVar13;\n  byte *local_34;\n  undefined **local_30;\n  undefined **local_28;\n  byte *local_24;\n  undefined4 local_20 [4];\n  \n  bVar13 = 0;\n  puVar2 = (undefined4 *)(param_3 + (int)param_4 * 4);\n  pcVar7 = (char *)*puVar2;\n  if ((*pcVar7 != '-') || (*param_5 != '\0')) {\n                    \n    FUN_00069d00("../../gold/options.cc",0x5f0,"process_one_option",pcVar7);\n  }\n  if ((pcVar7[1] != '-') || (pcVar7[2] != '\0')) {\n    local_28 = param_4;\n    local_24 = (byte *)0x0;\n    iVar6 = FUN_000df460(&local_24,&local_28);\n    ppuVar4 = local_28;\n    if (iVar6 != 0) {\n      (**(code **)**(undefined4 **)(iVar6 + 0x30))\n                (*(undefined4 **)(iVar6 + 0x30),*puVar2,local_24,param_1,param_1 + 4);\n      return local_28;\n    }\n    if ((param_4 == local_28) && (pcVar7 = *(char **)(param_3 + (int)local_28 * 4), *pcVar7 == '-'))\n    {\n      iVar6 = 1;\n      do {\n        if ((DAT_00394f90 == '\0') && (iVar9 = FUN_001e5390(&DAT_00394f90), iVar9 != 0)) {\n          DAT_00394fa0 = &DAT_00394fa8;\n                    \n          FUN_00050e40(&DAT_00394fa0,"","",0,&DAT_00394fa8);\n          DAT_00394fc0 = "";\n          DAT_00394fb8 = 4;\n          DAT_00394fbc = 0x7a;\n          DAT_00394fc4 = 0;\n          DAT_00394fc8 = "Z-OPTION";\n          DAT_00394fcc = 0;\n          DAT_00394fd0 = 0;\n          DAT_00394fd4 = 0;\n          __s = strchr(DAT_00394fa0,0x5f);\n          if (__s != (char *)0x0) {\n            do {\n              *__s = '-';\n              __s = strchr(__s,0x5f);\n            } while (__s != (char *)0x0);\n            if ((DAT_00394fc4 != 0) && (DAT_003951f0 != '\0')) {\n                    \n              FUN_000df670();\n            }\n          }\n          FUN_001e5500(&DAT_00394f90);\n          __cxa_atexit(FUN_000e8e10,&DAT_00394fa0,&PTR_LOOP_0038f2e4);\n        }\n        cVar3 = pcVar7[iVar6];\n        if (cVar3 == 'z') {\n          pbVar10 = (byte *)(pcVar7 + iVar6 + 1);\n          puVar8 = &DAT_00394fa0;\n          local_34 = (byte *)DAT_00394fc8;\n          if ((byte *)DAT_00394fc8 == (byte *)0x0) goto LAB_000e6e4d;\nLAB_000e6d8c:\n          ppuVar1 = (undefined **)((int)local_28 + 1);\n          local_34 = pbVar10;\n          pbVar5 = pbVar10;\n          if (*pbVar10 != 0) goto LAB_000e6da4;\n          if (*(char *)(puVar8 + 0xb) != '\0') {\n            local_34 = (byte *)puVar8[8];\n            pbVar5 = (byte *)puVar8[8];\n            goto LAB_000e6da4;\n          }\n          if ((int)ppuVar1 < param_2) {\n            local_34 = *(byte **)(param_3 + (int)ppuVar1 * 4);\n            ppuVar1 = (undefined **)((int)local_28 + 2);\n            pbVar5 = local_34;\n            goto LAB_000e6da4;\n          }\nLAB_000e704d:\n          local_28 = ppuVar1;\n          pcVar7 = "missing argument";\n          goto LAB_000e6e04;\n        }\n        if ((0x7e < (int)cVar3 - 1U) ||\n           (puVar8 = *(undefined4 **)(&DAT_00394fe0 + cVar3 * 4), puVar8 == (undefined4 *)0x0))\n        break;\n        local_34 = (byte *)puVar8[10];\n        pbVar10 = (byte *)(pcVar7 + iVar6 + 1);\n        if (local_34 != (byte *)0x0) goto LAB_000e6d8c;\nLAB_000e6e4d:\n        local_24 = (byte *)0x0;\n        ppuVar1 = local_28;\n        pbVar5 = local_24;\n        if (*pbVar10 == 0) {\n          local_28 = (undefined **)((int)local_28 + 1);\n          bVar12 = (char **)puVar8 == &DAT_00394fa0;\n          if (bVar12) {\nLAB_000e6e78:\n            bVar11 = puVar8 < &DAT_00394fa0;\n            local_20[0] = 0;\n            iVar9 = 6;\n            pbVar10 = (byte *)0x28e8f9;\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar11 = *local_34 < *pbVar10;\n              bVar12 = *local_34 == *pbVar10;\n              local_34 = local_34 + (uint)bVar13 * -2 + 1;\n              pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1;\n            } while (bVar12);\n            if ((!bVar11 && !bVar12) == bVar11) {\n              local_24 = (byte *)0x28e8f9;\n            }\n            puVar8 = (undefined4 *)FUN_000df460(&local_24,local_20);\n            if (puVar8 == (undefined4 *)0x0) {\n              gettext("unknown -z option");\n              FUN_000dcd10();\n              ppuVar1 = local_28;\n              goto LAB_000e704d;\n            }\n            local_34 = local_24;\n          }\n        }\n        else {\nLAB_000e6da4:\n          local_24 = pbVar5;\n          local_28 = ppuVar1;\n          bVar12 = (char **)puVar8 == &DAT_00394fa0;\n          if (bVar12) goto LAB_000e6e78;\n        }\n        iVar6 = iVar6 + 1;\n        (*(code *)**(undefined4 **)puVar8[0xc])\n                  ((undefined4 *)puVar8[0xc],*puVar2,local_34,param_1,param_1 + 4);\n        if (local_28 != ppuVar4) {\n          return local_28;\n        }\n        pcVar7 = *(char **)(param_3 + (int)ppuVar4 * 4);\n      } while (*pcVar7 == '-');\n    }\n    pcVar7 = "unknown option";\nLAB_000e6e04:\n    local_30 = &__DT_PLTGOT;\n    gettext(pcVar7);\n    FUN_000dcd10();\n    param_5 = extraout_EDX;\n    param_4 = local_30;\n  }\n  *param_5 = '\x01';\n  return (undefined **)((int)param_4 + 1);\n}\n\n" (function_definition "undefined ** FUN_000e6c60(int param_1,int param_2,int param_3,undefined **param_4,char *param_5)\n\n{\n  undefined **ppuVar1;\n  undefined4 *puVar2;\n  char cVar3;\n  undefined **ppuVar4;\n  byte *pbVar5;\n  int iVar6;\n  char *pcVar7;\n  undefined4 *puVar8;\n  char *__s;\n  int iVar9;\n  char *extraout_EDX;\n  byte *pbVar10;\n  bool bVar11;\n  bool bVar12;\n  byte bVar13;\n  byte *local_34;\n  undefined **local_30;\n  undefined **local_28;\n  byte *local_24;\n  undefined4 local_20 [4];\n  \n  bVar13 = 0;\n  puVar2 = (undefined4 *)(param_3 + (int)param_4 * 4);\n  pcVar7 = (char *)*puVar2;\n  if ((*pcVar7 != '-') || (*param_5 != '\0')) {\n                    \n    FUN_00069d00("../../gold/options.cc",0x5f0,"process_one_option",pcVar7);\n  }\n  if ((pcVar7[1] != '-') || (pcVar7[2] != '\0')) {\n    local_28 = param_4;\n    local_24 = (byte *)0x0;\n    iVar6 = FUN_000df460(&local_24,&local_28);\n    ppuVar4 = local_28;\n    if (iVar6 != 0) {\n      (**(code **)**(undefined4 **)(iVar6 + 0x30))\n                (*(undefined4 **)(iVar6 + 0x30),*puVar2,local_24,param_1,param_1 + 4);\n      return local_28;\n    }\n    if ((param_4 == local_28) && (pcVar7 = *(char **)(param_3 + (int)local_28 * 4), *pcVar7 == '-'))\n    {\n      iVar6 = 1;\n      do {\n        if ((DAT_00394f90 == '\0') && (iVar9 = FUN_001e5390(&DAT_00394f90), iVar9 != 0)) {\n          DAT_00394fa0 = &DAT_00394fa8;\n                    \n          FUN_00050e40(&DAT_00394fa0,"","",0,&DAT_00394fa8);\n          DAT_00394fc0 = "";\n          DAT_00394fb8 = 4;\n          DAT_00394fbc = 0x7a;\n          DAT_00394fc4 = 0;\n          DAT_00394fc8 = "Z-OPTION";\n          DAT_00394fcc = 0;\n          DAT_00394fd0 = 0;\n          DAT_00394fd4 = 0;\n          __s = strchr(DAT_00394fa0,0x5f);\n          if (__s != (char *)0x0) {\n            do {\n              *__s = '-';\n              __s = strchr(__s,0x5f);\n            } while (__s != (char *)0x0);\n            if ((DAT_00394fc4 != 0) && (DAT_003951f0 != '\0')) {\n                    \n              FUN_000df670();\n            }\n          }\n          FUN_001e5500(&DAT_00394f90);\n          __cxa_atexit(FUN_000e8e10,&DAT_00394fa0,&PTR_LOOP_0038f2e4);\n        }\n        cVar3 = pcVar7[iVar6];\n        if (cVar3 == 'z') {\n          pbVar10 = (byte *)(pcVar7 + iVar6 + 1);\n          puVar8 = &DAT_00394fa0;\n          local_34 = (byte *)DAT_00394fc8;\n          if ((byte *)DAT_00394fc8 == (byte *)0x0) goto LAB_000e6e4d;\nLAB_000e6d8c:\n          ppuVar1 = (undefined **)((int)local_28 + 1);\n          local_34 = pbVar10;\n          pbVar5 = pbVar10;\n          if (*pbVar10 != 0) goto LAB_000e6da4;\n          if (*(char *)(puVar8 + 0xb) != '\0') {\n            local_34 = (byte *)puVar8[8];\n            pbVar5 = (byte *)puVar8[8];\n            goto LAB_000e6da4;\n          }\n          if ((int)ppuVar1 < param_2) {\n            local_34 = *(byte **)(param_3 + (int)ppuVar1 * 4);\n            ppuVar1 = (undefined **)((int)local_28 + 2);\n            pbVar5 = local_34;\n            goto LAB_000e6da4;\n          }\nLAB_000e704d:\n          local_28 = ppuVar1;\n          pcVar7 = "missing argument";\n          goto LAB_000e6e04;\n        }\n        if ((0x7e < (int)cVar3 - 1U) ||\n           (puVar8 = *(undefined4 **)(&DAT_00394fe0 + cVar3 * 4), puVar8 == (undefined4 *)0x0))\n        break;\n        local_34 = (byte *)puVar8[10];\n        pbVar10 = (byte *)(pcVar7 + iVar6 + 1);\n        if (local_34 != (byte *)0x0) goto LAB_000e6d8c;\nLAB_000e6e4d:\n        local_24 = (byte *)0x0;\n        ppuVar1 = local_28;\n        pbVar5 = local_24;\n        if (*pbVar10 == 0) {\n          local_28 = (undefined **)((int)local_28 + 1);\n          bVar12 = (char **)puVar8 == &DAT_00394fa0;\n          if (bVar12) {\nLAB_000e6e78:\n            bVar11 = puVar8 < &DAT_00394fa0;\n            local_20[0] = 0;\n            iVar9 = 6;\n            pbVar10 = (byte *)0x28e8f9;\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar11 = *local_34 < *pbVar10;\n              bVar12 = *local_34 == *pbVar10;\n              local_34 = local_34 + (uint)bVar13 * -2 + 1;\n              pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1;\n            } while (bVar12);\n            if ((!bVar11 && !bVar12) == bVar11) {\n              local_24 = (byte *)0x28e8f9;\n            }\n            puVar8 = (undefined4 *)FUN_000df460(&local_24,local_20);\n            if (puVar8 == (undefined4 *)0x0) {\n              gettext("unknown -z option");\n              FUN_000dcd10();\n              ppuVar1 = local_28;\n              goto LAB_000e704d;\n            }\n            local_34 = local_24;\n          }\n        }\n        else {\nLAB_000e6da4:\n          local_24 = pbVar5;\n          local_28 = ppuVar1;\n          bVar12 = (char **)puVar8 == &DAT_00394fa0;\n          if (bVar12) goto LAB_000e6e78;\n        }\n        iVar6 = iVar6 + 1;\n        (*(code *)**(undefined4 **)puVar8[0xc])\n                  ((undefined4 *)puVar8[0xc],*puVar2,local_34,param_1,param_1 + 4);\n        if (local_28 != ppuVar4) {\n          return local_28;\n        }\n        pcVar7 = *(char **)(param_3 + (int)ppuVar4 * 4);\n      } while (*pcVar7 == '-');\n    }\n    pcVar7 = "unknown option";\nLAB_000e6e04:\n    local_30 = &__DT_PLTGOT;\n    gettext(pcVar7);\n    FUN_000dcd10();\n    param_5 = extraout_EDX;\n    param_4 = local_30;\n  }\n  *param_5 = '\x01';\n  return (undefined **)((int)param_4 + 1);\n}" type_identifier (pointer_declarator "** FUN_000e6c60(int param_1,int param_2,int param_3,undefined **param_4,char *param_5)" * (pointer_declarator "* FUN_000e6c60(int param_1,int param_2,int param_3,undefined **param_4,char *param_5)" * (function_declarator "FUN_000e6c60(int param_1,int param_2,int param_3,undefined **param_4,char *param_5)" identifier (parameter_list "(int param_1,int param_2,int param_3,undefined **param_4,char *param_5)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "undefined **param_4" type_identifier (pointer_declarator "**param_4" * (pointer_declarator "*param_4" * identifier))) , (parameter_declaration "char *param_5" primitive_type (pointer_declarator "*param_5" * identifier)) ))))) (compound_statement "{\n  undefined **ppuVar1;\n  undefined4 *puVar2;\n  char cVar3;\n  undefined **ppuVar4;\n  byte *pbVar5;\n  int iVar6;\n  char *pcVar7;\n  undefined4 *puVar8;\n  char *__s;\n  int iVar9;\n  char *extraout_EDX;\n  byte *pbVar10;\n  bool bVar11;\n  bool bVar12;\n  byte bVar13;\n  byte *local_34;\n  undefined **local_30;\n  undefined **local_28;\n  byte *local_24;\n  undefined4 local_20 [4];\n  \n  bVar13 = 0;\n  puVar2 = (undefined4 *)(param_3 + (int)param_4 * 4);\n  pcVar7 = (char *)*puVar2;\n  if ((*pcVar7 != '-') || (*param_5 != '\0')) {\n                    \n    FUN_00069d00("../../gold/options.cc",0x5f0,"process_one_option",pcVar7);\n  }\n  if ((pcVar7[1] != '-') || (pcVar7[2] != '\0')) {\n    local_28 = param_4;\n    local_24 = (byte *)0x0;\n    iVar6 = FUN_000df460(&local_24,&local_28);\n    ppuVar4 = local_28;\n    if (iVar6 != 0) {\n      (**(code **)**(undefined4 **)(iVar6 + 0x30))\n                (*(undefined4 **)(iVar6 + 0x30),*puVar2,local_24,param_1,param_1 + 4);\n      return local_28;\n    }\n    if ((param_4 == local_28) && (pcVar7 = *(char **)(param_3 + (int)local_28 * 4), *pcVar7 == '-'))\n    {\n      iVar6 = 1;\n      do {\n        if ((DAT_00394f90 == '\0') && (iVar9 = FUN_001e5390(&DAT_00394f90), iVar9 != 0)) {\n          DAT_00394fa0 = &DAT_00394fa8;\n                    \n          FUN_00050e40(&DAT_00394fa0,"","",0,&DAT_00394fa8);\n          DAT_00394fc0 = "";\n          DAT_00394fb8 = 4;\n          DAT_00394fbc = 0x7a;\n          DAT_00394fc4 = 0;\n          DAT_00394fc8 = "Z-OPTION";\n          DAT_00394fcc = 0;\n          DAT_00394fd0 = 0;\n          DAT_00394fd4 = 0;\n          __s = strchr(DAT_00394fa0,0x5f);\n          if (__s != (char *)0x0) {\n            do {\n              *__s = '-';\n              __s = strchr(__s,0x5f);\n            } while (__s != (char *)0x0);\n            if ((DAT_00394fc4 != 0) && (DAT_003951f0 != '\0')) {\n                    \n              FUN_000df670();\n            }\n          }\n          FUN_001e5500(&DAT_00394f90);\n          __cxa_atexit(FUN_000e8e10,&DAT_00394fa0,&PTR_LOOP_0038f2e4);\n        }\n        cVar3 = pcVar7[iVar6];\n        if (cVar3 == 'z') {\n          pbVar10 = (byte *)(pcVar7 + iVar6 + 1);\n          puVar8 = &DAT_00394fa0;\n          local_34 = (byte *)DAT_00394fc8;\n          if ((byte *)DAT_00394fc8 == (byte *)0x0) goto LAB_000e6e4d;\nLAB_000e6d8c:\n          ppuVar1 = (undefined **)((int)local_28 + 1);\n          local_34 = pbVar10;\n          pbVar5 = pbVar10;\n          if (*pbVar10 != 0) goto LAB_000e6da4;\n          if (*(char *)(puVar8 + 0xb) != '\0') {\n            local_34 = (byte *)puVar8[8];\n            pbVar5 = (byte *)puVar8[8];\n            goto LAB_000e6da4;\n          }\n          if ((int)ppuVar1 < param_2) {\n            local_34 = *(byte **)(param_3 + (int)ppuVar1 * 4);\n            ppuVar1 = (undefined **)((int)local_28 + 2);\n            pbVar5 = local_34;\n            goto LAB_000e6da4;\n          }\nLAB_000e704d:\n          local_28 = ppuVar1;\n          pcVar7 = "missing argument";\n          goto LAB_000e6e04;\n        }\n        if ((0x7e < (int)cVar3 - 1U) ||\n           (puVar8 = *(undefined4 **)(&DAT_00394fe0 + cVar3 * 4), puVar8 == (undefined4 *)0x0))\n        break;\n        local_34 = (byte *)puVar8[10];\n        pbVar10 = (byte *)(pcVar7 + iVar6 + 1);\n        if (local_34 != (byte *)0x0) goto LAB_000e6d8c;\nLAB_000e6e4d:\n        local_24 = (byte *)0x0;\n        ppuVar1 = local_28;\n        pbVar5 = local_24;\n        if (*pbVar10 == 0) {\n          local_28 = (undefined **)((int)local_28 + 1);\n          bVar12 = (char **)puVar8 == &DAT_00394fa0;\n          if (bVar12) {\nLAB_000e6e78:\n            bVar11 = puVar8 < &DAT_00394fa0;\n            local_20[0] = 0;\n            iVar9 = 6;\n            pbVar10 = (byte *)0x28e8f9;\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar11 = *local_34 < *pbVar10;\n              bVar12 = *local_34 == *pbVar10;\n              local_34 = local_34 + (uint)bVar13 * -2 + 1;\n              pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1;\n            } while (bVar12);\n            if ((!bVar11 && !bVar12) == bVar11) {\n              local_24 = (byte *)0x28e8f9;\n            }\n            puVar8 = (undefined4 *)FUN_000df460(&local_24,local_20);\n            if (puVar8 == (undefined4 *)0x0) {\n              gettext("unknown -z option");\n              FUN_000dcd10();\n              ppuVar1 = local_28;\n              goto LAB_000e704d;\n            }\n            local_34 = local_24;\n          }\n        }\n        else {\nLAB_000e6da4:\n          local_24 = pbVar5;\n          local_28 = ppuVar1;\n          bVar12 = (char **)puVar8 == &DAT_00394fa0;\n          if (bVar12) goto LAB_000e6e78;\n        }\n        iVar6 = iVar6 + 1;\n        (*(code *)**(undefined4 **)puVar8[0xc])\n                  ((undefined4 *)puVar8[0xc],*puVar2,local_34,param_1,param_1 + 4);\n        if (local_28 != ppuVar4) {\n          return local_28;\n        }\n        pcVar7 = *(char **)(param_3 + (int)ppuVar4 * 4);\n      } while (*pcVar7 == '-');\n    }\n    pcVar7 = "unknown option";\nLAB_000e6e04:\n    local_30 = &__DT_PLTGOT;\n    gettext(pcVar7);\n    FUN_000dcd10();\n    param_5 = extraout_EDX;\n    param_4 = local_30;\n  }\n  *param_5 = '\x01';\n  return (undefined **)((int)param_4 + 1);\n}" { (declaration "undefined **ppuVar1;" type_identifier (pointer_declarator "**ppuVar1" * (pointer_declarator "*ppuVar1" * identifier)) ;) (declaration "undefined4 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "char cVar3;" primitive_type identifier ;) (declaration "undefined **ppuVar4;" type_identifier (pointer_declarator "**ppuVar4" * (pointer_declarator "*ppuVar4" * identifier)) ;) (declaration "byte *pbVar5;" type_identifier (pointer_declarator "*pbVar5" * identifier) ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "char *pcVar7;" primitive_type (pointer_declarator "*pcVar7" * identifier) ;) (declaration "undefined4 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "char *__s;" primitive_type (pointer_declarator "*__s" * identifier) ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "char *extraout_EDX;" primitive_type (pointer_declarator "*extraout_EDX" * identifier) ;) (declaration "byte *pbVar10;" type_identifier (pointer_declarator "*pbVar10" * identifier) ;) (declaration "bool bVar11;" primitive_type identifier ;) (declaration "bool bVar12;" primitive_type identifier ;) (declaration "byte bVar13;" type_identifier identifier ;) (declaration "byte *local_34;" type_identifier (pointer_declarator "*local_34" * identifier) ;) (declaration "undefined **local_30;" type_identifier (pointer_declarator "**local_30" * (pointer_declarator "*local_30" * identifier)) ;) (declaration "undefined **local_28;" type_identifier (pointer_declarator "**local_28" * (pointer_declarator "*local_28" * identifier)) ;) (declaration "byte *local_24;" type_identifier (pointer_declarator "*local_24" * identifier) ;) (declaration "undefined4 local_20 [4];" type_identifier (array_declarator "local_20 [4]" identifier [ number_literal ]) ;) (expression_statement "bVar13 = 0;" (assignment_expression "bVar13 = 0" identifier = number_literal) ;) (expression_statement "puVar2 = (undefined4 *)(param_3 + (int)param_4 * 4);" (assignment_expression "puVar2 = (undefined4 *)(param_3 + (int)param_4 * 4)" identifier = (cast_expression "(undefined4 *)(param_3 + (int)param_4 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + (int)param_4 * 4)" ( (binary_expression "param_3 + (int)param_4 * 4" identifier + (binary_expression "(int)param_4 * 4" (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) )))) ;) (expression_statement "pcVar7 = (char *)*puVar2;" (assignment_expression "pcVar7 = (char *)*puVar2" identifier = (cast_expression "(char *)*puVar2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar2" * identifier))) ;) (if_statement "if ((*pcVar7 != '-') || (*param_5 != '\0')) {\n                    \n    FUN_00069d00("../../gold/options.cc",0x5f0,"process_one_option",pcVar7);\n  }" if (parenthesized_expression "((*pcVar7 != '-') || (*param_5 != '\0'))" ( (binary_expression "(*pcVar7 != '-') || (*param_5 != '\0')" (parenthesized_expression "(*pcVar7 != '-')" ( (binary_expression "*pcVar7 != '-'" (pointer_expression "*pcVar7" * identifier) != (char_literal "'-'" ' character ')) )) || (parenthesized_expression "(*param_5 != '\0')" ( (binary_expression "*param_5 != '\0'" (pointer_expression "*param_5" * identifier) != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n                    \n    FUN_00069d00("../../gold/options.cc",0x5f0,"process_one_option",pcVar7);\n  }" { (expression_statement "FUN_00069d00("../../gold/options.cc",0x5f0,"process_one_option",pcVar7);" (call_expression "FUN_00069d00("../../gold/options.cc",0x5f0,"process_one_option",pcVar7)" identifier (argument_list "("../../gold/options.cc",0x5f0,"process_one_option",pcVar7)" ( (string_literal ""../../gold/options.cc"" " string_content ") , number_literal , (string_literal ""process_one_option"" " string_content ") , identifier ))) ;) })) (if_statement "if ((pcVar7[1] != '-') || (pcVar7[2] != '\0')) {\n    local_28 = param_4;\n    local_24 = (byte *)0x0;\n    iVar6 = FUN_000df460(&local_24,&local_28);\n    ppuVar4 = local_28;\n    if (iVar6 != 0) {\n      (**(code **)**(undefined4 **)(iVar6 + 0x30))\n                (*(undefined4 **)(iVar6 + 0x30),*puVar2,local_24,param_1,param_1 + 4);\n      return local_28;\n    }\n    if ((param_4 == local_28) && (pcVar7 = *(char **)(param_3 + (int)local_28 * 4), *pcVar7 == '-'))\n    {\n      iVar6 = 1;\n      do {\n        if ((DAT_00394f90 == '\0') && (iVar9 = FUN_001e5390(&DAT_00394f90), iVar9 != 0)) {\n          DAT_00394fa0 = &DAT_00394fa8;\n                    \n          FUN_00050e40(&DAT_00394fa0,"","",0,&DAT_00394fa8);\n          DAT_00394fc0 = "";\n          DAT_00394fb8 = 4;\n          DAT_00394fbc = 0x7a;\n          DAT_00394fc4 = 0;\n          DAT_00394fc8 = "Z-OPTION";\n          DAT_00394fcc = 0;\n          DAT_00394fd0 = 0;\n          DAT_00394fd4 = 0;\n          __s = strchr(DAT_00394fa0,0x5f);\n          if (__s != (char *)0x0) {\n            do {\n              *__s = '-';\n              __s = strchr(__s,0x5f);\n            } while (__s != (char *)0x0);\n            if ((DAT_00394fc4 != 0) && (DAT_003951f0 != '\0')) {\n                    \n              FUN_000df670();\n            }\n          }\n          FUN_001e5500(&DAT_00394f90);\n          __cxa_atexit(FUN_000e8e10,&DAT_00394fa0,&PTR_LOOP_0038f2e4);\n        }\n        cVar3 = pcVar7[iVar6];\n        if (cVar3 == 'z') {\n          pbVar10 = (byte *)(pcVar7 + iVar6 + 1);\n          puVar8 = &DAT_00394fa0;\n          local_34 = (byte *)DAT_00394fc8;\n          if ((byte *)DAT_00394fc8 == (byte *)0x0) goto LAB_000e6e4d;\nLAB_000e6d8c:\n          ppuVar1 = (undefined **)((int)local_28 + 1);\n          local_34 = pbVar10;\n          pbVar5 = pbVar10;\n          if (*pbVar10 != 0) goto LAB_000e6da4;\n          if (*(char *)(puVar8 + 0xb) != '\0') {\n            local_34 = (byte *)puVar8[8];\n            pbVar5 = (byte *)puVar8[8];\n            goto LAB_000e6da4;\n          }\n          if ((int)ppuVar1 < param_2) {\n            local_34 = *(byte **)(param_3 + (int)ppuVar1 * 4);\n            ppuVar1 = (undefined **)((int)local_28 + 2);\n            pbVar5 = local_34;\n            goto LAB_000e6da4;\n          }\nLAB_000e704d:\n          local_28 = ppuVar1;\n          pcVar7 = "missing argument";\n          goto LAB_000e6e04;\n        }\n        if ((0x7e < (int)cVar3 - 1U) ||\n           (puVar8 = *(undefined4 **)(&DAT_00394fe0 + cVar3 * 4), puVar8 == (undefined4 *)0x0))\n        break;\n        local_34 = (byte *)puVar8[10];\n        pbVar10 = (byte *)(pcVar7 + iVar6 + 1);\n        if (local_34 != (byte *)0x0) goto LAB_000e6d8c;\nLAB_000e6e4d:\n        local_24 = (byte *)0x0;\n        ppuVar1 = local_28;\n        pbVar5 = local_24;\n        if (*pbVar10 == 0) {\n          local_28 = (undefined **)((int)local_28 + 1);\n          bVar12 = (char **)puVar8 == &DAT_00394fa0;\n          if (bVar12) {\nLAB_000e6e78:\n            bVar11 = puVar8 < &DAT_00394fa0;\n            local_20[0] = 0;\n            iVar9 = 6;\n            pbVar10 = (byte *)0x28e8f9;\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar11 = *local_34 < *pbVar10;\n              bVar12 = *local_34 == *pbVar10;\n              local_34 = local_34 + (uint)bVar13 * -2 + 1;\n              pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1;\n            } while (bVar12);\n            if ((!bVar11 && !bVar12) == bVar11) {\n              local_24 = (byte *)0x28e8f9;\n            }\n            puVar8 = (undefined4 *)FUN_000df460(&local_24,local_20);\n            if (puVar8 == (undefined4 *)0x0) {\n              gettext("unknown -z option");\n              FUN_000dcd10();\n              ppuVar1 = local_28;\n              goto LAB_000e704d;\n            }\n            local_34 = local_24;\n          }\n        }\n        else {\nLAB_000e6da4:\n          local_24 = pbVar5;\n          local_28 = ppuVar1;\n          bVar12 = (char **)puVar8 == &DAT_00394fa0;\n          if (bVar12) goto LAB_000e6e78;\n        }\n        iVar6 = iVar6 + 1;\n        (*(code *)**(undefined4 **)puVar8[0xc])\n                  ((undefined4 *)puVar8[0xc],*puVar2,local_34,param_1,param_1 + 4);\n        if (local_28 != ppuVar4) {\n          return local_28;\n        }\n        pcVar7 = *(char **)(param_3 + (int)ppuVar4 * 4);\n      } while (*pcVar7 == '-');\n    }\n    pcVar7 = "unknown option";\nLAB_000e6e04:\n    local_30 = &__DT_PLTGOT;\n    gettext(pcVar7);\n    FUN_000dcd10();\n    param_5 = extraout_EDX;\n    param_4 = local_30;\n  }" if (parenthesized_expression "((pcVar7[1] != '-') || (pcVar7[2] != '\0'))" ( (binary_expression "(pcVar7[1] != '-') || (pcVar7[2] != '\0')" (parenthesized_expression "(pcVar7[1] != '-')" ( (binary_expression "pcVar7[1] != '-'" (subscript_expression "pcVar7[1]" identifier [ number_literal ]) != (char_literal "'-'" ' character ')) )) || (parenthesized_expression "(pcVar7[2] != '\0')" ( (binary_expression "pcVar7[2] != '\0'" (subscript_expression "pcVar7[2]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n    local_28 = param_4;\n    local_24 = (byte *)0x0;\n    iVar6 = FUN_000df460(&local_24,&local_28);\n    ppuVar4 = local_28;\n    if (iVar6 != 0) {\n      (**(code **)**(undefined4 **)(iVar6 + 0x30))\n                (*(undefined4 **)(iVar6 + 0x30),*puVar2,local_24,param_1,param_1 + 4);\n      return local_28;\n    }\n    if ((param_4 == local_28) && (pcVar7 = *(char **)(param_3 + (int)local_28 * 4), *pcVar7 == '-'))\n    {\n      iVar6 = 1;\n      do {\n        if ((DAT_00394f90 == '\0') && (iVar9 = FUN_001e5390(&DAT_00394f90), iVar9 != 0)) {\n          DAT_00394fa0 = &DAT_00394fa8;\n                    \n          FUN_00050e40(&DAT_00394fa0,"","",0,&DAT_00394fa8);\n          DAT_00394fc0 = "";\n          DAT_00394fb8 = 4;\n          DAT_00394fbc = 0x7a;\n          DAT_00394fc4 = 0;\n          DAT_00394fc8 = "Z-OPTION";\n          DAT_00394fcc = 0;\n          DAT_00394fd0 = 0;\n          DAT_00394fd4 = 0;\n          __s = strchr(DAT_00394fa0,0x5f);\n          if (__s != (char *)0x0) {\n            do {\n              *__s = '-';\n              __s = strchr(__s,0x5f);\n            } while (__s != (char *)0x0);\n            if ((DAT_00394fc4 != 0) && (DAT_003951f0 != '\0')) {\n                    \n              FUN_000df670();\n            }\n          }\n          FUN_001e5500(&DAT_00394f90);\n          __cxa_atexit(FUN_000e8e10,&DAT_00394fa0,&PTR_LOOP_0038f2e4);\n        }\n        cVar3 = pcVar7[iVar6];\n        if (cVar3 == 'z') {\n          pbVar10 = (byte *)(pcVar7 + iVar6 + 1);\n          puVar8 = &DAT_00394fa0;\n          local_34 = (byte *)DAT_00394fc8;\n          if ((byte *)DAT_00394fc8 == (byte *)0x0) goto LAB_000e6e4d;\nLAB_000e6d8c:\n          ppuVar1 = (undefined **)((int)local_28 + 1);\n          local_34 = pbVar10;\n          pbVar5 = pbVar10;\n          if (*pbVar10 != 0) goto LAB_000e6da4;\n          if (*(char *)(puVar8 + 0xb) != '\0') {\n            local_34 = (byte *)puVar8[8];\n            pbVar5 = (byte *)puVar8[8];\n            goto LAB_000e6da4;\n          }\n          if ((int)ppuVar1 < param_2) {\n            local_34 = *(byte **)(param_3 + (int)ppuVar1 * 4);\n            ppuVar1 = (undefined **)((int)local_28 + 2);\n            pbVar5 = local_34;\n            goto LAB_000e6da4;\n          }\nLAB_000e704d:\n          local_28 = ppuVar1;\n          pcVar7 = "missing argument";\n          goto LAB_000e6e04;\n        }\n        if ((0x7e < (int)cVar3 - 1U) ||\n           (puVar8 = *(undefined4 **)(&DAT_00394fe0 + cVar3 * 4), puVar8 == (undefined4 *)0x0))\n        break;\n        local_34 = (byte *)puVar8[10];\n        pbVar10 = (byte *)(pcVar7 + iVar6 + 1);\n        if (local_34 != (byte *)0x0) goto LAB_000e6d8c;\nLAB_000e6e4d:\n        local_24 = (byte *)0x0;\n        ppuVar1 = local_28;\n        pbVar5 = local_24;\n        if (*pbVar10 == 0) {\n          local_28 = (undefined **)((int)local_28 + 1);\n          bVar12 = (char **)puVar8 == &DAT_00394fa0;\n          if (bVar12) {\nLAB_000e6e78:\n            bVar11 = puVar8 < &DAT_00394fa0;\n            local_20[0] = 0;\n            iVar9 = 6;\n            pbVar10 = (byte *)0x28e8f9;\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar11 = *local_34 < *pbVar10;\n              bVar12 = *local_34 == *pbVar10;\n              local_34 = local_34 + (uint)bVar13 * -2 + 1;\n              pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1;\n            } while (bVar12);\n            if ((!bVar11 && !bVar12) == bVar11) {\n              local_24 = (byte *)0x28e8f9;\n            }\n            puVar8 = (undefined4 *)FUN_000df460(&local_24,local_20);\n            if (puVar8 == (undefined4 *)0x0) {\n              gettext("unknown -z option");\n              FUN_000dcd10();\n              ppuVar1 = local_28;\n              goto LAB_000e704d;\n            }\n            local_34 = local_24;\n          }\n        }\n        else {\nLAB_000e6da4:\n          local_24 = pbVar5;\n          local_28 = ppuVar1;\n          bVar12 = (char **)puVar8 == &DAT_00394fa0;\n          if (bVar12) goto LAB_000e6e78;\n        }\n        iVar6 = iVar6 + 1;\n        (*(code *)**(undefined4 **)puVar8[0xc])\n                  ((undefined4 *)puVar8[0xc],*puVar2,local_34,param_1,param_1 + 4);\n        if (local_28 != ppuVar4) {\n          return local_28;\n        }\n        pcVar7 = *(char **)(param_3 + (int)ppuVar4 * 4);\n      } while (*pcVar7 == '-');\n    }\n    pcVar7 = "unknown option";\nLAB_000e6e04:\n    local_30 = &__DT_PLTGOT;\n    gettext(pcVar7);\n    FUN_000dcd10();\n    param_5 = extraout_EDX;\n    param_4 = local_30;\n  }" { (expression_statement "local_28 = param_4;" (assignment_expression "local_28 = param_4" identifier = identifier) ;) (expression_statement "local_24 = (byte *)0x0;" (assignment_expression "local_24 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar6 = FUN_000df460(&local_24,&local_28);" (assignment_expression "iVar6 = FUN_000df460(&local_24,&local_28)" identifier = (call_expression "FUN_000df460(&local_24,&local_28)" identifier (argument_list "(&local_24,&local_28)" ( (pointer_expression "&local_24" & identifier) , (pointer_expression "&local_28" & identifier) )))) ;) (expression_statement "ppuVar4 = local_28;" (assignment_expression "ppuVar4 = local_28" identifier = identifier) ;) (if_statement "if (iVar6 != 0) {\n      (**(code **)**(undefined4 **)(iVar6 + 0x30))\n                (*(undefined4 **)(iVar6 + 0x30),*puVar2,local_24,param_1,param_1 + 4);\n      return local_28;\n    }" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (compound_statement "{\n      (**(code **)**(undefined4 **)(iVar6 + 0x30))\n                (*(undefined4 **)(iVar6 + 0x30),*puVar2,local_24,param_1,param_1 + 4);\n      return local_28;\n    }" { (expression_statement "(**(code **)**(undefined4 **)(iVar6 + 0x30))\n                (*(undefined4 **)(iVar6 + 0x30),*puVar2,local_24,param_1,param_1 + 4);" (call_expression "(**(code **)**(undefined4 **)(iVar6 + 0x30))\n                (*(undefined4 **)(iVar6 + 0x30),*puVar2,local_24,param_1,param_1 + 4)" (parenthesized_expression "(**(code **)**(undefined4 **)(iVar6 + 0x30))" ( (pointer_expression "**(code **)**(undefined4 **)(iVar6 + 0x30)" * (pointer_expression "*(code **)**(undefined4 **)(iVar6 + 0x30)" * (cast_expression "(code **)**(undefined4 **)(iVar6 + 0x30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "**(undefined4 **)(iVar6 + 0x30)" * (pointer_expression "*(undefined4 **)(iVar6 + 0x30)" * (cast_expression "(undefined4 **)(iVar6 + 0x30)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar6 + 0x30)" ( (binary_expression "iVar6 + 0x30" identifier + number_literal) )))))))) )) (argument_list "(*(undefined4 **)(iVar6 + 0x30),*puVar2,local_24,param_1,param_1 + 4)" ( (pointer_expression "*(undefined4 **)(iVar6 + 0x30)" * (cast_expression "(undefined4 **)(iVar6 + 0x30)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar6 + 0x30)" ( (binary_expression "iVar6 + 0x30" identifier + number_literal) )))) , (pointer_expression "*puVar2" * identifier) , identifier , identifier , (binary_expression "param_1 + 4" identifier + number_literal) ))) ;) (return_statement "return local_28;" return identifier ;) })) (if_statement "if ((param_4 == local_28) && (pcVar7 = *(char **)(param_3 + (int)local_28 * 4), *pcVar7 == '-'))\n    {\n      iVar6 = 1;\n      do {\n        if ((DAT_00394f90 == '\0') && (iVar9 = FUN_001e5390(&DAT_00394f90), iVar9 != 0)) {\n          DAT_00394fa0 = &DAT_00394fa8;\n                    \n          FUN_00050e40(&DAT_00394fa0,"","",0,&DAT_00394fa8);\n          DAT_00394fc0 = "";\n          DAT_00394fb8 = 4;\n          DAT_00394fbc = 0x7a;\n          DAT_00394fc4 = 0;\n          DAT_00394fc8 = "Z-OPTION";\n          DAT_00394fcc = 0;\n          DAT_00394fd0 = 0;\n          DAT_00394fd4 = 0;\n          __s = strchr(DAT_00394fa0,0x5f);\n          if (__s != (char *)0x0) {\n            do {\n              *__s = '-';\n              __s = strchr(__s,0x5f);\n            } while (__s != (char *)0x0);\n            if ((DAT_00394fc4 != 0) && (DAT_003951f0 != '\0')) {\n                    \n              FUN_000df670();\n            }\n          }\n          FUN_001e5500(&DAT_00394f90);\n          __cxa_atexit(FUN_000e8e10,&DAT_00394fa0,&PTR_LOOP_0038f2e4);\n        }\n        cVar3 = pcVar7[iVar6];\n        if (cVar3 == 'z') {\n          pbVar10 = (byte *)(pcVar7 + iVar6 + 1);\n          puVar8 = &DAT_00394fa0;\n          local_34 = (byte *)DAT_00394fc8;\n          if ((byte *)DAT_00394fc8 == (byte *)0x0) goto LAB_000e6e4d;\nLAB_000e6d8c:\n          ppuVar1 = (undefined **)((int)local_28 + 1);\n          local_34 = pbVar10;\n          pbVar5 = pbVar10;\n          if (*pbVar10 != 0) goto LAB_000e6da4;\n          if (*(char *)(puVar8 + 0xb) != '\0') {\n            local_34 = (byte *)puVar8[8];\n            pbVar5 = (byte *)puVar8[8];\n            goto LAB_000e6da4;\n          }\n          if ((int)ppuVar1 < param_2) {\n            local_34 = *(byte **)(param_3 + (int)ppuVar1 * 4);\n            ppuVar1 = (undefined **)((int)local_28 + 2);\n            pbVar5 = local_34;\n            goto LAB_000e6da4;\n          }\nLAB_000e704d:\n          local_28 = ppuVar1;\n          pcVar7 = "missing argument";\n          goto LAB_000e6e04;\n        }\n        if ((0x7e < (int)cVar3 - 1U) ||\n           (puVar8 = *(undefined4 **)(&DAT_00394fe0 + cVar3 * 4), puVar8 == (undefined4 *)0x0))\n        break;\n        local_34 = (byte *)puVar8[10];\n        pbVar10 = (byte *)(pcVar7 + iVar6 + 1);\n        if (local_34 != (byte *)0x0) goto LAB_000e6d8c;\nLAB_000e6e4d:\n        local_24 = (byte *)0x0;\n        ppuVar1 = local_28;\n        pbVar5 = local_24;\n        if (*pbVar10 == 0) {\n          local_28 = (undefined **)((int)local_28 + 1);\n          bVar12 = (char **)puVar8 == &DAT_00394fa0;\n          if (bVar12) {\nLAB_000e6e78:\n            bVar11 = puVar8 < &DAT_00394fa0;\n            local_20[0] = 0;\n            iVar9 = 6;\n            pbVar10 = (byte *)0x28e8f9;\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar11 = *local_34 < *pbVar10;\n              bVar12 = *local_34 == *pbVar10;\n              local_34 = local_34 + (uint)bVar13 * -2 + 1;\n              pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1;\n            } while (bVar12);\n            if ((!bVar11 && !bVar12) == bVar11) {\n              local_24 = (byte *)0x28e8f9;\n            }\n            puVar8 = (undefined4 *)FUN_000df460(&local_24,local_20);\n            if (puVar8 == (undefined4 *)0x0) {\n              gettext("unknown -z option");\n              FUN_000dcd10();\n              ppuVar1 = local_28;\n              goto LAB_000e704d;\n            }\n            local_34 = local_24;\n          }\n        }\n        else {\nLAB_000e6da4:\n          local_24 = pbVar5;\n          local_28 = ppuVar1;\n          bVar12 = (char **)puVar8 == &DAT_00394fa0;\n          if (bVar12) goto LAB_000e6e78;\n        }\n        iVar6 = iVar6 + 1;\n        (*(code *)**(undefined4 **)puVar8[0xc])\n                  ((undefined4 *)puVar8[0xc],*puVar2,local_34,param_1,param_1 + 4);\n        if (local_28 != ppuVar4) {\n          return local_28;\n        }\n        pcVar7 = *(char **)(param_3 + (int)ppuVar4 * 4);\n      } while (*pcVar7 == '-');\n    }" if (parenthesized_expression "((param_4 == local_28) && (pcVar7 = *(char **)(param_3 + (int)local_28 * 4), *pcVar7 == '-'))" ( (binary_expression "(param_4 == local_28) && (pcVar7 = *(char **)(param_3 + (int)local_28 * 4), *pcVar7 == '-')" (parenthesized_expression "(param_4 == local_28)" ( (binary_expression "param_4 == local_28" identifier == identifier) )) && (parenthesized_expression "(pcVar7 = *(char **)(param_3 + (int)local_28 * 4), *pcVar7 == '-')" ( (comma_expression "pcVar7 = *(char **)(param_3 + (int)local_28 * 4), *pcVar7 == '-'" (assignment_expression "pcVar7 = *(char **)(param_3 + (int)local_28 * 4)" identifier = (pointer_expression "*(char **)(param_3 + (int)local_28 * 4)" * (cast_expression "(char **)(param_3 + (int)local_28 * 4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_3 + (int)local_28 * 4)" ( (binary_expression "param_3 + (int)local_28 * 4" identifier + (binary_expression "(int)local_28 * 4" (cast_expression "(int)local_28" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ))))) , (binary_expression "*pcVar7 == '-'" (pointer_expression "*pcVar7" * identifier) == (char_literal "'-'" ' character '))) ))) )) (compound_statement "{\n      iVar6 = 1;\n      do {\n        if ((DAT_00394f90 == '\0') && (iVar9 = FUN_001e5390(&DAT_00394f90), iVar9 != 0)) {\n          DAT_00394fa0 = &DAT_00394fa8;\n                    \n          FUN_00050e40(&DAT_00394fa0,"","",0,&DAT_00394fa8);\n          DAT_00394fc0 = "";\n          DAT_00394fb8 = 4;\n          DAT_00394fbc = 0x7a;\n          DAT_00394fc4 = 0;\n          DAT_00394fc8 = "Z-OPTION";\n          DAT_00394fcc = 0;\n          DAT_00394fd0 = 0;\n          DAT_00394fd4 = 0;\n          __s = strchr(DAT_00394fa0,0x5f);\n          if (__s != (char *)0x0) {\n            do {\n              *__s = '-';\n              __s = strchr(__s,0x5f);\n            } while (__s != (char *)0x0);\n            if ((DAT_00394fc4 != 0) && (DAT_003951f0 != '\0')) {\n                    \n              FUN_000df670();\n            }\n          }\n          FUN_001e5500(&DAT_00394f90);\n          __cxa_atexit(FUN_000e8e10,&DAT_00394fa0,&PTR_LOOP_0038f2e4);\n        }\n        cVar3 = pcVar7[iVar6];\n        if (cVar3 == 'z') {\n          pbVar10 = (byte *)(pcVar7 + iVar6 + 1);\n          puVar8 = &DAT_00394fa0;\n          local_34 = (byte *)DAT_00394fc8;\n          if ((byte *)DAT_00394fc8 == (byte *)0x0) goto LAB_000e6e4d;\nLAB_000e6d8c:\n          ppuVar1 = (undefined **)((int)local_28 + 1);\n          local_34 = pbVar10;\n          pbVar5 = pbVar10;\n          if (*pbVar10 != 0) goto LAB_000e6da4;\n          if (*(char *)(puVar8 + 0xb) != '\0') {\n            local_34 = (byte *)puVar8[8];\n            pbVar5 = (byte *)puVar8[8];\n            goto LAB_000e6da4;\n          }\n          if ((int)ppuVar1 < param_2) {\n            local_34 = *(byte **)(param_3 + (int)ppuVar1 * 4);\n            ppuVar1 = (undefined **)((int)local_28 + 2);\n            pbVar5 = local_34;\n            goto LAB_000e6da4;\n          }\nLAB_000e704d:\n          local_28 = ppuVar1;\n          pcVar7 = "missing argument";\n          goto LAB_000e6e04;\n        }\n        if ((0x7e < (int)cVar3 - 1U) ||\n           (puVar8 = *(undefined4 **)(&DAT_00394fe0 + cVar3 * 4), puVar8 == (undefined4 *)0x0))\n        break;\n        local_34 = (byte *)puVar8[10];\n        pbVar10 = (byte *)(pcVar7 + iVar6 + 1);\n        if (local_34 != (byte *)0x0) goto LAB_000e6d8c;\nLAB_000e6e4d:\n        local_24 = (byte *)0x0;\n        ppuVar1 = local_28;\n        pbVar5 = local_24;\n        if (*pbVar10 == 0) {\n          local_28 = (undefined **)((int)local_28 + 1);\n          bVar12 = (char **)puVar8 == &DAT_00394fa0;\n          if (bVar12) {\nLAB_000e6e78:\n            bVar11 = puVar8 < &DAT_00394fa0;\n            local_20[0] = 0;\n            iVar9 = 6;\n            pbVar10 = (byte *)0x28e8f9;\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar11 = *local_34 < *pbVar10;\n              bVar12 = *local_34 == *pbVar10;\n              local_34 = local_34 + (uint)bVar13 * -2 + 1;\n              pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1;\n            } while (bVar12);\n            if ((!bVar11 && !bVar12) == bVar11) {\n              local_24 = (byte *)0x28e8f9;\n            }\n            puVar8 = (undefined4 *)FUN_000df460(&local_24,local_20);\n            if (puVar8 == (undefined4 *)0x0) {\n              gettext("unknown -z option");\n              FUN_000dcd10();\n              ppuVar1 = local_28;\n              goto LAB_000e704d;\n            }\n            local_34 = local_24;\n          }\n        }\n        else {\nLAB_000e6da4:\n          local_24 = pbVar5;\n          local_28 = ppuVar1;\n          bVar12 = (char **)puVar8 == &DAT_00394fa0;\n          if (bVar12) goto LAB_000e6e78;\n        }\n        iVar6 = iVar6 + 1;\n        (*(code *)**(undefined4 **)puVar8[0xc])\n                  ((undefined4 *)puVar8[0xc],*puVar2,local_34,param_1,param_1 + 4);\n        if (local_28 != ppuVar4) {\n          return local_28;\n        }\n        pcVar7 = *(char **)(param_3 + (int)ppuVar4 * 4);\n      } while (*pcVar7 == '-');\n    }" { (expression_statement "iVar6 = 1;" (assignment_expression "iVar6 = 1" identifier = number_literal) ;) (do_statement "do {\n        if ((DAT_00394f90 == '\0') && (iVar9 = FUN_001e5390(&DAT_00394f90), iVar9 != 0)) {\n          DAT_00394fa0 = &DAT_00394fa8;\n                    \n          FUN_00050e40(&DAT_00394fa0,"","",0,&DAT_00394fa8);\n          DAT_00394fc0 = "";\n          DAT_00394fb8 = 4;\n          DAT_00394fbc = 0x7a;\n          DAT_00394fc4 = 0;\n          DAT_00394fc8 = "Z-OPTION";\n          DAT_00394fcc = 0;\n          DAT_00394fd0 = 0;\n          DAT_00394fd4 = 0;\n          __s = strchr(DAT_00394fa0,0x5f);\n          if (__s != (char *)0x0) {\n            do {\n              *__s = '-';\n              __s = strchr(__s,0x5f);\n            } while (__s != (char *)0x0);\n            if ((DAT_00394fc4 != 0) && (DAT_003951f0 != '\0')) {\n                    \n              FUN_000df670();\n            }\n          }\n          FUN_001e5500(&DAT_00394f90);\n          __cxa_atexit(FUN_000e8e10,&DAT_00394fa0,&PTR_LOOP_0038f2e4);\n        }\n        cVar3 = pcVar7[iVar6];\n        if (cVar3 == 'z') {\n          pbVar10 = (byte *)(pcVar7 + iVar6 + 1);\n          puVar8 = &DAT_00394fa0;\n          local_34 = (byte *)DAT_00394fc8;\n          if ((byte *)DAT_00394fc8 == (byte *)0x0) goto LAB_000e6e4d;\nLAB_000e6d8c:\n          ppuVar1 = (undefined **)((int)local_28 + 1);\n          local_34 = pbVar10;\n          pbVar5 = pbVar10;\n          if (*pbVar10 != 0) goto LAB_000e6da4;\n          if (*(char *)(puVar8 + 0xb) != '\0') {\n            local_34 = (byte *)puVar8[8];\n            pbVar5 = (byte *)puVar8[8];\n            goto LAB_000e6da4;\n          }\n          if ((int)ppuVar1 < param_2) {\n            local_34 = *(byte **)(param_3 + (int)ppuVar1 * 4);\n            ppuVar1 = (undefined **)((int)local_28 + 2);\n            pbVar5 = local_34;\n            goto LAB_000e6da4;\n          }\nLAB_000e704d:\n          local_28 = ppuVar1;\n          pcVar7 = "missing argument";\n          goto LAB_000e6e04;\n        }\n        if ((0x7e < (int)cVar3 - 1U) ||\n           (puVar8 = *(undefined4 **)(&DAT_00394fe0 + cVar3 * 4), puVar8 == (undefined4 *)0x0))\n        break;\n        local_34 = (byte *)puVar8[10];\n        pbVar10 = (byte *)(pcVar7 + iVar6 + 1);\n        if (local_34 != (byte *)0x0) goto LAB_000e6d8c;\nLAB_000e6e4d:\n        local_24 = (byte *)0x0;\n        ppuVar1 = local_28;\n        pbVar5 = local_24;\n        if (*pbVar10 == 0) {\n          local_28 = (undefined **)((int)local_28 + 1);\n          bVar12 = (char **)puVar8 == &DAT_00394fa0;\n          if (bVar12) {\nLAB_000e6e78:\n            bVar11 = puVar8 < &DAT_00394fa0;\n            local_20[0] = 0;\n            iVar9 = 6;\n            pbVar10 = (byte *)0x28e8f9;\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar11 = *local_34 < *pbVar10;\n              bVar12 = *local_34 == *pbVar10;\n              local_34 = local_34 + (uint)bVar13 * -2 + 1;\n              pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1;\n            } while (bVar12);\n            if ((!bVar11 && !bVar12) == bVar11) {\n              local_24 = (byte *)0x28e8f9;\n            }\n            puVar8 = (undefined4 *)FUN_000df460(&local_24,local_20);\n            if (puVar8 == (undefined4 *)0x0) {\n              gettext("unknown -z option");\n              FUN_000dcd10();\n              ppuVar1 = local_28;\n              goto LAB_000e704d;\n            }\n            local_34 = local_24;\n          }\n        }\n        else {\nLAB_000e6da4:\n          local_24 = pbVar5;\n          local_28 = ppuVar1;\n          bVar12 = (char **)puVar8 == &DAT_00394fa0;\n          if (bVar12) goto LAB_000e6e78;\n        }\n        iVar6 = iVar6 + 1;\n        (*(code *)**(undefined4 **)puVar8[0xc])\n                  ((undefined4 *)puVar8[0xc],*puVar2,local_34,param_1,param_1 + 4);\n        if (local_28 != ppuVar4) {\n          return local_28;\n        }\n        pcVar7 = *(char **)(param_3 + (int)ppuVar4 * 4);\n      } while (*pcVar7 == '-');" do (compound_statement "{\n        if ((DAT_00394f90 == '\0') && (iVar9 = FUN_001e5390(&DAT_00394f90), iVar9 != 0)) {\n          DAT_00394fa0 = &DAT_00394fa8;\n                    \n          FUN_00050e40(&DAT_00394fa0,"","",0,&DAT_00394fa8);\n          DAT_00394fc0 = "";\n          DAT_00394fb8 = 4;\n          DAT_00394fbc = 0x7a;\n          DAT_00394fc4 = 0;\n          DAT_00394fc8 = "Z-OPTION";\n          DAT_00394fcc = 0;\n          DAT_00394fd0 = 0;\n          DAT_00394fd4 = 0;\n          __s = strchr(DAT_00394fa0,0x5f);\n          if (__s != (char *)0x0) {\n            do {\n              *__s = '-';\n              __s = strchr(__s,0x5f);\n            } while (__s != (char *)0x0);\n            if ((DAT_00394fc4 != 0) && (DAT_003951f0 != '\0')) {\n                    \n              FUN_000df670();\n            }\n          }\n          FUN_001e5500(&DAT_00394f90);\n          __cxa_atexit(FUN_000e8e10,&DAT_00394fa0,&PTR_LOOP_0038f2e4);\n        }\n        cVar3 = pcVar7[iVar6];\n        if (cVar3 == 'z') {\n          pbVar10 = (byte *)(pcVar7 + iVar6 + 1);\n          puVar8 = &DAT_00394fa0;\n          local_34 = (byte *)DAT_00394fc8;\n          if ((byte *)DAT_00394fc8 == (byte *)0x0) goto LAB_000e6e4d;\nLAB_000e6d8c:\n          ppuVar1 = (undefined **)((int)local_28 + 1);\n          local_34 = pbVar10;\n          pbVar5 = pbVar10;\n          if (*pbVar10 != 0) goto LAB_000e6da4;\n          if (*(char *)(puVar8 + 0xb) != '\0') {\n            local_34 = (byte *)puVar8[8];\n            pbVar5 = (byte *)puVar8[8];\n            goto LAB_000e6da4;\n          }\n          if ((int)ppuVar1 < param_2) {\n            local_34 = *(byte **)(param_3 + (int)ppuVar1 * 4);\n            ppuVar1 = (undefined **)((int)local_28 + 2);\n            pbVar5 = local_34;\n            goto LAB_000e6da4;\n          }\nLAB_000e704d:\n          local_28 = ppuVar1;\n          pcVar7 = "missing argument";\n          goto LAB_000e6e04;\n        }\n        if ((0x7e < (int)cVar3 - 1U) ||\n           (puVar8 = *(undefined4 **)(&DAT_00394fe0 + cVar3 * 4), puVar8 == (undefined4 *)0x0))\n        break;\n        local_34 = (byte *)puVar8[10];\n        pbVar10 = (byte *)(pcVar7 + iVar6 + 1);\n        if (local_34 != (byte *)0x0) goto LAB_000e6d8c;\nLAB_000e6e4d:\n        local_24 = (byte *)0x0;\n        ppuVar1 = local_28;\n        pbVar5 = local_24;\n        if (*pbVar10 == 0) {\n          local_28 = (undefined **)((int)local_28 + 1);\n          bVar12 = (char **)puVar8 == &DAT_00394fa0;\n          if (bVar12) {\nLAB_000e6e78:\n            bVar11 = puVar8 < &DAT_00394fa0;\n            local_20[0] = 0;\n            iVar9 = 6;\n            pbVar10 = (byte *)0x28e8f9;\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar11 = *local_34 < *pbVar10;\n              bVar12 = *local_34 == *pbVar10;\n              local_34 = local_34 + (uint)bVar13 * -2 + 1;\n              pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1;\n            } while (bVar12);\n            if ((!bVar11 && !bVar12) == bVar11) {\n              local_24 = (byte *)0x28e8f9;\n            }\n            puVar8 = (undefined4 *)FUN_000df460(&local_24,local_20);\n            if (puVar8 == (undefined4 *)0x0) {\n              gettext("unknown -z option");\n              FUN_000dcd10();\n              ppuVar1 = local_28;\n              goto LAB_000e704d;\n            }\n            local_34 = local_24;\n          }\n        }\n        else {\nLAB_000e6da4:\n          local_24 = pbVar5;\n          local_28 = ppuVar1;\n          bVar12 = (char **)puVar8 == &DAT_00394fa0;\n          if (bVar12) goto LAB_000e6e78;\n        }\n        iVar6 = iVar6 + 1;\n        (*(code *)**(undefined4 **)puVar8[0xc])\n                  ((undefined4 *)puVar8[0xc],*puVar2,local_34,param_1,param_1 + 4);\n        if (local_28 != ppuVar4) {\n          return local_28;\n        }\n        pcVar7 = *(char **)(param_3 + (int)ppuVar4 * 4);\n      }" { (if_statement "if ((DAT_00394f90 == '\0') && (iVar9 = FUN_001e5390(&DAT_00394f90), iVar9 != 0)) {\n          DAT_00394fa0 = &DAT_00394fa8;\n                    \n          FUN_00050e40(&DAT_00394fa0,"","",0,&DAT_00394fa8);\n          DAT_00394fc0 = "";\n          DAT_00394fb8 = 4;\n          DAT_00394fbc = 0x7a;\n          DAT_00394fc4 = 0;\n          DAT_00394fc8 = "Z-OPTION";\n          DAT_00394fcc = 0;\n          DAT_00394fd0 = 0;\n          DAT_00394fd4 = 0;\n          __s = strchr(DAT_00394fa0,0x5f);\n          if (__s != (char *)0x0) {\n            do {\n              *__s = '-';\n              __s = strchr(__s,0x5f);\n            } while (__s != (char *)0x0);\n            if ((DAT_00394fc4 != 0) && (DAT_003951f0 != '\0')) {\n                    \n              FUN_000df670();\n            }\n          }\n          FUN_001e5500(&DAT_00394f90);\n          __cxa_atexit(FUN_000e8e10,&DAT_00394fa0,&PTR_LOOP_0038f2e4);\n        }" if (parenthesized_expression "((DAT_00394f90 == '\0') && (iVar9 = FUN_001e5390(&DAT_00394f90), iVar9 != 0))" ( (binary_expression "(DAT_00394f90 == '\0') && (iVar9 = FUN_001e5390(&DAT_00394f90), iVar9 != 0)" (parenthesized_expression "(DAT_00394f90 == '\0')" ( (binary_expression "DAT_00394f90 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(iVar9 = FUN_001e5390(&DAT_00394f90), iVar9 != 0)" ( (comma_expression "iVar9 = FUN_001e5390(&DAT_00394f90), iVar9 != 0" (assignment_expression "iVar9 = FUN_001e5390(&DAT_00394f90)" identifier = (call_expression "FUN_001e5390(&DAT_00394f90)" identifier (argument_list "(&DAT_00394f90)" ( (pointer_expression "&DAT_00394f90" & identifier) )))) , (binary_expression "iVar9 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n          DAT_00394fa0 = &DAT_00394fa8;\n                    \n          FUN_00050e40(&DAT_00394fa0,"","",0,&DAT_00394fa8);\n          DAT_00394fc0 = "";\n          DAT_00394fb8 = 4;\n          DAT_00394fbc = 0x7a;\n          DAT_00394fc4 = 0;\n          DAT_00394fc8 = "Z-OPTION";\n          DAT_00394fcc = 0;\n          DAT_00394fd0 = 0;\n          DAT_00394fd4 = 0;\n          __s = strchr(DAT_00394fa0,0x5f);\n          if (__s != (char *)0x0) {\n            do {\n              *__s = '-';\n              __s = strchr(__s,0x5f);\n            } while (__s != (char *)0x0);\n            if ((DAT_00394fc4 != 0) && (DAT_003951f0 != '\0')) {\n                    \n              FUN_000df670();\n            }\n          }\n          FUN_001e5500(&DAT_00394f90);\n          __cxa_atexit(FUN_000e8e10,&DAT_00394fa0,&PTR_LOOP_0038f2e4);\n        }" { (expression_statement "DAT_00394fa0 = &DAT_00394fa8;" (assignment_expression "DAT_00394fa0 = &DAT_00394fa8" identifier = (pointer_expression "&DAT_00394fa8" & identifier)) ;) (expression_statement "FUN_00050e40(&DAT_00394fa0,"","",0,&DAT_00394fa8);" (call_expression "FUN_00050e40(&DAT_00394fa0,"","",0,&DAT_00394fa8)" identifier (argument_list "(&DAT_00394fa0,"","",0,&DAT_00394fa8)" ( (pointer_expression "&DAT_00394fa0" & identifier) , (string_literal """" " ") , (string_literal """" " ") , number_literal , (pointer_expression "&DAT_00394fa8" & identifier) ))) ;) (expression_statement "DAT_00394fc0 = "";" (assignment_expression "DAT_00394fc0 = """ identifier = (string_literal """" " ")) ;) (expression_statement "DAT_00394fb8 = 4;" (assignment_expression "DAT_00394fb8 = 4" identifier = number_literal) ;) (expression_statement "DAT_00394fbc = 0x7a;" (assignment_expression "DAT_00394fbc = 0x7a" identifier = number_literal) ;) (expression_statement "DAT_00394fc4 = 0;" (assignment_expression "DAT_00394fc4 = 0" identifier = number_literal) ;) (expression_statement "DAT_00394fc8 = "Z-OPTION";" (assignment_expression "DAT_00394fc8 = "Z-OPTION"" identifier = (string_literal ""Z-OPTION"" " string_content ")) ;) (expression_statement "DAT_00394fcc = 0;" (assignment_expression "DAT_00394fcc = 0" identifier = number_literal) ;) (expression_statement "DAT_00394fd0 = 0;" (assignment_expression "DAT_00394fd0 = 0" identifier = number_literal) ;) (expression_statement "DAT_00394fd4 = 0;" (assignment_expression "DAT_00394fd4 = 0" identifier = number_literal) ;) (expression_statement "__s = strchr(DAT_00394fa0,0x5f);" (assignment_expression "__s = strchr(DAT_00394fa0,0x5f)" identifier = (call_expression "strchr(DAT_00394fa0,0x5f)" identifier (argument_list "(DAT_00394fa0,0x5f)" ( identifier , number_literal )))) ;) (if_statement "if (__s != (char *)0x0) {\n            do {\n              *__s = '-';\n              __s = strchr(__s,0x5f);\n            } while (__s != (char *)0x0);\n            if ((DAT_00394fc4 != 0) && (DAT_003951f0 != '\0')) {\n                    \n              FUN_000df670();\n            }\n          }" if (parenthesized_expression "(__s != (char *)0x0)" ( (binary_expression "__s != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            do {\n              *__s = '-';\n              __s = strchr(__s,0x5f);\n            } while (__s != (char *)0x0);\n            if ((DAT_00394fc4 != 0) && (DAT_003951f0 != '\0')) {\n                    \n              FUN_000df670();\n            }\n          }" { (do_statement "do {\n              *__s = '-';\n              __s = strchr(__s,0x5f);\n            } while (__s != (char *)0x0);" do (compound_statement "{\n              *__s = '-';\n              __s = strchr(__s,0x5f);\n            }" { (expression_statement "*__s = '-';" (assignment_expression "*__s = '-'" (pointer_expression "*__s" * identifier) = (char_literal "'-'" ' character ')) ;) (expression_statement "__s = strchr(__s,0x5f);" (assignment_expression "__s = strchr(__s,0x5f)" identifier = (call_expression "strchr(__s,0x5f)" identifier (argument_list "(__s,0x5f)" ( identifier , number_literal )))) ;) }) while (parenthesized_expression "(__s != (char *)0x0)" ( (binary_expression "__s != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (if_statement "if ((DAT_00394fc4 != 0) && (DAT_003951f0 != '\0')) {\n                    \n              FUN_000df670();\n            }" if (parenthesized_expression "((DAT_00394fc4 != 0) && (DAT_003951f0 != '\0'))" ( (binary_expression "(DAT_00394fc4 != 0) && (DAT_003951f0 != '\0')" (parenthesized_expression "(DAT_00394fc4 != 0)" ( (binary_expression "DAT_00394fc4 != 0" identifier != number_literal) )) && (parenthesized_expression "(DAT_003951f0 != '\0')" ( (binary_expression "DAT_003951f0 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n                    \n              FUN_000df670();\n            }" { (expression_statement "FUN_000df670();" (call_expression "FUN_000df670()" identifier (argument_list "()" ( ))) ;) })) })) (expression_statement "FUN_001e5500(&DAT_00394f90);" (call_expression "FUN_001e5500(&DAT_00394f90)" identifier (argument_list "(&DAT_00394f90)" ( (pointer_expression "&DAT_00394f90" & identifier) ))) ;) (expression_statement "__cxa_atexit(FUN_000e8e10,&DAT_00394fa0,&PTR_LOOP_0038f2e4);" (call_expression "__cxa_atexit(FUN_000e8e10,&DAT_00394fa0,&PTR_LOOP_0038f2e4)" identifier (argument_list "(FUN_000e8e10,&DAT_00394fa0,&PTR_LOOP_0038f2e4)" ( identifier , (pointer_expression "&DAT_00394fa0" & identifier) , (pointer_expression "&PTR_LOOP_0038f2e4" & identifier) ))) ;) })) (expression_statement "cVar3 = pcVar7[iVar6];" (assignment_expression "cVar3 = pcVar7[iVar6]" identifier = (subscript_expression "pcVar7[iVar6]" identifier [ identifier ])) ;) (if_statement "if (cVar3 == 'z') {\n          pbVar10 = (byte *)(pcVar7 + iVar6 + 1);\n          puVar8 = &DAT_00394fa0;\n          local_34 = (byte *)DAT_00394fc8;\n          if ((byte *)DAT_00394fc8 == (byte *)0x0) goto LAB_000e6e4d;\nLAB_000e6d8c:\n          ppuVar1 = (undefined **)((int)local_28 + 1);\n          local_34 = pbVar10;\n          pbVar5 = pbVar10;\n          if (*pbVar10 != 0) goto LAB_000e6da4;\n          if (*(char *)(puVar8 + 0xb) != '\0') {\n            local_34 = (byte *)puVar8[8];\n            pbVar5 = (byte *)puVar8[8];\n            goto LAB_000e6da4;\n          }\n          if ((int)ppuVar1 < param_2) {\n            local_34 = *(byte **)(param_3 + (int)ppuVar1 * 4);\n            ppuVar1 = (undefined **)((int)local_28 + 2);\n            pbVar5 = local_34;\n            goto LAB_000e6da4;\n          }\nLAB_000e704d:\n          local_28 = ppuVar1;\n          pcVar7 = "missing argument";\n          goto LAB_000e6e04;\n        }" if (parenthesized_expression "(cVar3 == 'z')" ( (binary_expression "cVar3 == 'z'" identifier == (char_literal "'z'" ' character ')) )) (compound_statement "{\n          pbVar10 = (byte *)(pcVar7 + iVar6 + 1);\n          puVar8 = &DAT_00394fa0;\n          local_34 = (byte *)DAT_00394fc8;\n          if ((byte *)DAT_00394fc8 == (byte *)0x0) goto LAB_000e6e4d;\nLAB_000e6d8c:\n          ppuVar1 = (undefined **)((int)local_28 + 1);\n          local_34 = pbVar10;\n          pbVar5 = pbVar10;\n          if (*pbVar10 != 0) goto LAB_000e6da4;\n          if (*(char *)(puVar8 + 0xb) != '\0') {\n            local_34 = (byte *)puVar8[8];\n            pbVar5 = (byte *)puVar8[8];\n            goto LAB_000e6da4;\n          }\n          if ((int)ppuVar1 < param_2) {\n            local_34 = *(byte **)(param_3 + (int)ppuVar1 * 4);\n            ppuVar1 = (undefined **)((int)local_28 + 2);\n            pbVar5 = local_34;\n            goto LAB_000e6da4;\n          }\nLAB_000e704d:\n          local_28 = ppuVar1;\n          pcVar7 = "missing argument";\n          goto LAB_000e6e04;\n        }" { (expression_statement "pbVar10 = (byte *)(pcVar7 + iVar6 + 1);" (assignment_expression "pbVar10 = (byte *)(pcVar7 + iVar6 + 1)" identifier = (cast_expression "(byte *)(pcVar7 + iVar6 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar7 + iVar6 + 1)" ( (binary_expression "pcVar7 + iVar6 + 1" (binary_expression "pcVar7 + iVar6" identifier + identifier) + number_literal) )))) ;) (expression_statement "puVar8 = &DAT_00394fa0;" (assignment_expression "puVar8 = &DAT_00394fa0" identifier = (pointer_expression "&DAT_00394fa0" & identifier)) ;) (expression_statement "local_34 = (byte *)DAT_00394fc8;" (assignment_expression "local_34 = (byte *)DAT_00394fc8" identifier = (cast_expression "(byte *)DAT_00394fc8" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if ((byte *)DAT_00394fc8 == (byte *)0x0) goto LAB_000e6e4d;" if (parenthesized_expression "((byte *)DAT_00394fc8 == (byte *)0x0)" ( (binary_expression "(byte *)DAT_00394fc8 == (byte *)0x0" (cast_expression "(byte *)DAT_00394fc8" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000e6e4d;" goto statement_identifier ;)) (labeled_statement "LAB_000e6d8c:\n          ppuVar1 = (undefined **)((int)local_28 + 1);" statement_identifier : (expression_statement "ppuVar1 = (undefined **)((int)local_28 + 1);" (assignment_expression "ppuVar1 = (undefined **)((int)local_28 + 1)" identifier = (cast_expression "(undefined **)((int)local_28 + 1)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)local_28 + 1)" ( (binary_expression "(int)local_28 + 1" (cast_expression "(int)local_28" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;)) (expression_statement "local_34 = pbVar10;" (assignment_expression "local_34 = pbVar10" identifier = identifier) ;) (expression_statement "pbVar5 = pbVar10;" (assignment_expression "pbVar5 = pbVar10" identifier = identifier) ;) (if_statement "if (*pbVar10 != 0) goto LAB_000e6da4;" if (parenthesized_expression "(*pbVar10 != 0)" ( (binary_expression "*pbVar10 != 0" (pointer_expression "*pbVar10" * identifier) != number_literal) )) (goto_statement "goto LAB_000e6da4;" goto statement_identifier ;)) (if_statement "if (*(char *)(puVar8 + 0xb) != '\0') {\n            local_34 = (byte *)puVar8[8];\n            pbVar5 = (byte *)puVar8[8];\n            goto LAB_000e6da4;\n          }" if (parenthesized_expression "(*(char *)(puVar8 + 0xb) != '\0')" ( (binary_expression "*(char *)(puVar8 + 0xb) != '\0'" (pointer_expression "*(char *)(puVar8 + 0xb)" * (cast_expression "(char *)(puVar8 + 0xb)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0xb)" ( (binary_expression "puVar8 + 0xb" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            local_34 = (byte *)puVar8[8];\n            pbVar5 = (byte *)puVar8[8];\n            goto LAB_000e6da4;\n          }" { (expression_statement "local_34 = (byte *)puVar8[8];" (assignment_expression "local_34 = (byte *)puVar8[8]" identifier = (cast_expression "(byte *)puVar8[8]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar8[8]" identifier [ number_literal ]))) ;) (expression_statement "pbVar5 = (byte *)puVar8[8];" (assignment_expression "pbVar5 = (byte *)puVar8[8]" identifier = (cast_expression "(byte *)puVar8[8]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar8[8]" identifier [ number_literal ]))) ;) (goto_statement "goto LAB_000e6da4;" goto statement_identifier ;) })) (if_statement "if ((int)ppuVar1 < param_2) {\n            local_34 = *(byte **)(param_3 + (int)ppuVar1 * 4);\n            ppuVar1 = (undefined **)((int)local_28 + 2);\n            pbVar5 = local_34;\n            goto LAB_000e6da4;\n          }" if (parenthesized_expression "((int)ppuVar1 < param_2)" ( (binary_expression "(int)ppuVar1 < param_2" (cast_expression "(int)ppuVar1" ( (type_descriptor "int" primitive_type) ) identifier) < identifier) )) (compound_statement "{\n            local_34 = *(byte **)(param_3 + (int)ppuVar1 * 4);\n            ppuVar1 = (undefined **)((int)local_28 + 2);\n            pbVar5 = local_34;\n            goto LAB_000e6da4;\n          }" { (expression_statement "local_34 = *(byte **)(param_3 + (int)ppuVar1 * 4);" (assignment_expression "local_34 = *(byte **)(param_3 + (int)ppuVar1 * 4)" identifier = (pointer_expression "*(byte **)(param_3 + (int)ppuVar1 * 4)" * (cast_expression "(byte **)(param_3 + (int)ppuVar1 * 4)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_3 + (int)ppuVar1 * 4)" ( (binary_expression "param_3 + (int)ppuVar1 * 4" identifier + (binary_expression "(int)ppuVar1 * 4" (cast_expression "(int)ppuVar1" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ))))) ;) (expression_statement "ppuVar1 = (undefined **)((int)local_28 + 2);" (assignment_expression "ppuVar1 = (undefined **)((int)local_28 + 2)" identifier = (cast_expression "(undefined **)((int)local_28 + 2)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)local_28 + 2)" ( (binary_expression "(int)local_28 + 2" (cast_expression "(int)local_28" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pbVar5 = local_34;" (assignment_expression "pbVar5 = local_34" identifier = identifier) ;) (goto_statement "goto LAB_000e6da4;" goto statement_identifier ;) })) (labeled_statement "LAB_000e704d:\n          local_28 = ppuVar1;" statement_identifier : (expression_statement "local_28 = ppuVar1;" (assignment_expression "local_28 = ppuVar1" identifier = identifier) ;)) (expression_statement "pcVar7 = "missing argument";" (assignment_expression "pcVar7 = "missing argument"" identifier = (string_literal ""missing argument"" " string_content ")) ;) (goto_statement "goto LAB_000e6e04;" goto statement_identifier ;) })) (if_statement "if ((0x7e < (int)cVar3 - 1U) ||\n           (puVar8 = *(undefined4 **)(&DAT_00394fe0 + cVar3 * 4), puVar8 == (undefined4 *)0x0))\n        break;" if (parenthesized_expression "((0x7e < (int)cVar3 - 1U) ||\n           (puVar8 = *(undefined4 **)(&DAT_00394fe0 + cVar3 * 4), puVar8 == (undefined4 *)0x0))" ( (binary_expression "(0x7e < (int)cVar3 - 1U) ||\n           (puVar8 = *(undefined4 **)(&DAT_00394fe0 + cVar3 * 4), puVar8 == (undefined4 *)0x0)" (parenthesized_expression "(0x7e < (int)cVar3 - 1U)" ( (binary_expression "0x7e < (int)cVar3 - 1U" number_literal < (binary_expression "(int)cVar3 - 1U" (cast_expression "(int)cVar3" ( (type_descriptor "int" primitive_type) ) identifier) - number_literal)) )) || (parenthesized_expression "(puVar8 = *(undefined4 **)(&DAT_00394fe0 + cVar3 * 4), puVar8 == (undefined4 *)0x0)" ( (comma_expression "puVar8 = *(undefined4 **)(&DAT_00394fe0 + cVar3 * 4), puVar8 == (undefined4 *)0x0" (assignment_expression "puVar8 = *(undefined4 **)(&DAT_00394fe0 + cVar3 * 4)" identifier = (pointer_expression "*(undefined4 **)(&DAT_00394fe0 + cVar3 * 4)" * (cast_expression "(undefined4 **)(&DAT_00394fe0 + cVar3 * 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(&DAT_00394fe0 + cVar3 * 4)" ( (binary_expression "&DAT_00394fe0 + cVar3 * 4" (pointer_expression "&DAT_00394fe0" & identifier) + (binary_expression "cVar3 * 4" identifier * number_literal)) ))))) , (binary_expression "puVar8 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (break_statement "break;" break ;)) (expression_statement "local_34 = (byte *)puVar8[10];" (assignment_expression "local_34 = (byte *)puVar8[10]" identifier = (cast_expression "(byte *)puVar8[10]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar8[10]" identifier [ number_literal ]))) ;) (expression_statement "pbVar10 = (byte *)(pcVar7 + iVar6 + 1);" (assignment_expression "pbVar10 = (byte *)(pcVar7 + iVar6 + 1)" identifier = (cast_expression "(byte *)(pcVar7 + iVar6 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar7 + iVar6 + 1)" ( (binary_expression "pcVar7 + iVar6 + 1" (binary_expression "pcVar7 + iVar6" identifier + identifier) + number_literal) )))) ;) (if_statement "if (local_34 != (byte *)0x0) goto LAB_000e6d8c;" if (parenthesized_expression "(local_34 != (byte *)0x0)" ( (binary_expression "local_34 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000e6d8c;" goto statement_identifier ;)) (labeled_statement "LAB_000e6e4d:\n        local_24 = (byte *)0x0;" statement_identifier : (expression_statement "local_24 = (byte *)0x0;" (assignment_expression "local_24 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "ppuVar1 = local_28;" (assignment_expression "ppuVar1 = local_28" identifier = identifier) ;) (expression_statement "pbVar5 = local_24;" (assignment_expression "pbVar5 = local_24" identifier = identifier) ;) (if_statement "if (*pbVar10 == 0) {\n          local_28 = (undefined **)((int)local_28 + 1);\n          bVar12 = (char **)puVar8 == &DAT_00394fa0;\n          if (bVar12) {\nLAB_000e6e78:\n            bVar11 = puVar8 < &DAT_00394fa0;\n            local_20[0] = 0;\n            iVar9 = 6;\n            pbVar10 = (byte *)0x28e8f9;\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar11 = *local_34 < *pbVar10;\n              bVar12 = *local_34 == *pbVar10;\n              local_34 = local_34 + (uint)bVar13 * -2 + 1;\n              pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1;\n            } while (bVar12);\n            if ((!bVar11 && !bVar12) == bVar11) {\n              local_24 = (byte *)0x28e8f9;\n            }\n            puVar8 = (undefined4 *)FUN_000df460(&local_24,local_20);\n            if (puVar8 == (undefined4 *)0x0) {\n              gettext("unknown -z option");\n              FUN_000dcd10();\n              ppuVar1 = local_28;\n              goto LAB_000e704d;\n            }\n            local_34 = local_24;\n          }\n        }\n        else {\nLAB_000e6da4:\n          local_24 = pbVar5;\n          local_28 = ppuVar1;\n          bVar12 = (char **)puVar8 == &DAT_00394fa0;\n          if (bVar12) goto LAB_000e6e78;\n        }" if (parenthesized_expression "(*pbVar10 == 0)" ( (binary_expression "*pbVar10 == 0" (pointer_expression "*pbVar10" * identifier) == number_literal) )) (compound_statement "{\n          local_28 = (undefined **)((int)local_28 + 1);\n          bVar12 = (char **)puVar8 == &DAT_00394fa0;\n          if (bVar12) {\nLAB_000e6e78:\n            bVar11 = puVar8 < &DAT_00394fa0;\n            local_20[0] = 0;\n            iVar9 = 6;\n            pbVar10 = (byte *)0x28e8f9;\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar11 = *local_34 < *pbVar10;\n              bVar12 = *local_34 == *pbVar10;\n              local_34 = local_34 + (uint)bVar13 * -2 + 1;\n              pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1;\n            } while (bVar12);\n            if ((!bVar11 && !bVar12) == bVar11) {\n              local_24 = (byte *)0x28e8f9;\n            }\n            puVar8 = (undefined4 *)FUN_000df460(&local_24,local_20);\n            if (puVar8 == (undefined4 *)0x0) {\n              gettext("unknown -z option");\n              FUN_000dcd10();\n              ppuVar1 = local_28;\n              goto LAB_000e704d;\n            }\n            local_34 = local_24;\n          }\n        }" { (expression_statement "local_28 = (undefined **)((int)local_28 + 1);" (assignment_expression "local_28 = (undefined **)((int)local_28 + 1)" identifier = (cast_expression "(undefined **)((int)local_28 + 1)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)local_28 + 1)" ( (binary_expression "(int)local_28 + 1" (cast_expression "(int)local_28" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "bVar12 = (char **)puVar8 == &DAT_00394fa0;" (assignment_expression "bVar12 = (char **)puVar8 == &DAT_00394fa0" identifier = (binary_expression "(char **)puVar8 == &DAT_00394fa0" (cast_expression "(char **)puVar8" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier) == (pointer_expression "&DAT_00394fa0" & identifier))) ;) (if_statement "if (bVar12) {\nLAB_000e6e78:\n            bVar11 = puVar8 < &DAT_00394fa0;\n            local_20[0] = 0;\n            iVar9 = 6;\n            pbVar10 = (byte *)0x28e8f9;\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar11 = *local_34 < *pbVar10;\n              bVar12 = *local_34 == *pbVar10;\n              local_34 = local_34 + (uint)bVar13 * -2 + 1;\n              pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1;\n            } while (bVar12);\n            if ((!bVar11 && !bVar12) == bVar11) {\n              local_24 = (byte *)0x28e8f9;\n            }\n            puVar8 = (undefined4 *)FUN_000df460(&local_24,local_20);\n            if (puVar8 == (undefined4 *)0x0) {\n              gettext("unknown -z option");\n              FUN_000dcd10();\n              ppuVar1 = local_28;\n              goto LAB_000e704d;\n            }\n            local_34 = local_24;\n          }" if (parenthesized_expression "(bVar12)" ( identifier )) (compound_statement "{\nLAB_000e6e78:\n            bVar11 = puVar8 < &DAT_00394fa0;\n            local_20[0] = 0;\n            iVar9 = 6;\n            pbVar10 = (byte *)0x28e8f9;\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar11 = *local_34 < *pbVar10;\n              bVar12 = *local_34 == *pbVar10;\n              local_34 = local_34 + (uint)bVar13 * -2 + 1;\n              pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1;\n            } while (bVar12);\n            if ((!bVar11 && !bVar12) == bVar11) {\n              local_24 = (byte *)0x28e8f9;\n            }\n            puVar8 = (undefined4 *)FUN_000df460(&local_24,local_20);\n            if (puVar8 == (undefined4 *)0x0) {\n              gettext("unknown -z option");\n              FUN_000dcd10();\n              ppuVar1 = local_28;\n              goto LAB_000e704d;\n            }\n            local_34 = local_24;\n          }" { (labeled_statement "LAB_000e6e78:\n            bVar11 = puVar8 < &DAT_00394fa0;" statement_identifier : (expression_statement "bVar11 = puVar8 < &DAT_00394fa0;" (assignment_expression "bVar11 = puVar8 < &DAT_00394fa0" identifier = (binary_expression "puVar8 < &DAT_00394fa0" identifier < (pointer_expression "&DAT_00394fa0" & identifier))) ;)) (expression_statement "local_20[0] = 0;" (assignment_expression "local_20[0] = 0" (subscript_expression "local_20[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar9 = 6;" (assignment_expression "iVar9 = 6" identifier = number_literal) ;) (expression_statement "pbVar10 = (byte *)0x28e8f9;" (assignment_expression "pbVar10 = (byte *)0x28e8f9" identifier = (cast_expression "(byte *)0x28e8f9" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar11 = *local_34 < *pbVar10;\n              bVar12 = *local_34 == *pbVar10;\n              local_34 = local_34 + (uint)bVar13 * -2 + 1;\n              pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1;\n            } while (bVar12);" do (compound_statement "{\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar11 = *local_34 < *pbVar10;\n              bVar12 = *local_34 == *pbVar10;\n              local_34 = local_34 + (uint)bVar13 * -2 + 1;\n              pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1;\n            }" { (if_statement "if (iVar9 == 0) break;" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar9 = iVar9 + -1;" (assignment_expression "iVar9 = iVar9 + -1" identifier = (binary_expression "iVar9 + -1" identifier + number_literal)) ;) (expression_statement "bVar11 = *local_34 < *pbVar10;" (assignment_expression "bVar11 = *local_34 < *pbVar10" identifier = (binary_expression "*local_34 < *pbVar10" (pointer_expression "*local_34" * identifier) < (pointer_expression "*pbVar10" * identifier))) ;) (expression_statement "bVar12 = *local_34 == *pbVar10;" (assignment_expression "bVar12 = *local_34 == *pbVar10" identifier = (binary_expression "*local_34 == *pbVar10" (pointer_expression "*local_34" * identifier) == (pointer_expression "*pbVar10" * identifier))) ;) (expression_statement "local_34 = local_34 + (uint)bVar13 * -2 + 1;" (assignment_expression "local_34 = local_34 + (uint)bVar13 * -2 + 1" identifier = (binary_expression "local_34 + (uint)bVar13 * -2 + 1" (binary_expression "local_34 + (uint)bVar13 * -2" identifier + (binary_expression "(uint)bVar13 * -2" (cast_expression "(uint)bVar13" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1;" (assignment_expression "pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1" identifier = (binary_expression "pbVar10 + (uint)bVar13 * -2 + 1" (binary_expression "pbVar10 + (uint)bVar13 * -2" identifier + (binary_expression "(uint)bVar13 * -2" (cast_expression "(uint)bVar13" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar12)" ( identifier )) ;) (if_statement "if ((!bVar11 && !bVar12) == bVar11) {\n              local_24 = (byte *)0x28e8f9;\n            }" if (parenthesized_expression "((!bVar11 && !bVar12) == bVar11)" ( (binary_expression "(!bVar11 && !bVar12) == bVar11" (parenthesized_expression "(!bVar11 && !bVar12)" ( (binary_expression "!bVar11 && !bVar12" (unary_expression "!bVar11" ! identifier) && (unary_expression "!bVar12" ! identifier)) )) == identifier) )) (compound_statement "{\n              local_24 = (byte *)0x28e8f9;\n            }" { (expression_statement "local_24 = (byte *)0x28e8f9;" (assignment_expression "local_24 = (byte *)0x28e8f9" identifier = (cast_expression "(byte *)0x28e8f9" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (expression_statement "puVar8 = (undefined4 *)FUN_000df460(&local_24,local_20);" (assignment_expression "puVar8 = (undefined4 *)FUN_000df460(&local_24,local_20)" identifier = (cast_expression "(undefined4 *)FUN_000df460(&local_24,local_20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000df460(&local_24,local_20)" identifier (argument_list "(&local_24,local_20)" ( (pointer_expression "&local_24" & identifier) , identifier ))))) ;) (if_statement "if (puVar8 == (undefined4 *)0x0) {\n              gettext("unknown -z option");\n              FUN_000dcd10();\n              ppuVar1 = local_28;\n              goto LAB_000e704d;\n            }" if (parenthesized_expression "(puVar8 == (undefined4 *)0x0)" ( (binary_expression "puVar8 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              gettext("unknown -z option");\n              FUN_000dcd10();\n              ppuVar1 = local_28;\n              goto LAB_000e704d;\n            }" { (expression_statement "gettext("unknown -z option");" (call_expression "gettext("unknown -z option")" identifier (argument_list "("unknown -z option")" ( (string_literal ""unknown -z option"" " string_content ") ))) ;) (expression_statement "FUN_000dcd10();" (call_expression "FUN_000dcd10()" identifier (argument_list "()" ( ))) ;) (expression_statement "ppuVar1 = local_28;" (assignment_expression "ppuVar1 = local_28" identifier = identifier) ;) (goto_statement "goto LAB_000e704d;" goto statement_identifier ;) })) (expression_statement "local_34 = local_24;" (assignment_expression "local_34 = local_24" identifier = identifier) ;) })) }) (else_clause "else {\nLAB_000e6da4:\n          local_24 = pbVar5;\n          local_28 = ppuVar1;\n          bVar12 = (char **)puVar8 == &DAT_00394fa0;\n          if (bVar12) goto LAB_000e6e78;\n        }" else (compound_statement "{\nLAB_000e6da4:\n          local_24 = pbVar5;\n          local_28 = ppuVar1;\n          bVar12 = (char **)puVar8 == &DAT_00394fa0;\n          if (bVar12) goto LAB_000e6e78;\n        }" { (labeled_statement "LAB_000e6da4:\n          local_24 = pbVar5;" statement_identifier : (expression_statement "local_24 = pbVar5;" (assignment_expression "local_24 = pbVar5" identifier = identifier) ;)) (expression_statement "local_28 = ppuVar1;" (assignment_expression "local_28 = ppuVar1" identifier = identifier) ;) (expression_statement "bVar12 = (char **)puVar8 == &DAT_00394fa0;" (assignment_expression "bVar12 = (char **)puVar8 == &DAT_00394fa0" identifier = (binary_expression "(char **)puVar8 == &DAT_00394fa0" (cast_expression "(char **)puVar8" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier) == (pointer_expression "&DAT_00394fa0" & identifier))) ;) (if_statement "if (bVar12) goto LAB_000e6e78;" if (parenthesized_expression "(bVar12)" ( identifier )) (goto_statement "goto LAB_000e6e78;" goto statement_identifier ;)) }))) (expression_statement "iVar6 = iVar6 + 1;" (assignment_expression "iVar6 = iVar6 + 1" identifier = (binary_expression "iVar6 + 1" identifier + number_literal)) ;) (expression_statement "(*(code *)**(undefined4 **)puVar8[0xc])\n                  ((undefined4 *)puVar8[0xc],*puVar2,local_34,param_1,param_1 + 4);" (call_expression "(*(code *)**(undefined4 **)puVar8[0xc])\n                  ((undefined4 *)puVar8[0xc],*puVar2,local_34,param_1,param_1 + 4)" (parenthesized_expression "(*(code *)**(undefined4 **)puVar8[0xc])" ( (pointer_expression "*(code *)**(undefined4 **)puVar8[0xc]" * (cast_expression "(code *)**(undefined4 **)puVar8[0xc]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)puVar8[0xc]" * (pointer_expression "*(undefined4 **)puVar8[0xc]" * (cast_expression "(undefined4 **)puVar8[0xc]" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "puVar8[0xc]" identifier [ number_literal ])))))) )) (argument_list "((undefined4 *)puVar8[0xc],*puVar2,local_34,param_1,param_1 + 4)" ( (cast_expression "(undefined4 *)puVar8[0xc]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar8[0xc]" identifier [ number_literal ])) , (pointer_expression "*puVar2" * identifier) , identifier , identifier , (binary_expression "param_1 + 4" identifier + number_literal) ))) ;) (if_statement "if (local_28 != ppuVar4) {\n          return local_28;\n        }" if (parenthesized_expression "(local_28 != ppuVar4)" ( (binary_expression "local_28 != ppuVar4" identifier != identifier) )) (compound_statement "{\n          return local_28;\n        }" { (return_statement "return local_28;" return identifier ;) })) (expression_statement "pcVar7 = *(char **)(param_3 + (int)ppuVar4 * 4);" (assignment_expression "pcVar7 = *(char **)(param_3 + (int)ppuVar4 * 4)" identifier = (pointer_expression "*(char **)(param_3 + (int)ppuVar4 * 4)" * (cast_expression "(char **)(param_3 + (int)ppuVar4 * 4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_3 + (int)ppuVar4 * 4)" ( (binary_expression "param_3 + (int)ppuVar4 * 4" identifier + (binary_expression "(int)ppuVar4 * 4" (cast_expression "(int)ppuVar4" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ))))) ;) }) while (parenthesized_expression "(*pcVar7 == '-')" ( (binary_expression "*pcVar7 == '-'" (pointer_expression "*pcVar7" * identifier) == (char_literal "'-'" ' character ')) )) ;) })) (expression_statement "pcVar7 = "unknown option";" (assignment_expression "pcVar7 = "unknown option"" identifier = (string_literal ""unknown option"" " string_content ")) ;) (labeled_statement "LAB_000e6e04:\n    local_30 = &__DT_PLTGOT;" statement_identifier : (expression_statement "local_30 = &__DT_PLTGOT;" (assignment_expression "local_30 = &__DT_PLTGOT" identifier = (pointer_expression "&__DT_PLTGOT" & identifier)) ;)) (expression_statement "gettext(pcVar7);" (call_expression "gettext(pcVar7)" identifier (argument_list "(pcVar7)" ( identifier ))) ;) (expression_statement "FUN_000dcd10();" (call_expression "FUN_000dcd10()" identifier (argument_list "()" ( ))) ;) (expression_statement "param_5 = extraout_EDX;" (assignment_expression "param_5 = extraout_EDX" identifier = identifier) ;) (expression_statement "param_4 = local_30;" (assignment_expression "param_4 = local_30" identifier = identifier) ;) })) (expression_statement "*param_5 = '\x01';" (assignment_expression "*param_5 = '\x01'" (pointer_expression "*param_5" * identifier) = (char_literal "'\x01'" ' escape_sequence ')) ;) (return_statement "return (undefined **)((int)param_4 + 1);" return (cast_expression "(undefined **)((int)param_4 + 1)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)param_4 + 1)" ( (binary_expression "(int)param_4 + 1" (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) ;) })))
(translation_unit (function_definition TYPE (pointer_declarator * (pointer_declarator * (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * (pointer_declarator * IDENT))) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))))) (compound_statement { (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (char_literal ' character ')) )) || (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (char_literal ' escape_sequence ')) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (char_literal ' character ')) )) || (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (char_literal ' escape_sequence ')) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (pointer_expression & IDENT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression * IDENT) , IDENT , IDENT , (binary_expression IDENT + LIT) ))) ;) (return_statement return IDENT ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == IDENT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) ))))) , (binary_expression (pointer_expression * IDENT) == (char_literal ' character '))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) )))) , (binary_expression IDENT != LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (string_literal " ") , (string_literal " ") , LIT , (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (string_literal " ")) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (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 { (do_statement do (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (char_literal ' character ')) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) })) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) , (pointer_expression & IDENT) ))) ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ IDENT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - LIT)) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (binary_expression IDENT * LIT)) ))))) , (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ))) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT) == (pointer_expression & IDENT))) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT < (pointer_expression & IDENT))) ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (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 (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) })) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT) == (pointer_expression & IDENT))) ;) (if_statement if (parenthesized_expression ( IDENT )) (goto_statement goto statement_identifier ;)) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (subscript_expression IDENT [ LIT ])))))) )) (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) , (pointer_expression * IDENT) , IDENT , IDENT , (binary_expression IDENT + LIT) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) ))))) ;) }) while (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' character ')) )) ;) })) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = (char_literal ' escape_sequence ')) ;) (return_statement return (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))) ;) })))
(function_definition "undefined ** FUN_000e6c60(int param_1,int param_2,int param_3,undefined **param_4,char *param_5)\n\n{\n  undefined **ppuVar1;\n  undefined4 *puVar2;\n  char cVar3;\n  undefined **ppuVar4;\n  byte *pbVar5;\n  int iVar6;\n  char *pcVar7;\n  undefined4 *puVar8;\n  char *__s;\n  int iVar9;\n  char *extraout_EDX;\n  byte *pbVar10;\n  bool bVar11;\n  bool bVar12;\n  byte bVar13;\n  byte *local_34;\n  undefined **local_30;\n  undefined **local_28;\n  byte *local_24;\n  undefined4 local_20 [4];\n  \n  bVar13 = 0;\n  puVar2 = (undefined4 *)(param_3 + (int)param_4 * 4);\n  pcVar7 = (char *)*puVar2;\n  if ((*pcVar7 != '-') || (*param_5 != '\0')) {\n                    \n    FUN_00069d00("../../gold/options.cc",0x5f0,"process_one_option",pcVar7);\n  }\n  if ((pcVar7[1] != '-') || (pcVar7[2] != '\0')) {\n    local_28 = param_4;\n    local_24 = (byte *)0x0;\n    iVar6 = FUN_000df460(&local_24,&local_28);\n    ppuVar4 = local_28;\n    if (iVar6 != 0) {\n      (**(code **)**(undefined4 **)(iVar6 + 0x30))\n                (*(undefined4 **)(iVar6 + 0x30),*puVar2,local_24,param_1,param_1 + 4);\n      return local_28;\n    }\n    if ((param_4 == local_28) && (pcVar7 = *(char **)(param_3 + (int)local_28 * 4), *pcVar7 == '-'))\n    {\n      iVar6 = 1;\n      do {\n        if ((DAT_00394f90 == '\0') && (iVar9 = FUN_001e5390(&DAT_00394f90), iVar9 != 0)) {\n          DAT_00394fa0 = &DAT_00394fa8;\n                    \n          FUN_00050e40(&DAT_00394fa0,"","",0,&DAT_00394fa8);\n          DAT_00394fc0 = "";\n          DAT_00394fb8 = 4;\n          DAT_00394fbc = 0x7a;\n          DAT_00394fc4 = 0;\n          DAT_00394fc8 = "Z-OPTION";\n          DAT_00394fcc = 0;\n          DAT_00394fd0 = 0;\n          DAT_00394fd4 = 0;\n          __s = strchr(DAT_00394fa0,0x5f);\n          if (__s != (char *)0x0) {\n            do {\n              *__s = '-';\n              __s = strchr(__s,0x5f);\n            } while (__s != (char *)0x0);\n            if ((DAT_00394fc4 != 0) && (DAT_003951f0 != '\0')) {\n                    \n              FUN_000df670();\n            }\n          }\n          FUN_001e5500(&DAT_00394f90);\n          __cxa_atexit(FUN_000e8e10,&DAT_00394fa0,&PTR_LOOP_0038f2e4);\n        }\n        cVar3 = pcVar7[iVar6];\n        if (cVar3 == 'z') {\n          pbVar10 = (byte *)(pcVar7 + iVar6 + 1);\n          puVar8 = &DAT_00394fa0;\n          local_34 = (byte *)DAT_00394fc8;\n          if ((byte *)DAT_00394fc8 == (byte *)0x0) goto LAB_000e6e4d;\nLAB_000e6d8c:\n          ppuVar1 = (undefined **)((int)local_28 + 1);\n          local_34 = pbVar10;\n          pbVar5 = pbVar10;\n          if (*pbVar10 != 0) goto LAB_000e6da4;\n          if (*(char *)(puVar8 + 0xb) != '\0') {\n            local_34 = (byte *)puVar8[8];\n            pbVar5 = (byte *)puVar8[8];\n            goto LAB_000e6da4;\n          }\n          if ((int)ppuVar1 < param_2) {\n            local_34 = *(byte **)(param_3 + (int)ppuVar1 * 4);\n            ppuVar1 = (undefined **)((int)local_28 + 2);\n            pbVar5 = local_34;\n            goto LAB_000e6da4;\n          }\nLAB_000e704d:\n          local_28 = ppuVar1;\n          pcVar7 = "missing argument";\n          goto LAB_000e6e04;\n        }\n        if ((0x7e < (int)cVar3 - 1U) ||\n           (puVar8 = *(undefined4 **)(&DAT_00394fe0 + cVar3 * 4), puVar8 == (undefined4 *)0x0))\n        break;\n        local_34 = (byte *)puVar8[10];\n        pbVar10 = (byte *)(pcVar7 + iVar6 + 1);\n        if (local_34 != (byte *)0x0) goto LAB_000e6d8c;\nLAB_000e6e4d:\n        local_24 = (byte *)0x0;\n        ppuVar1 = local_28;\n        pbVar5 = local_24;\n        if (*pbVar10 == 0) {\n          local_28 = (undefined **)((int)local_28 + 1);\n          bVar12 = (char **)puVar8 == &DAT_00394fa0;\n          if (bVar12) {\nLAB_000e6e78:\n            bVar11 = puVar8 < &DAT_00394fa0;\n            local_20[0] = 0;\n            iVar9 = 6;\n            pbVar10 = (byte *)0x28e8f9;\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar11 = *local_34 < *pbVar10;\n              bVar12 = *local_34 == *pbVar10;\n              local_34 = local_34 + (uint)bVar13 * -2 + 1;\n              pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1;\n            } while (bVar12);\n            if ((!bVar11 && !bVar12) == bVar11) {\n              local_24 = (byte *)0x28e8f9;\n            }\n            puVar8 = (undefined4 *)FUN_000df460(&local_24,local_20);\n            if (puVar8 == (undefined4 *)0x0) {\n              gettext("unknown -z option");\n              FUN_000dcd10();\n              ppuVar1 = local_28;\n              goto LAB_000e704d;\n            }\n            local_34 = local_24;\n          }\n        }\n        else {\nLAB_000e6da4:\n          local_24 = pbVar5;\n          local_28 = ppuVar1;\n          bVar12 = (char **)puVar8 == &DAT_00394fa0;\n          if (bVar12) goto LAB_000e6e78;\n        }\n        iVar6 = iVar6 + 1;\n        (*(code *)**(undefined4 **)puVar8[0xc])\n                  ((undefined4 *)puVar8[0xc],*puVar2,local_34,param_1,param_1 + 4);\n        if (local_28 != ppuVar4) {\n          return local_28;\n        }\n        pcVar7 = *(char **)(param_3 + (int)ppuVar4 * 4);\n      } while (*pcVar7 == '-');\n    }\n    pcVar7 = "unknown option";\nLAB_000e6e04:\n    local_30 = &__DT_PLTGOT;\n    gettext(pcVar7);\n    FUN_000dcd10();\n    param_5 = extraout_EDX;\n    param_4 = local_30;\n  }\n  *param_5 = '\x01';\n  return (undefined **)((int)param_4 + 1);\n}" (type_identifier "undefined") (pointer_declarator "** FUN_000e6c60(int param_1,int param_2,int param_3,undefined **param_4,char *param_5)" (* "*") (pointer_declarator "* FUN_000e6c60(int param_1,int param_2,int param_3,undefined **param_4,char *param_5)" (* "*") (function_declarator "FUN_000e6c60(int param_1,int param_2,int param_3,undefined **param_4,char *param_5)" (identifier "FUN_000e6c60") (parameter_list "(int param_1,int param_2,int param_3,undefined **param_4,char *param_5)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) (, ",") (parameter_declaration "int param_3" (primitive_type "int") (identifier "param_3")) (, ",") (parameter_declaration "undefined **param_4" (type_identifier "undefined") (pointer_declarator "**param_4" (* "*") (pointer_declarator "*param_4" (* "*") (identifier "param_4")))) (, ",") (parameter_declaration "char *param_5" (primitive_type "char") (pointer_declarator "*param_5" (* "*") (identifier "param_5"))) () ")"))))) (compound_statement "{\n  undefined **ppuVar1;\n  undefined4 *puVar2;\n  char cVar3;\n  undefined **ppuVar4;\n  byte *pbVar5;\n  int iVar6;\n  char *pcVar7;\n  undefined4 *puVar8;\n  char *__s;\n  int iVar9;\n  char *extraout_EDX;\n  byte *pbVar10;\n  bool bVar11;\n  bool bVar12;\n  byte bVar13;\n  byte *local_34;\n  undefined **local_30;\n  undefined **local_28;\n  byte *local_24;\n  undefined4 local_20 [4];\n  \n  bVar13 = 0;\n  puVar2 = (undefined4 *)(param_3 + (int)param_4 * 4);\n  pcVar7 = (char *)*puVar2;\n  if ((*pcVar7 != '-') || (*param_5 != '\0')) {\n                    \n    FUN_00069d00("../../gold/options.cc",0x5f0,"process_one_option",pcVar7);\n  }\n  if ((pcVar7[1] != '-') || (pcVar7[2] != '\0')) {\n    local_28 = param_4;\n    local_24 = (byte *)0x0;\n    iVar6 = FUN_000df460(&local_24,&local_28);\n    ppuVar4 = local_28;\n    if (iVar6 != 0) {\n      (**(code **)**(undefined4 **)(iVar6 + 0x30))\n                (*(undefined4 **)(iVar6 + 0x30),*puVar2,local_24,param_1,param_1 + 4);\n      return local_28;\n    }\n    if ((param_4 == local_28) && (pcVar7 = *(char **)(param_3 + (int)local_28 * 4), *pcVar7 == '-'))\n    {\n      iVar6 = 1;\n      do {\n        if ((DAT_00394f90 == '\0') && (iVar9 = FUN_001e5390(&DAT_00394f90), iVar9 != 0)) {\n          DAT_00394fa0 = &DAT_00394fa8;\n                    \n          FUN_00050e40(&DAT_00394fa0,"","",0,&DAT_00394fa8);\n          DAT_00394fc0 = "";\n          DAT_00394fb8 = 4;\n          DAT_00394fbc = 0x7a;\n          DAT_00394fc4 = 0;\n          DAT_00394fc8 = "Z-OPTION";\n          DAT_00394fcc = 0;\n          DAT_00394fd0 = 0;\n          DAT_00394fd4 = 0;\n          __s = strchr(DAT_00394fa0,0x5f);\n          if (__s != (char *)0x0) {\n            do {\n              *__s = '-';\n              __s = strchr(__s,0x5f);\n            } while (__s != (char *)0x0);\n            if ((DAT_00394fc4 != 0) && (DAT_003951f0 != '\0')) {\n                    \n              FUN_000df670();\n            }\n          }\n          FUN_001e5500(&DAT_00394f90);\n          __cxa_atexit(FUN_000e8e10,&DAT_00394fa0,&PTR_LOOP_0038f2e4);\n        }\n        cVar3 = pcVar7[iVar6];\n        if (cVar3 == 'z') {\n          pbVar10 = (byte *)(pcVar7 + iVar6 + 1);\n          puVar8 = &DAT_00394fa0;\n          local_34 = (byte *)DAT_00394fc8;\n          if ((byte *)DAT_00394fc8 == (byte *)0x0) goto LAB_000e6e4d;\nLAB_000e6d8c:\n          ppuVar1 = (undefined **)((int)local_28 + 1);\n          local_34 = pbVar10;\n          pbVar5 = pbVar10;\n          if (*pbVar10 != 0) goto LAB_000e6da4;\n          if (*(char *)(puVar8 + 0xb) != '\0') {\n            local_34 = (byte *)puVar8[8];\n            pbVar5 = (byte *)puVar8[8];\n            goto LAB_000e6da4;\n          }\n          if ((int)ppuVar1 < param_2) {\n            local_34 = *(byte **)(param_3 + (int)ppuVar1 * 4);\n            ppuVar1 = (undefined **)((int)local_28 + 2);\n            pbVar5 = local_34;\n            goto LAB_000e6da4;\n          }\nLAB_000e704d:\n          local_28 = ppuVar1;\n          pcVar7 = "missing argument";\n          goto LAB_000e6e04;\n        }\n        if ((0x7e < (int)cVar3 - 1U) ||\n           (puVar8 = *(undefined4 **)(&DAT_00394fe0 + cVar3 * 4), puVar8 == (undefined4 *)0x0))\n        break;\n        local_34 = (byte *)puVar8[10];\n        pbVar10 = (byte *)(pcVar7 + iVar6 + 1);\n        if (local_34 != (byte *)0x0) goto LAB_000e6d8c;\nLAB_000e6e4d:\n        local_24 = (byte *)0x0;\n        ppuVar1 = local_28;\n        pbVar5 = local_24;\n        if (*pbVar10 == 0) {\n          local_28 = (undefined **)((int)local_28 + 1);\n          bVar12 = (char **)puVar8 == &DAT_00394fa0;\n          if (bVar12) {\nLAB_000e6e78:\n            bVar11 = puVar8 < &DAT_00394fa0;\n            local_20[0] = 0;\n            iVar9 = 6;\n            pbVar10 = (byte *)0x28e8f9;\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar11 = *local_34 < *pbVar10;\n              bVar12 = *local_34 == *pbVar10;\n              local_34 = local_34 + (uint)bVar13 * -2 + 1;\n              pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1;\n            } while (bVar12);\n            if ((!bVar11 && !bVar12) == bVar11) {\n              local_24 = (byte *)0x28e8f9;\n            }\n            puVar8 = (undefined4 *)FUN_000df460(&local_24,local_20);\n            if (puVar8 == (undefined4 *)0x0) {\n              gettext("unknown -z option");\n              FUN_000dcd10();\n              ppuVar1 = local_28;\n              goto LAB_000e704d;\n            }\n            local_34 = local_24;\n          }\n        }\n        else {\nLAB_000e6da4:\n          local_24 = pbVar5;\n          local_28 = ppuVar1;\n          bVar12 = (char **)puVar8 == &DAT_00394fa0;\n          if (bVar12) goto LAB_000e6e78;\n        }\n        iVar6 = iVar6 + 1;\n        (*(code *)**(undefined4 **)puVar8[0xc])\n                  ((undefined4 *)puVar8[0xc],*puVar2,local_34,param_1,param_1 + 4);\n        if (local_28 != ppuVar4) {\n          return local_28;\n        }\n        pcVar7 = *(char **)(param_3 + (int)ppuVar4 * 4);\n      } while (*pcVar7 == '-');\n    }\n    pcVar7 = "unknown option";\nLAB_000e6e04:\n    local_30 = &__DT_PLTGOT;\n    gettext(pcVar7);\n    FUN_000dcd10();\n    param_5 = extraout_EDX;\n    param_4 = local_30;\n  }\n  *param_5 = '\x01';\n  return (undefined **)((int)param_4 + 1);\n}" ({ "{") (declaration "undefined **ppuVar1;" (type_identifier "undefined") (pointer_declarator "**ppuVar1" (* "*") (pointer_declarator "*ppuVar1" (* "*") (identifier "ppuVar1"))) (; ";")) (declaration "undefined4 *puVar2;" (type_identifier "undefined4") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "char cVar3;" (primitive_type "char") (identifier "cVar3") (; ";")) (declaration "undefined **ppuVar4;" (type_identifier "undefined") (pointer_declarator "**ppuVar4" (* "*") (pointer_declarator "*ppuVar4" (* "*") (identifier "ppuVar4"))) (; ";")) (declaration "byte *pbVar5;" (type_identifier "byte") (pointer_declarator "*pbVar5" (* "*") (identifier "pbVar5")) (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "char *pcVar7;" (primitive_type "char") (pointer_declarator "*pcVar7" (* "*") (identifier "pcVar7")) (; ";")) (declaration "undefined4 *puVar8;" (type_identifier "undefined4") (pointer_declarator "*puVar8" (* "*") (identifier "puVar8")) (; ";")) (declaration "char *__s;" (primitive_type "char") (pointer_declarator "*__s" (* "*") (identifier "__s")) (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "char *extraout_EDX;" (primitive_type "char") (pointer_declarator "*extraout_EDX" (* "*") (identifier "extraout_EDX")) (; ";")) (declaration "byte *pbVar10;" (type_identifier "byte") (pointer_declarator "*pbVar10" (* "*") (identifier "pbVar10")) (; ";")) (declaration "bool bVar11;" (primitive_type "bool") (identifier "bVar11") (; ";")) (declaration "bool bVar12;" (primitive_type "bool") (identifier "bVar12") (; ";")) (declaration "byte bVar13;" (type_identifier "byte") (identifier "bVar13") (; ";")) (declaration "byte *local_34;" (type_identifier "byte") (pointer_declarator "*local_34" (* "*") (identifier "local_34")) (; ";")) (declaration "undefined **local_30;" (type_identifier "undefined") (pointer_declarator "**local_30" (* "*") (pointer_declarator "*local_30" (* "*") (identifier "local_30"))) (; ";")) (declaration "undefined **local_28;" (type_identifier "undefined") (pointer_declarator "**local_28" (* "*") (pointer_declarator "*local_28" (* "*") (identifier "local_28"))) (; ";")) (declaration "byte *local_24;" (type_identifier "byte") (pointer_declarator "*local_24" (* "*") (identifier "local_24")) (; ";")) (declaration "undefined4 local_20 [4];" (type_identifier "undefined4") (array_declarator "local_20 [4]" (identifier "local_20") ([ "[") (number_literal "4") (] "]")) (; ";")) (expression_statement "bVar13 = 0;" (assignment_expression "bVar13 = 0" (identifier "bVar13") (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar2 = (undefined4 *)(param_3 + (int)param_4 * 4);" (assignment_expression "puVar2 = (undefined4 *)(param_3 + (int)param_4 * 4)" (identifier "puVar2") (= "=") (cast_expression "(undefined4 *)(param_3 + (int)param_4 * 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + (int)param_4 * 4)" (( "(") (binary_expression "param_3 + (int)param_4 * 4" (identifier "param_3") (+ "+") (binary_expression "(int)param_4 * 4" (cast_expression "(int)param_4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_4")) (* "*") (number_literal "4"))) () ")")))) (; ";")) (expression_statement "pcVar7 = (char *)*puVar2;" (assignment_expression "pcVar7 = (char *)*puVar2" (identifier "pcVar7") (= "=") (cast_expression "(char *)*puVar2" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar2" (* "*") (identifier "puVar2")))) (; ";")) (if_statement "if ((*pcVar7 != '-') || (*param_5 != '\0')) {\n                    \n    FUN_00069d00("../../gold/options.cc",0x5f0,"process_one_option",pcVar7);\n  }" (if "if") (parenthesized_expression "((*pcVar7 != '-') || (*param_5 != '\0'))" (( "(") (binary_expression "(*pcVar7 != '-') || (*param_5 != '\0')" (parenthesized_expression "(*pcVar7 != '-')" (( "(") (binary_expression "*pcVar7 != '-'" (pointer_expression "*pcVar7" (* "*") (identifier "pcVar7")) (!= "!=") (char_literal "'-'" (' "'") (character "-") (' "'"))) () ")")) (|| "||") (parenthesized_expression "(*param_5 != '\0')" (( "(") (binary_expression "*param_5 != '\0'" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\n                    \n    FUN_00069d00("../../gold/options.cc",0x5f0,"process_one_option",pcVar7);\n  }" ({ "{") (expression_statement "FUN_00069d00("../../gold/options.cc",0x5f0,"process_one_option",pcVar7);" (call_expression "FUN_00069d00("../../gold/options.cc",0x5f0,"process_one_option",pcVar7)" (identifier "FUN_00069d00") (argument_list "("../../gold/options.cc",0x5f0,"process_one_option",pcVar7)" (( "(") (string_literal ""../../gold/options.cc"" (" """) (string_content "../../gold/options.cc") (" """)) (, ",") (number_literal "0x5f0") (, ",") (string_literal ""process_one_option"" (" """) (string_content "process_one_option") (" """)) (, ",") (identifier "pcVar7") () ")"))) (; ";")) (} "}"))) (if_statement "if ((pcVar7[1] != '-') || (pcVar7[2] != '\0')) {\n    local_28 = param_4;\n    local_24 = (byte *)0x0;\n    iVar6 = FUN_000df460(&local_24,&local_28);\n    ppuVar4 = local_28;\n    if (iVar6 != 0) {\n      (**(code **)**(undefined4 **)(iVar6 + 0x30))\n                (*(undefined4 **)(iVar6 + 0x30),*puVar2,local_24,param_1,param_1 + 4);\n      return local_28;\n    }\n    if ((param_4 == local_28) && (pcVar7 = *(char **)(param_3 + (int)local_28 * 4), *pcVar7 == '-'))\n    {\n      iVar6 = 1;\n      do {\n        if ((DAT_00394f90 == '\0') && (iVar9 = FUN_001e5390(&DAT_00394f90), iVar9 != 0)) {\n          DAT_00394fa0 = &DAT_00394fa8;\n                    \n          FUN_00050e40(&DAT_00394fa0,"","",0,&DAT_00394fa8);\n          DAT_00394fc0 = "";\n          DAT_00394fb8 = 4;\n          DAT_00394fbc = 0x7a;\n          DAT_00394fc4 = 0;\n          DAT_00394fc8 = "Z-OPTION";\n          DAT_00394fcc = 0;\n          DAT_00394fd0 = 0;\n          DAT_00394fd4 = 0;\n          __s = strchr(DAT_00394fa0,0x5f);\n          if (__s != (char *)0x0) {\n            do {\n              *__s = '-';\n              __s = strchr(__s,0x5f);\n            } while (__s != (char *)0x0);\n            if ((DAT_00394fc4 != 0) && (DAT_003951f0 != '\0')) {\n                    \n              FUN_000df670();\n            }\n          }\n          FUN_001e5500(&DAT_00394f90);\n          __cxa_atexit(FUN_000e8e10,&DAT_00394fa0,&PTR_LOOP_0038f2e4);\n        }\n        cVar3 = pcVar7[iVar6];\n        if (cVar3 == 'z') {\n          pbVar10 = (byte *)(pcVar7 + iVar6 + 1);\n          puVar8 = &DAT_00394fa0;\n          local_34 = (byte *)DAT_00394fc8;\n          if ((byte *)DAT_00394fc8 == (byte *)0x0) goto LAB_000e6e4d;\nLAB_000e6d8c:\n          ppuVar1 = (undefined **)((int)local_28 + 1);\n          local_34 = pbVar10;\n          pbVar5 = pbVar10;\n          if (*pbVar10 != 0) goto LAB_000e6da4;\n          if (*(char *)(puVar8 + 0xb) != '\0') {\n            local_34 = (byte *)puVar8[8];\n            pbVar5 = (byte *)puVar8[8];\n            goto LAB_000e6da4;\n          }\n          if ((int)ppuVar1 < param_2) {\n            local_34 = *(byte **)(param_3 + (int)ppuVar1 * 4);\n            ppuVar1 = (undefined **)((int)local_28 + 2);\n            pbVar5 = local_34;\n            goto LAB_000e6da4;\n          }\nLAB_000e704d:\n          local_28 = ppuVar1;\n          pcVar7 = "missing argument";\n          goto LAB_000e6e04;\n        }\n        if ((0x7e < (int)cVar3 - 1U) ||\n           (puVar8 = *(undefined4 **)(&DAT_00394fe0 + cVar3 * 4), puVar8 == (undefined4 *)0x0))\n        break;\n        local_34 = (byte *)puVar8[10];\n        pbVar10 = (byte *)(pcVar7 + iVar6 + 1);\n        if (local_34 != (byte *)0x0) goto LAB_000e6d8c;\nLAB_000e6e4d:\n        local_24 = (byte *)0x0;\n        ppuVar1 = local_28;\n        pbVar5 = local_24;\n        if (*pbVar10 == 0) {\n          local_28 = (undefined **)((int)local_28 + 1);\n          bVar12 = (char **)puVar8 == &DAT_00394fa0;\n          if (bVar12) {\nLAB_000e6e78:\n            bVar11 = puVar8 < &DAT_00394fa0;\n            local_20[0] = 0;\n            iVar9 = 6;\n            pbVar10 = (byte *)0x28e8f9;\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar11 = *local_34 < *pbVar10;\n              bVar12 = *local_34 == *pbVar10;\n              local_34 = local_34 + (uint)bVar13 * -2 + 1;\n              pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1;\n            } while (bVar12);\n            if ((!bVar11 && !bVar12) == bVar11) {\n              local_24 = (byte *)0x28e8f9;\n            }\n            puVar8 = (undefined4 *)FUN_000df460(&local_24,local_20);\n            if (puVar8 == (undefined4 *)0x0) {\n              gettext("unknown -z option");\n              FUN_000dcd10();\n              ppuVar1 = local_28;\n              goto LAB_000e704d;\n            }\n            local_34 = local_24;\n          }\n        }\n        else {\nLAB_000e6da4:\n          local_24 = pbVar5;\n          local_28 = ppuVar1;\n          bVar12 = (char **)puVar8 == &DAT_00394fa0;\n          if (bVar12) goto LAB_000e6e78;\n        }\n        iVar6 = iVar6 + 1;\n        (*(code *)**(undefined4 **)puVar8[0xc])\n                  ((undefined4 *)puVar8[0xc],*puVar2,local_34,param_1,param_1 + 4);\n        if (local_28 != ppuVar4) {\n          return local_28;\n        }\n        pcVar7 = *(char **)(param_3 + (int)ppuVar4 * 4);\n      } while (*pcVar7 == '-');\n    }\n    pcVar7 = "unknown option";\nLAB_000e6e04:\n    local_30 = &__DT_PLTGOT;\n    gettext(pcVar7);\n    FUN_000dcd10();\n    param_5 = extraout_EDX;\n    param_4 = local_30;\n  }" (if "if") (parenthesized_expression "((pcVar7[1] != '-') || (pcVar7[2] != '\0'))" (( "(") (binary_expression "(pcVar7[1] != '-') || (pcVar7[2] != '\0')" (parenthesized_expression "(pcVar7[1] != '-')" (( "(") (binary_expression "pcVar7[1] != '-'" (subscript_expression "pcVar7[1]" (identifier "pcVar7") ([ "[") (number_literal "1") (] "]")) (!= "!=") (char_literal "'-'" (' "'") (character "-") (' "'"))) () ")")) (|| "||") (parenthesized_expression "(pcVar7[2] != '\0')" (( "(") (binary_expression "pcVar7[2] != '\0'" (subscript_expression "pcVar7[2]" (identifier "pcVar7") ([ "[") (number_literal "2") (] "]")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\n    local_28 = param_4;\n    local_24 = (byte *)0x0;\n    iVar6 = FUN_000df460(&local_24,&local_28);\n    ppuVar4 = local_28;\n    if (iVar6 != 0) {\n      (**(code **)**(undefined4 **)(iVar6 + 0x30))\n                (*(undefined4 **)(iVar6 + 0x30),*puVar2,local_24,param_1,param_1 + 4);\n      return local_28;\n    }\n    if ((param_4 == local_28) && (pcVar7 = *(char **)(param_3 + (int)local_28 * 4), *pcVar7 == '-'))\n    {\n      iVar6 = 1;\n      do {\n        if ((DAT_00394f90 == '\0') && (iVar9 = FUN_001e5390(&DAT_00394f90), iVar9 != 0)) {\n          DAT_00394fa0 = &DAT_00394fa8;\n                    \n          FUN_00050e40(&DAT_00394fa0,"","",0,&DAT_00394fa8);\n          DAT_00394fc0 = "";\n          DAT_00394fb8 = 4;\n          DAT_00394fbc = 0x7a;\n          DAT_00394fc4 = 0;\n          DAT_00394fc8 = "Z-OPTION";\n          DAT_00394fcc = 0;\n          DAT_00394fd0 = 0;\n          DAT_00394fd4 = 0;\n          __s = strchr(DAT_00394fa0,0x5f);\n          if (__s != (char *)0x0) {\n            do {\n              *__s = '-';\n              __s = strchr(__s,0x5f);\n            } while (__s != (char *)0x0);\n            if ((DAT_00394fc4 != 0) && (DAT_003951f0 != '\0')) {\n                    \n              FUN_000df670();\n            }\n          }\n          FUN_001e5500(&DAT_00394f90);\n          __cxa_atexit(FUN_000e8e10,&DAT_00394fa0,&PTR_LOOP_0038f2e4);\n        }\n        cVar3 = pcVar7[iVar6];\n        if (cVar3 == 'z') {\n          pbVar10 = (byte *)(pcVar7 + iVar6 + 1);\n          puVar8 = &DAT_00394fa0;\n          local_34 = (byte *)DAT_00394fc8;\n          if ((byte *)DAT_00394fc8 == (byte *)0x0) goto LAB_000e6e4d;\nLAB_000e6d8c:\n          ppuVar1 = (undefined **)((int)local_28 + 1);\n          local_34 = pbVar10;\n          pbVar5 = pbVar10;\n          if (*pbVar10 != 0) goto LAB_000e6da4;\n          if (*(char *)(puVar8 + 0xb) != '\0') {\n            local_34 = (byte *)puVar8[8];\n            pbVar5 = (byte *)puVar8[8];\n            goto LAB_000e6da4;\n          }\n          if ((int)ppuVar1 < param_2) {\n            local_34 = *(byte **)(param_3 + (int)ppuVar1 * 4);\n            ppuVar1 = (undefined **)((int)local_28 + 2);\n            pbVar5 = local_34;\n            goto LAB_000e6da4;\n          }\nLAB_000e704d:\n          local_28 = ppuVar1;\n          pcVar7 = "missing argument";\n          goto LAB_000e6e04;\n        }\n        if ((0x7e < (int)cVar3 - 1U) ||\n           (puVar8 = *(undefined4 **)(&DAT_00394fe0 + cVar3 * 4), puVar8 == (undefined4 *)0x0))\n        break;\n        local_34 = (byte *)puVar8[10];\n        pbVar10 = (byte *)(pcVar7 + iVar6 + 1);\n        if (local_34 != (byte *)0x0) goto LAB_000e6d8c;\nLAB_000e6e4d:\n        local_24 = (byte *)0x0;\n        ppuVar1 = local_28;\n        pbVar5 = local_24;\n        if (*pbVar10 == 0) {\n          local_28 = (undefined **)((int)local_28 + 1);\n          bVar12 = (char **)puVar8 == &DAT_00394fa0;\n          if (bVar12) {\nLAB_000e6e78:\n            bVar11 = puVar8 < &DAT_00394fa0;\n            local_20[0] = 0;\n            iVar9 = 6;\n            pbVar10 = (byte *)0x28e8f9;\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar11 = *local_34 < *pbVar10;\n              bVar12 = *local_34 == *pbVar10;\n              local_34 = local_34 + (uint)bVar13 * -2 + 1;\n              pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1;\n            } while (bVar12);\n            if ((!bVar11 && !bVar12) == bVar11) {\n              local_24 = (byte *)0x28e8f9;\n            }\n            puVar8 = (undefined4 *)FUN_000df460(&local_24,local_20);\n            if (puVar8 == (undefined4 *)0x0) {\n              gettext("unknown -z option");\n              FUN_000dcd10();\n              ppuVar1 = local_28;\n              goto LAB_000e704d;\n            }\n            local_34 = local_24;\n          }\n        }\n        else {\nLAB_000e6da4:\n          local_24 = pbVar5;\n          local_28 = ppuVar1;\n          bVar12 = (char **)puVar8 == &DAT_00394fa0;\n          if (bVar12) goto LAB_000e6e78;\n        }\n        iVar6 = iVar6 + 1;\n        (*(code *)**(undefined4 **)puVar8[0xc])\n                  ((undefined4 *)puVar8[0xc],*puVar2,local_34,param_1,param_1 + 4);\n        if (local_28 != ppuVar4) {\n          return local_28;\n        }\n        pcVar7 = *(char **)(param_3 + (int)ppuVar4 * 4);\n      } while (*pcVar7 == '-');\n    }\n    pcVar7 = "unknown option";\nLAB_000e6e04:\n    local_30 = &__DT_PLTGOT;\n    gettext(pcVar7);\n    FUN_000dcd10();\n    param_5 = extraout_EDX;\n    param_4 = local_30;\n  }" ({ "{") (expression_statement "local_28 = param_4;" (assignment_expression "local_28 = param_4" (identifier "local_28") (= "=") (identifier "param_4")) (; ";")) (expression_statement "local_24 = (byte *)0x0;" (assignment_expression "local_24 = (byte *)0x0" (identifier "local_24") (= "=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "iVar6 = FUN_000df460(&local_24,&local_28);" (assignment_expression "iVar6 = FUN_000df460(&local_24,&local_28)" (identifier "iVar6") (= "=") (call_expression "FUN_000df460(&local_24,&local_28)" (identifier "FUN_000df460") (argument_list "(&local_24,&local_28)" (( "(") (pointer_expression "&local_24" (& "&") (identifier "local_24")) (, ",") (pointer_expression "&local_28" (& "&") (identifier "local_28")) () ")")))) (; ";")) (expression_statement "ppuVar4 = local_28;" (assignment_expression "ppuVar4 = local_28" (identifier "ppuVar4") (= "=") (identifier "local_28")) (; ";")) (if_statement "if (iVar6 != 0) {\n      (**(code **)**(undefined4 **)(iVar6 + 0x30))\n                (*(undefined4 **)(iVar6 + 0x30),*puVar2,local_24,param_1,param_1 + 4);\n      return local_28;\n    }" (if "if") (parenthesized_expression "(iVar6 != 0)" (( "(") (binary_expression "iVar6 != 0" (identifier "iVar6") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      (**(code **)**(undefined4 **)(iVar6 + 0x30))\n                (*(undefined4 **)(iVar6 + 0x30),*puVar2,local_24,param_1,param_1 + 4);\n      return local_28;\n    }" ({ "{") (expression_statement "(**(code **)**(undefined4 **)(iVar6 + 0x30))\n                (*(undefined4 **)(iVar6 + 0x30),*puVar2,local_24,param_1,param_1 + 4);" (call_expression "(**(code **)**(undefined4 **)(iVar6 + 0x30))\n                (*(undefined4 **)(iVar6 + 0x30),*puVar2,local_24,param_1,param_1 + 4)" (parenthesized_expression "(**(code **)**(undefined4 **)(iVar6 + 0x30))" (( "(") (pointer_expression "**(code **)**(undefined4 **)(iVar6 + 0x30)" (* "*") (pointer_expression "*(code **)**(undefined4 **)(iVar6 + 0x30)" (* "*") (cast_expression "(code **)**(undefined4 **)(iVar6 + 0x30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (pointer_expression "**(undefined4 **)(iVar6 + 0x30)" (* "*") (pointer_expression "*(undefined4 **)(iVar6 + 0x30)" (* "*") (cast_expression "(undefined4 **)(iVar6 + 0x30)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar6 + 0x30)" (( "(") (binary_expression "iVar6 + 0x30" (identifier "iVar6") (+ "+") (number_literal "0x30")) () ")")))))))) () ")")) (argument_list "(*(undefined4 **)(iVar6 + 0x30),*puVar2,local_24,param_1,param_1 + 4)" (( "(") (pointer_expression "*(undefined4 **)(iVar6 + 0x30)" (* "*") (cast_expression "(undefined4 **)(iVar6 + 0x30)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar6 + 0x30)" (( "(") (binary_expression "iVar6 + 0x30" (identifier "iVar6") (+ "+") (number_literal "0x30")) () ")")))) (, ",") (pointer_expression "*puVar2" (* "*") (identifier "puVar2")) (, ",") (identifier "local_24") (, ",") (identifier "param_1") (, ",") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")"))) (; ";")) (return_statement "return local_28;" (return "return") (identifier "local_28") (; ";")) (} "}"))) (if_statement "if ((param_4 == local_28) && (pcVar7 = *(char **)(param_3 + (int)local_28 * 4), *pcVar7 == '-'))\n    {\n      iVar6 = 1;\n      do {\n        if ((DAT_00394f90 == '\0') && (iVar9 = FUN_001e5390(&DAT_00394f90), iVar9 != 0)) {\n          DAT_00394fa0 = &DAT_00394fa8;\n                    \n          FUN_00050e40(&DAT_00394fa0,"","",0,&DAT_00394fa8);\n          DAT_00394fc0 = "";\n          DAT_00394fb8 = 4;\n          DAT_00394fbc = 0x7a;\n          DAT_00394fc4 = 0;\n          DAT_00394fc8 = "Z-OPTION";\n          DAT_00394fcc = 0;\n          DAT_00394fd0 = 0;\n          DAT_00394fd4 = 0;\n          __s = strchr(DAT_00394fa0,0x5f);\n          if (__s != (char *)0x0) {\n            do {\n              *__s = '-';\n              __s = strchr(__s,0x5f);\n            } while (__s != (char *)0x0);\n            if ((DAT_00394fc4 != 0) && (DAT_003951f0 != '\0')) {\n                    \n              FUN_000df670();\n            }\n          }\n          FUN_001e5500(&DAT_00394f90);\n          __cxa_atexit(FUN_000e8e10,&DAT_00394fa0,&PTR_LOOP_0038f2e4);\n        }\n        cVar3 = pcVar7[iVar6];\n        if (cVar3 == 'z') {\n          pbVar10 = (byte *)(pcVar7 + iVar6 + 1);\n          puVar8 = &DAT_00394fa0;\n          local_34 = (byte *)DAT_00394fc8;\n          if ((byte *)DAT_00394fc8 == (byte *)0x0) goto LAB_000e6e4d;\nLAB_000e6d8c:\n          ppuVar1 = (undefined **)((int)local_28 + 1);\n          local_34 = pbVar10;\n          pbVar5 = pbVar10;\n          if (*pbVar10 != 0) goto LAB_000e6da4;\n          if (*(char *)(puVar8 + 0xb) != '\0') {\n            local_34 = (byte *)puVar8[8];\n            pbVar5 = (byte *)puVar8[8];\n            goto LAB_000e6da4;\n          }\n          if ((int)ppuVar1 < param_2) {\n            local_34 = *(byte **)(param_3 + (int)ppuVar1 * 4);\n            ppuVar1 = (undefined **)((int)local_28 + 2);\n            pbVar5 = local_34;\n            goto LAB_000e6da4;\n          }\nLAB_000e704d:\n          local_28 = ppuVar1;\n          pcVar7 = "missing argument";\n          goto LAB_000e6e04;\n        }\n        if ((0x7e < (int)cVar3 - 1U) ||\n           (puVar8 = *(undefined4 **)(&DAT_00394fe0 + cVar3 * 4), puVar8 == (undefined4 *)0x0))\n        break;\n        local_34 = (byte *)puVar8[10];\n        pbVar10 = (byte *)(pcVar7 + iVar6 + 1);\n        if (local_34 != (byte *)0x0) goto LAB_000e6d8c;\nLAB_000e6e4d:\n        local_24 = (byte *)0x0;\n        ppuVar1 = local_28;\n        pbVar5 = local_24;\n        if (*pbVar10 == 0) {\n          local_28 = (undefined **)((int)local_28 + 1);\n          bVar12 = (char **)puVar8 == &DAT_00394fa0;\n          if (bVar12) {\nLAB_000e6e78:\n            bVar11 = puVar8 < &DAT_00394fa0;\n            local_20[0] = 0;\n            iVar9 = 6;\n            pbVar10 = (byte *)0x28e8f9;\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar11 = *local_34 < *pbVar10;\n              bVar12 = *local_34 == *pbVar10;\n              local_34 = local_34 + (uint)bVar13 * -2 + 1;\n              pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1;\n            } while (bVar12);\n            if ((!bVar11 && !bVar12) == bVar11) {\n              local_24 = (byte *)0x28e8f9;\n            }\n            puVar8 = (undefined4 *)FUN_000df460(&local_24,local_20);\n            if (puVar8 == (undefined4 *)0x0) {\n              gettext("unknown -z option");\n              FUN_000dcd10();\n              ppuVar1 = local_28;\n              goto LAB_000e704d;\n            }\n            local_34 = local_24;\n          }\n        }\n        else {\nLAB_000e6da4:\n          local_24 = pbVar5;\n          local_28 = ppuVar1;\n          bVar12 = (char **)puVar8 == &DAT_00394fa0;\n          if (bVar12) goto LAB_000e6e78;\n        }\n        iVar6 = iVar6 + 1;\n        (*(code *)**(undefined4 **)puVar8[0xc])\n                  ((undefined4 *)puVar8[0xc],*puVar2,local_34,param_1,param_1 + 4);\n        if (local_28 != ppuVar4) {\n          return local_28;\n        }\n        pcVar7 = *(char **)(param_3 + (int)ppuVar4 * 4);\n      } while (*pcVar7 == '-');\n    }" (if "if") (parenthesized_expression "((param_4 == local_28) && (pcVar7 = *(char **)(param_3 + (int)local_28 * 4), *pcVar7 == '-'))" (( "(") (binary_expression "(param_4 == local_28) && (pcVar7 = *(char **)(param_3 + (int)local_28 * 4), *pcVar7 == '-')" (parenthesized_expression "(param_4 == local_28)" (( "(") (binary_expression "param_4 == local_28" (identifier "param_4") (== "==") (identifier "local_28")) () ")")) (&& "&&") (parenthesized_expression "(pcVar7 = *(char **)(param_3 + (int)local_28 * 4), *pcVar7 == '-')" (( "(") (comma_expression "pcVar7 = *(char **)(param_3 + (int)local_28 * 4), *pcVar7 == '-'" (assignment_expression "pcVar7 = *(char **)(param_3 + (int)local_28 * 4)" (identifier "pcVar7") (= "=") (pointer_expression "*(char **)(param_3 + (int)local_28 * 4)" (* "*") (cast_expression "(char **)(param_3 + (int)local_28 * 4)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_3 + (int)local_28 * 4)" (( "(") (binary_expression "param_3 + (int)local_28 * 4" (identifier "param_3") (+ "+") (binary_expression "(int)local_28 * 4" (cast_expression "(int)local_28" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_28")) (* "*") (number_literal "4"))) () ")"))))) (, ",") (binary_expression "*pcVar7 == '-'" (pointer_expression "*pcVar7" (* "*") (identifier "pcVar7")) (== "==") (char_literal "'-'" (' "'") (character "-") (' "'")))) () ")"))) () ")")) (compound_statement "{\n      iVar6 = 1;\n      do {\n        if ((DAT_00394f90 == '\0') && (iVar9 = FUN_001e5390(&DAT_00394f90), iVar9 != 0)) {\n          DAT_00394fa0 = &DAT_00394fa8;\n                    \n          FUN_00050e40(&DAT_00394fa0,"","",0,&DAT_00394fa8);\n          DAT_00394fc0 = "";\n          DAT_00394fb8 = 4;\n          DAT_00394fbc = 0x7a;\n          DAT_00394fc4 = 0;\n          DAT_00394fc8 = "Z-OPTION";\n          DAT_00394fcc = 0;\n          DAT_00394fd0 = 0;\n          DAT_00394fd4 = 0;\n          __s = strchr(DAT_00394fa0,0x5f);\n          if (__s != (char *)0x0) {\n            do {\n              *__s = '-';\n              __s = strchr(__s,0x5f);\n            } while (__s != (char *)0x0);\n            if ((DAT_00394fc4 != 0) && (DAT_003951f0 != '\0')) {\n                    \n              FUN_000df670();\n            }\n          }\n          FUN_001e5500(&DAT_00394f90);\n          __cxa_atexit(FUN_000e8e10,&DAT_00394fa0,&PTR_LOOP_0038f2e4);\n        }\n        cVar3 = pcVar7[iVar6];\n        if (cVar3 == 'z') {\n          pbVar10 = (byte *)(pcVar7 + iVar6 + 1);\n          puVar8 = &DAT_00394fa0;\n          local_34 = (byte *)DAT_00394fc8;\n          if ((byte *)DAT_00394fc8 == (byte *)0x0) goto LAB_000e6e4d;\nLAB_000e6d8c:\n          ppuVar1 = (undefined **)((int)local_28 + 1);\n          local_34 = pbVar10;\n          pbVar5 = pbVar10;\n          if (*pbVar10 != 0) goto LAB_000e6da4;\n          if (*(char *)(puVar8 + 0xb) != '\0') {\n            local_34 = (byte *)puVar8[8];\n            pbVar5 = (byte *)puVar8[8];\n            goto LAB_000e6da4;\n          }\n          if ((int)ppuVar1 < param_2) {\n            local_34 = *(byte **)(param_3 + (int)ppuVar1 * 4);\n            ppuVar1 = (undefined **)((int)local_28 + 2);\n            pbVar5 = local_34;\n            goto LAB_000e6da4;\n          }\nLAB_000e704d:\n          local_28 = ppuVar1;\n          pcVar7 = "missing argument";\n          goto LAB_000e6e04;\n        }\n        if ((0x7e < (int)cVar3 - 1U) ||\n           (puVar8 = *(undefined4 **)(&DAT_00394fe0 + cVar3 * 4), puVar8 == (undefined4 *)0x0))\n        break;\n        local_34 = (byte *)puVar8[10];\n        pbVar10 = (byte *)(pcVar7 + iVar6 + 1);\n        if (local_34 != (byte *)0x0) goto LAB_000e6d8c;\nLAB_000e6e4d:\n        local_24 = (byte *)0x0;\n        ppuVar1 = local_28;\n        pbVar5 = local_24;\n        if (*pbVar10 == 0) {\n          local_28 = (undefined **)((int)local_28 + 1);\n          bVar12 = (char **)puVar8 == &DAT_00394fa0;\n          if (bVar12) {\nLAB_000e6e78:\n            bVar11 = puVar8 < &DAT_00394fa0;\n            local_20[0] = 0;\n            iVar9 = 6;\n            pbVar10 = (byte *)0x28e8f9;\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar11 = *local_34 < *pbVar10;\n              bVar12 = *local_34 == *pbVar10;\n              local_34 = local_34 + (uint)bVar13 * -2 + 1;\n              pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1;\n            } while (bVar12);\n            if ((!bVar11 && !bVar12) == bVar11) {\n              local_24 = (byte *)0x28e8f9;\n            }\n            puVar8 = (undefined4 *)FUN_000df460(&local_24,local_20);\n            if (puVar8 == (undefined4 *)0x0) {\n              gettext("unknown -z option");\n              FUN_000dcd10();\n              ppuVar1 = local_28;\n              goto LAB_000e704d;\n            }\n            local_34 = local_24;\n          }\n        }\n        else {\nLAB_000e6da4:\n          local_24 = pbVar5;\n          local_28 = ppuVar1;\n          bVar12 = (char **)puVar8 == &DAT_00394fa0;\n          if (bVar12) goto LAB_000e6e78;\n        }\n        iVar6 = iVar6 + 1;\n        (*(code *)**(undefined4 **)puVar8[0xc])\n                  ((undefined4 *)puVar8[0xc],*puVar2,local_34,param_1,param_1 + 4);\n        if (local_28 != ppuVar4) {\n          return local_28;\n        }\n        pcVar7 = *(char **)(param_3 + (int)ppuVar4 * 4);\n      } while (*pcVar7 == '-');\n    }" ({ "{") (expression_statement "iVar6 = 1;" (assignment_expression "iVar6 = 1" (identifier "iVar6") (= "=") (number_literal "1")) (; ";")) (do_statement "do {\n        if ((DAT_00394f90 == '\0') && (iVar9 = FUN_001e5390(&DAT_00394f90), iVar9 != 0)) {\n          DAT_00394fa0 = &DAT_00394fa8;\n                    \n          FUN_00050e40(&DAT_00394fa0,"","",0,&DAT_00394fa8);\n          DAT_00394fc0 = "";\n          DAT_00394fb8 = 4;\n          DAT_00394fbc = 0x7a;\n          DAT_00394fc4 = 0;\n          DAT_00394fc8 = "Z-OPTION";\n          DAT_00394fcc = 0;\n          DAT_00394fd0 = 0;\n          DAT_00394fd4 = 0;\n          __s = strchr(DAT_00394fa0,0x5f);\n          if (__s != (char *)0x0) {\n            do {\n              *__s = '-';\n              __s = strchr(__s,0x5f);\n            } while (__s != (char *)0x0);\n            if ((DAT_00394fc4 != 0) && (DAT_003951f0 != '\0')) {\n                    \n              FUN_000df670();\n            }\n          }\n          FUN_001e5500(&DAT_00394f90);\n          __cxa_atexit(FUN_000e8e10,&DAT_00394fa0,&PTR_LOOP_0038f2e4);\n        }\n        cVar3 = pcVar7[iVar6];\n        if (cVar3 == 'z') {\n          pbVar10 = (byte *)(pcVar7 + iVar6 + 1);\n          puVar8 = &DAT_00394fa0;\n          local_34 = (byte *)DAT_00394fc8;\n          if ((byte *)DAT_00394fc8 == (byte *)0x0) goto LAB_000e6e4d;\nLAB_000e6d8c:\n          ppuVar1 = (undefined **)((int)local_28 + 1);\n          local_34 = pbVar10;\n          pbVar5 = pbVar10;\n          if (*pbVar10 != 0) goto LAB_000e6da4;\n          if (*(char *)(puVar8 + 0xb) != '\0') {\n            local_34 = (byte *)puVar8[8];\n            pbVar5 = (byte *)puVar8[8];\n            goto LAB_000e6da4;\n          }\n          if ((int)ppuVar1 < param_2) {\n            local_34 = *(byte **)(param_3 + (int)ppuVar1 * 4);\n            ppuVar1 = (undefined **)((int)local_28 + 2);\n            pbVar5 = local_34;\n            goto LAB_000e6da4;\n          }\nLAB_000e704d:\n          local_28 = ppuVar1;\n          pcVar7 = "missing argument";\n          goto LAB_000e6e04;\n        }\n        if ((0x7e < (int)cVar3 - 1U) ||\n           (puVar8 = *(undefined4 **)(&DAT_00394fe0 + cVar3 * 4), puVar8 == (undefined4 *)0x0))\n        break;\n        local_34 = (byte *)puVar8[10];\n        pbVar10 = (byte *)(pcVar7 + iVar6 + 1);\n        if (local_34 != (byte *)0x0) goto LAB_000e6d8c;\nLAB_000e6e4d:\n        local_24 = (byte *)0x0;\n        ppuVar1 = local_28;\n        pbVar5 = local_24;\n        if (*pbVar10 == 0) {\n          local_28 = (undefined **)((int)local_28 + 1);\n          bVar12 = (char **)puVar8 == &DAT_00394fa0;\n          if (bVar12) {\nLAB_000e6e78:\n            bVar11 = puVar8 < &DAT_00394fa0;\n            local_20[0] = 0;\n            iVar9 = 6;\n            pbVar10 = (byte *)0x28e8f9;\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar11 = *local_34 < *pbVar10;\n              bVar12 = *local_34 == *pbVar10;\n              local_34 = local_34 + (uint)bVar13 * -2 + 1;\n              pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1;\n            } while (bVar12);\n            if ((!bVar11 && !bVar12) == bVar11) {\n              local_24 = (byte *)0x28e8f9;\n            }\n            puVar8 = (undefined4 *)FUN_000df460(&local_24,local_20);\n            if (puVar8 == (undefined4 *)0x0) {\n              gettext("unknown -z option");\n              FUN_000dcd10();\n              ppuVar1 = local_28;\n              goto LAB_000e704d;\n            }\n            local_34 = local_24;\n          }\n        }\n        else {\nLAB_000e6da4:\n          local_24 = pbVar5;\n          local_28 = ppuVar1;\n          bVar12 = (char **)puVar8 == &DAT_00394fa0;\n          if (bVar12) goto LAB_000e6e78;\n        }\n        iVar6 = iVar6 + 1;\n        (*(code *)**(undefined4 **)puVar8[0xc])\n                  ((undefined4 *)puVar8[0xc],*puVar2,local_34,param_1,param_1 + 4);\n        if (local_28 != ppuVar4) {\n          return local_28;\n        }\n        pcVar7 = *(char **)(param_3 + (int)ppuVar4 * 4);\n      } while (*pcVar7 == '-');" (do "do") (compound_statement "{\n        if ((DAT_00394f90 == '\0') && (iVar9 = FUN_001e5390(&DAT_00394f90), iVar9 != 0)) {\n          DAT_00394fa0 = &DAT_00394fa8;\n                    \n          FUN_00050e40(&DAT_00394fa0,"","",0,&DAT_00394fa8);\n          DAT_00394fc0 = "";\n          DAT_00394fb8 = 4;\n          DAT_00394fbc = 0x7a;\n          DAT_00394fc4 = 0;\n          DAT_00394fc8 = "Z-OPTION";\n          DAT_00394fcc = 0;\n          DAT_00394fd0 = 0;\n          DAT_00394fd4 = 0;\n          __s = strchr(DAT_00394fa0,0x5f);\n          if (__s != (char *)0x0) {\n            do {\n              *__s = '-';\n              __s = strchr(__s,0x5f);\n            } while (__s != (char *)0x0);\n            if ((DAT_00394fc4 != 0) && (DAT_003951f0 != '\0')) {\n                    \n              FUN_000df670();\n            }\n          }\n          FUN_001e5500(&DAT_00394f90);\n          __cxa_atexit(FUN_000e8e10,&DAT_00394fa0,&PTR_LOOP_0038f2e4);\n        }\n        cVar3 = pcVar7[iVar6];\n        if (cVar3 == 'z') {\n          pbVar10 = (byte *)(pcVar7 + iVar6 + 1);\n          puVar8 = &DAT_00394fa0;\n          local_34 = (byte *)DAT_00394fc8;\n          if ((byte *)DAT_00394fc8 == (byte *)0x0) goto LAB_000e6e4d;\nLAB_000e6d8c:\n          ppuVar1 = (undefined **)((int)local_28 + 1);\n          local_34 = pbVar10;\n          pbVar5 = pbVar10;\n          if (*pbVar10 != 0) goto LAB_000e6da4;\n          if (*(char *)(puVar8 + 0xb) != '\0') {\n            local_34 = (byte *)puVar8[8];\n            pbVar5 = (byte *)puVar8[8];\n            goto LAB_000e6da4;\n          }\n          if ((int)ppuVar1 < param_2) {\n            local_34 = *(byte **)(param_3 + (int)ppuVar1 * 4);\n            ppuVar1 = (undefined **)((int)local_28 + 2);\n            pbVar5 = local_34;\n            goto LAB_000e6da4;\n          }\nLAB_000e704d:\n          local_28 = ppuVar1;\n          pcVar7 = "missing argument";\n          goto LAB_000e6e04;\n        }\n        if ((0x7e < (int)cVar3 - 1U) ||\n           (puVar8 = *(undefined4 **)(&DAT_00394fe0 + cVar3 * 4), puVar8 == (undefined4 *)0x0))\n        break;\n        local_34 = (byte *)puVar8[10];\n        pbVar10 = (byte *)(pcVar7 + iVar6 + 1);\n        if (local_34 != (byte *)0x0) goto LAB_000e6d8c;\nLAB_000e6e4d:\n        local_24 = (byte *)0x0;\n        ppuVar1 = local_28;\n        pbVar5 = local_24;\n        if (*pbVar10 == 0) {\n          local_28 = (undefined **)((int)local_28 + 1);\n          bVar12 = (char **)puVar8 == &DAT_00394fa0;\n          if (bVar12) {\nLAB_000e6e78:\n            bVar11 = puVar8 < &DAT_00394fa0;\n            local_20[0] = 0;\n            iVar9 = 6;\n            pbVar10 = (byte *)0x28e8f9;\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar11 = *local_34 < *pbVar10;\n              bVar12 = *local_34 == *pbVar10;\n              local_34 = local_34 + (uint)bVar13 * -2 + 1;\n              pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1;\n            } while (bVar12);\n            if ((!bVar11 && !bVar12) == bVar11) {\n              local_24 = (byte *)0x28e8f9;\n            }\n            puVar8 = (undefined4 *)FUN_000df460(&local_24,local_20);\n            if (puVar8 == (undefined4 *)0x0) {\n              gettext("unknown -z option");\n              FUN_000dcd10();\n              ppuVar1 = local_28;\n              goto LAB_000e704d;\n            }\n            local_34 = local_24;\n          }\n        }\n        else {\nLAB_000e6da4:\n          local_24 = pbVar5;\n          local_28 = ppuVar1;\n          bVar12 = (char **)puVar8 == &DAT_00394fa0;\n          if (bVar12) goto LAB_000e6e78;\n        }\n        iVar6 = iVar6 + 1;\n        (*(code *)**(undefined4 **)puVar8[0xc])\n                  ((undefined4 *)puVar8[0xc],*puVar2,local_34,param_1,param_1 + 4);\n        if (local_28 != ppuVar4) {\n          return local_28;\n        }\n        pcVar7 = *(char **)(param_3 + (int)ppuVar4 * 4);\n      }" ({ "{") (if_statement "if ((DAT_00394f90 == '\0') && (iVar9 = FUN_001e5390(&DAT_00394f90), iVar9 != 0)) {\n          DAT_00394fa0 = &DAT_00394fa8;\n                    \n          FUN_00050e40(&DAT_00394fa0,"","",0,&DAT_00394fa8);\n          DAT_00394fc0 = "";\n          DAT_00394fb8 = 4;\n          DAT_00394fbc = 0x7a;\n          DAT_00394fc4 = 0;\n          DAT_00394fc8 = "Z-OPTION";\n          DAT_00394fcc = 0;\n          DAT_00394fd0 = 0;\n          DAT_00394fd4 = 0;\n          __s = strchr(DAT_00394fa0,0x5f);\n          if (__s != (char *)0x0) {\n            do {\n              *__s = '-';\n              __s = strchr(__s,0x5f);\n            } while (__s != (char *)0x0);\n            if ((DAT_00394fc4 != 0) && (DAT_003951f0 != '\0')) {\n                    \n              FUN_000df670();\n            }\n          }\n          FUN_001e5500(&DAT_00394f90);\n          __cxa_atexit(FUN_000e8e10,&DAT_00394fa0,&PTR_LOOP_0038f2e4);\n        }" (if "if") (parenthesized_expression "((DAT_00394f90 == '\0') && (iVar9 = FUN_001e5390(&DAT_00394f90), iVar9 != 0))" (( "(") (binary_expression "(DAT_00394f90 == '\0') && (iVar9 = FUN_001e5390(&DAT_00394f90), iVar9 != 0)" (parenthesized_expression "(DAT_00394f90 == '\0')" (( "(") (binary_expression "DAT_00394f90 == '\0'" (identifier "DAT_00394f90") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(iVar9 = FUN_001e5390(&DAT_00394f90), iVar9 != 0)" (( "(") (comma_expression "iVar9 = FUN_001e5390(&DAT_00394f90), iVar9 != 0" (assignment_expression "iVar9 = FUN_001e5390(&DAT_00394f90)" (identifier "iVar9") (= "=") (call_expression "FUN_001e5390(&DAT_00394f90)" (identifier "FUN_001e5390") (argument_list "(&DAT_00394f90)" (( "(") (pointer_expression "&DAT_00394f90" (& "&") (identifier "DAT_00394f90")) () ")")))) (, ",") (binary_expression "iVar9 != 0" (identifier "iVar9") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n          DAT_00394fa0 = &DAT_00394fa8;\n                    \n          FUN_00050e40(&DAT_00394fa0,"","",0,&DAT_00394fa8);\n          DAT_00394fc0 = "";\n          DAT_00394fb8 = 4;\n          DAT_00394fbc = 0x7a;\n          DAT_00394fc4 = 0;\n          DAT_00394fc8 = "Z-OPTION";\n          DAT_00394fcc = 0;\n          DAT_00394fd0 = 0;\n          DAT_00394fd4 = 0;\n          __s = strchr(DAT_00394fa0,0x5f);\n          if (__s != (char *)0x0) {\n            do {\n              *__s = '-';\n              __s = strchr(__s,0x5f);\n            } while (__s != (char *)0x0);\n            if ((DAT_00394fc4 != 0) && (DAT_003951f0 != '\0')) {\n                    \n              FUN_000df670();\n            }\n          }\n          FUN_001e5500(&DAT_00394f90);\n          __cxa_atexit(FUN_000e8e10,&DAT_00394fa0,&PTR_LOOP_0038f2e4);\n        }" ({ "{") (expression_statement "DAT_00394fa0 = &DAT_00394fa8;" (assignment_expression "DAT_00394fa0 = &DAT_00394fa8" (identifier "DAT_00394fa0") (= "=") (pointer_expression "&DAT_00394fa8" (& "&") (identifier "DAT_00394fa8"))) (; ";")) (expression_statement "FUN_00050e40(&DAT_00394fa0,"","",0,&DAT_00394fa8);" (call_expression "FUN_00050e40(&DAT_00394fa0,"","",0,&DAT_00394fa8)" (identifier "FUN_00050e40") (argument_list "(&DAT_00394fa0,"","",0,&DAT_00394fa8)" (( "(") (pointer_expression "&DAT_00394fa0" (& "&") (identifier "DAT_00394fa0")) (, ",") (string_literal """" (" """) (" """)) (, ",") (string_literal """" (" """) (" """)) (, ",") (number_literal "0") (, ",") (pointer_expression "&DAT_00394fa8" (& "&") (identifier "DAT_00394fa8")) () ")"))) (; ";")) (expression_statement "DAT_00394fc0 = "";" (assignment_expression "DAT_00394fc0 = """ (identifier "DAT_00394fc0") (= "=") (string_literal """" (" """) (" """))) (; ";")) (expression_statement "DAT_00394fb8 = 4;" (assignment_expression "DAT_00394fb8 = 4" (identifier "DAT_00394fb8") (= "=") (number_literal "4")) (; ";")) (expression_statement "DAT_00394fbc = 0x7a;" (assignment_expression "DAT_00394fbc = 0x7a" (identifier "DAT_00394fbc") (= "=") (number_literal "0x7a")) (; ";")) (expression_statement "DAT_00394fc4 = 0;" (assignment_expression "DAT_00394fc4 = 0" (identifier "DAT_00394fc4") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00394fc8 = "Z-OPTION";" (assignment_expression "DAT_00394fc8 = "Z-OPTION"" (identifier "DAT_00394fc8") (= "=") (string_literal ""Z-OPTION"" (" """) (string_content "Z-OPTION") (" """))) (; ";")) (expression_statement "DAT_00394fcc = 0;" (assignment_expression "DAT_00394fcc = 0" (identifier "DAT_00394fcc") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00394fd0 = 0;" (assignment_expression "DAT_00394fd0 = 0" (identifier "DAT_00394fd0") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00394fd4 = 0;" (assignment_expression "DAT_00394fd4 = 0" (identifier "DAT_00394fd4") (= "=") (number_literal "0")) (; ";")) (expression_statement "__s = strchr(DAT_00394fa0,0x5f);" (assignment_expression "__s = strchr(DAT_00394fa0,0x5f)" (identifier "__s") (= "=") (call_expression "strchr(DAT_00394fa0,0x5f)" (identifier "strchr") (argument_list "(DAT_00394fa0,0x5f)" (( "(") (identifier "DAT_00394fa0") (, ",") (number_literal "0x5f") () ")")))) (; ";")) (if_statement "if (__s != (char *)0x0) {\n            do {\n              *__s = '-';\n              __s = strchr(__s,0x5f);\n            } while (__s != (char *)0x0);\n            if ((DAT_00394fc4 != 0) && (DAT_003951f0 != '\0')) {\n                    \n              FUN_000df670();\n            }\n          }" (if "if") (parenthesized_expression "(__s != (char *)0x0)" (( "(") (binary_expression "__s != (char *)0x0" (identifier "__s") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            do {\n              *__s = '-';\n              __s = strchr(__s,0x5f);\n            } while (__s != (char *)0x0);\n            if ((DAT_00394fc4 != 0) && (DAT_003951f0 != '\0')) {\n                    \n              FUN_000df670();\n            }\n          }" ({ "{") (do_statement "do {\n              *__s = '-';\n              __s = strchr(__s,0x5f);\n            } while (__s != (char *)0x0);" (do "do") (compound_statement "{\n              *__s = '-';\n              __s = strchr(__s,0x5f);\n            }" ({ "{") (expression_statement "*__s = '-';" (assignment_expression "*__s = '-'" (pointer_expression "*__s" (* "*") (identifier "__s")) (= "=") (char_literal "'-'" (' "'") (character "-") (' "'"))) (; ";")) (expression_statement "__s = strchr(__s,0x5f);" (assignment_expression "__s = strchr(__s,0x5f)" (identifier "__s") (= "=") (call_expression "strchr(__s,0x5f)" (identifier "strchr") (argument_list "(__s,0x5f)" (( "(") (identifier "__s") (, ",") (number_literal "0x5f") () ")")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(__s != (char *)0x0)" (( "(") (binary_expression "__s != (char *)0x0" (identifier "__s") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (if_statement "if ((DAT_00394fc4 != 0) && (DAT_003951f0 != '\0')) {\n                    \n              FUN_000df670();\n            }" (if "if") (parenthesized_expression "((DAT_00394fc4 != 0) && (DAT_003951f0 != '\0'))" (( "(") (binary_expression "(DAT_00394fc4 != 0) && (DAT_003951f0 != '\0')" (parenthesized_expression "(DAT_00394fc4 != 0)" (( "(") (binary_expression "DAT_00394fc4 != 0" (identifier "DAT_00394fc4") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(DAT_003951f0 != '\0')" (( "(") (binary_expression "DAT_003951f0 != '\0'" (identifier "DAT_003951f0") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\n                    \n              FUN_000df670();\n            }" ({ "{") (expression_statement "FUN_000df670();" (call_expression "FUN_000df670()" (identifier "FUN_000df670") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "FUN_001e5500(&DAT_00394f90);" (call_expression "FUN_001e5500(&DAT_00394f90)" (identifier "FUN_001e5500") (argument_list "(&DAT_00394f90)" (( "(") (pointer_expression "&DAT_00394f90" (& "&") (identifier "DAT_00394f90")) () ")"))) (; ";")) (expression_statement "__cxa_atexit(FUN_000e8e10,&DAT_00394fa0,&PTR_LOOP_0038f2e4);" (call_expression "__cxa_atexit(FUN_000e8e10,&DAT_00394fa0,&PTR_LOOP_0038f2e4)" (identifier "__cxa_atexit") (argument_list "(FUN_000e8e10,&DAT_00394fa0,&PTR_LOOP_0038f2e4)" (( "(") (identifier "FUN_000e8e10") (, ",") (pointer_expression "&DAT_00394fa0" (& "&") (identifier "DAT_00394fa0")) (, ",") (pointer_expression "&PTR_LOOP_0038f2e4" (& "&") (identifier "PTR_LOOP_0038f2e4")) () ")"))) (; ";")) (} "}"))) (expression_statement "cVar3 = pcVar7[iVar6];" (assignment_expression "cVar3 = pcVar7[iVar6]" (identifier "cVar3") (= "=") (subscript_expression "pcVar7[iVar6]" (identifier "pcVar7") ([ "[") (identifier "iVar6") (] "]"))) (; ";")) (if_statement "if (cVar3 == 'z') {\n          pbVar10 = (byte *)(pcVar7 + iVar6 + 1);\n          puVar8 = &DAT_00394fa0;\n          local_34 = (byte *)DAT_00394fc8;\n          if ((byte *)DAT_00394fc8 == (byte *)0x0) goto LAB_000e6e4d;\nLAB_000e6d8c:\n          ppuVar1 = (undefined **)((int)local_28 + 1);\n          local_34 = pbVar10;\n          pbVar5 = pbVar10;\n          if (*pbVar10 != 0) goto LAB_000e6da4;\n          if (*(char *)(puVar8 + 0xb) != '\0') {\n            local_34 = (byte *)puVar8[8];\n            pbVar5 = (byte *)puVar8[8];\n            goto LAB_000e6da4;\n          }\n          if ((int)ppuVar1 < param_2) {\n            local_34 = *(byte **)(param_3 + (int)ppuVar1 * 4);\n            ppuVar1 = (undefined **)((int)local_28 + 2);\n            pbVar5 = local_34;\n            goto LAB_000e6da4;\n          }\nLAB_000e704d:\n          local_28 = ppuVar1;\n          pcVar7 = "missing argument";\n          goto LAB_000e6e04;\n        }" (if "if") (parenthesized_expression "(cVar3 == 'z')" (( "(") (binary_expression "cVar3 == 'z'" (identifier "cVar3") (== "==") (char_literal "'z'" (' "'") (character "z") (' "'"))) () ")")) (compound_statement "{\n          pbVar10 = (byte *)(pcVar7 + iVar6 + 1);\n          puVar8 = &DAT_00394fa0;\n          local_34 = (byte *)DAT_00394fc8;\n          if ((byte *)DAT_00394fc8 == (byte *)0x0) goto LAB_000e6e4d;\nLAB_000e6d8c:\n          ppuVar1 = (undefined **)((int)local_28 + 1);\n          local_34 = pbVar10;\n          pbVar5 = pbVar10;\n          if (*pbVar10 != 0) goto LAB_000e6da4;\n          if (*(char *)(puVar8 + 0xb) != '\0') {\n            local_34 = (byte *)puVar8[8];\n            pbVar5 = (byte *)puVar8[8];\n            goto LAB_000e6da4;\n          }\n          if ((int)ppuVar1 < param_2) {\n            local_34 = *(byte **)(param_3 + (int)ppuVar1 * 4);\n            ppuVar1 = (undefined **)((int)local_28 + 2);\n            pbVar5 = local_34;\n            goto LAB_000e6da4;\n          }\nLAB_000e704d:\n          local_28 = ppuVar1;\n          pcVar7 = "missing argument";\n          goto LAB_000e6e04;\n        }" ({ "{") (expression_statement "pbVar10 = (byte *)(pcVar7 + iVar6 + 1);" (assignment_expression "pbVar10 = (byte *)(pcVar7 + iVar6 + 1)" (identifier "pbVar10") (= "=") (cast_expression "(byte *)(pcVar7 + iVar6 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar7 + iVar6 + 1)" (( "(") (binary_expression "pcVar7 + iVar6 + 1" (binary_expression "pcVar7 + iVar6" (identifier "pcVar7") (+ "+") (identifier "iVar6")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "puVar8 = &DAT_00394fa0;" (assignment_expression "puVar8 = &DAT_00394fa0" (identifier "puVar8") (= "=") (pointer_expression "&DAT_00394fa0" (& "&") (identifier "DAT_00394fa0"))) (; ";")) (expression_statement "local_34 = (byte *)DAT_00394fc8;" (assignment_expression "local_34 = (byte *)DAT_00394fc8" (identifier "local_34") (= "=") (cast_expression "(byte *)DAT_00394fc8" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "DAT_00394fc8"))) (; ";")) (if_statement "if ((byte *)DAT_00394fc8 == (byte *)0x0) goto LAB_000e6e4d;" (if "if") (parenthesized_expression "((byte *)DAT_00394fc8 == (byte *)0x0)" (( "(") (binary_expression "(byte *)DAT_00394fc8 == (byte *)0x0" (cast_expression "(byte *)DAT_00394fc8" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "DAT_00394fc8")) (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_000e6e4d;" (goto "goto") (statement_identifier "LAB_000e6e4d") (; ";"))) (labeled_statement "LAB_000e6d8c:\n          ppuVar1 = (undefined **)((int)local_28 + 1);" (statement_identifier "LAB_000e6d8c") (: ":") (expression_statement "ppuVar1 = (undefined **)((int)local_28 + 1);" (assignment_expression "ppuVar1 = (undefined **)((int)local_28 + 1)" (identifier "ppuVar1") (= "=") (cast_expression "(undefined **)((int)local_28 + 1)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)local_28 + 1)" (( "(") (binary_expression "(int)local_28 + 1" (cast_expression "(int)local_28" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_28")) (+ "+") (number_literal "1")) () ")")))) (; ";"))) (expression_statement "local_34 = pbVar10;" (assignment_expression "local_34 = pbVar10" (identifier "local_34") (= "=") (identifier "pbVar10")) (; ";")) (expression_statement "pbVar5 = pbVar10;" (assignment_expression "pbVar5 = pbVar10" (identifier "pbVar5") (= "=") (identifier "pbVar10")) (; ";")) (if_statement "if (*pbVar10 != 0) goto LAB_000e6da4;" (if "if") (parenthesized_expression "(*pbVar10 != 0)" (( "(") (binary_expression "*pbVar10 != 0" (pointer_expression "*pbVar10" (* "*") (identifier "pbVar10")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_000e6da4;" (goto "goto") (statement_identifier "LAB_000e6da4") (; ";"))) (if_statement "if (*(char *)(puVar8 + 0xb) != '\0') {\n            local_34 = (byte *)puVar8[8];\n            pbVar5 = (byte *)puVar8[8];\n            goto LAB_000e6da4;\n          }" (if "if") (parenthesized_expression "(*(char *)(puVar8 + 0xb) != '\0')" (( "(") (binary_expression "*(char *)(puVar8 + 0xb) != '\0'" (pointer_expression "*(char *)(puVar8 + 0xb)" (* "*") (cast_expression "(char *)(puVar8 + 0xb)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + 0xb)" (( "(") (binary_expression "puVar8 + 0xb" (identifier "puVar8") (+ "+") (number_literal "0xb")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n            local_34 = (byte *)puVar8[8];\n            pbVar5 = (byte *)puVar8[8];\n            goto LAB_000e6da4;\n          }" ({ "{") (expression_statement "local_34 = (byte *)puVar8[8];" (assignment_expression "local_34 = (byte *)puVar8[8]" (identifier "local_34") (= "=") (cast_expression "(byte *)puVar8[8]" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar8[8]" (identifier "puVar8") ([ "[") (number_literal "8") (] "]")))) (; ";")) (expression_statement "pbVar5 = (byte *)puVar8[8];" (assignment_expression "pbVar5 = (byte *)puVar8[8]" (identifier "pbVar5") (= "=") (cast_expression "(byte *)puVar8[8]" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar8[8]" (identifier "puVar8") ([ "[") (number_literal "8") (] "]")))) (; ";")) (goto_statement "goto LAB_000e6da4;" (goto "goto") (statement_identifier "LAB_000e6da4") (; ";")) (} "}"))) (if_statement "if ((int)ppuVar1 < param_2) {\n            local_34 = *(byte **)(param_3 + (int)ppuVar1 * 4);\n            ppuVar1 = (undefined **)((int)local_28 + 2);\n            pbVar5 = local_34;\n            goto LAB_000e6da4;\n          }" (if "if") (parenthesized_expression "((int)ppuVar1 < param_2)" (( "(") (binary_expression "(int)ppuVar1 < param_2" (cast_expression "(int)ppuVar1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppuVar1")) (< "<") (identifier "param_2")) () ")")) (compound_statement "{\n            local_34 = *(byte **)(param_3 + (int)ppuVar1 * 4);\n            ppuVar1 = (undefined **)((int)local_28 + 2);\n            pbVar5 = local_34;\n            goto LAB_000e6da4;\n          }" ({ "{") (expression_statement "local_34 = *(byte **)(param_3 + (int)ppuVar1 * 4);" (assignment_expression "local_34 = *(byte **)(param_3 + (int)ppuVar1 * 4)" (identifier "local_34") (= "=") (pointer_expression "*(byte **)(param_3 + (int)ppuVar1 * 4)" (* "*") (cast_expression "(byte **)(param_3 + (int)ppuVar1 * 4)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_3 + (int)ppuVar1 * 4)" (( "(") (binary_expression "param_3 + (int)ppuVar1 * 4" (identifier "param_3") (+ "+") (binary_expression "(int)ppuVar1 * 4" (cast_expression "(int)ppuVar1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppuVar1")) (* "*") (number_literal "4"))) () ")"))))) (; ";")) (expression_statement "ppuVar1 = (undefined **)((int)local_28 + 2);" (assignment_expression "ppuVar1 = (undefined **)((int)local_28 + 2)" (identifier "ppuVar1") (= "=") (cast_expression "(undefined **)((int)local_28 + 2)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)local_28 + 2)" (( "(") (binary_expression "(int)local_28 + 2" (cast_expression "(int)local_28" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_28")) (+ "+") (number_literal "2")) () ")")))) (; ";")) (expression_statement "pbVar5 = local_34;" (assignment_expression "pbVar5 = local_34" (identifier "pbVar5") (= "=") (identifier "local_34")) (; ";")) (goto_statement "goto LAB_000e6da4;" (goto "goto") (statement_identifier "LAB_000e6da4") (; ";")) (} "}"))) (labeled_statement "LAB_000e704d:\n          local_28 = ppuVar1;" (statement_identifier "LAB_000e704d") (: ":") (expression_statement "local_28 = ppuVar1;" (assignment_expression "local_28 = ppuVar1" (identifier "local_28") (= "=") (identifier "ppuVar1")) (; ";"))) (expression_statement "pcVar7 = "missing argument";" (assignment_expression "pcVar7 = "missing argument"" (identifier "pcVar7") (= "=") (string_literal ""missing argument"" (" """) (string_content "missing argument") (" """))) (; ";")) (goto_statement "goto LAB_000e6e04;" (goto "goto") (statement_identifier "LAB_000e6e04") (; ";")) (} "}"))) (if_statement "if ((0x7e < (int)cVar3 - 1U) ||\n           (puVar8 = *(undefined4 **)(&DAT_00394fe0 + cVar3 * 4), puVar8 == (undefined4 *)0x0))\n        break;" (if "if") (parenthesized_expression "((0x7e < (int)cVar3 - 1U) ||\n           (puVar8 = *(undefined4 **)(&DAT_00394fe0 + cVar3 * 4), puVar8 == (undefined4 *)0x0))" (( "(") (binary_expression "(0x7e < (int)cVar3 - 1U) ||\n           (puVar8 = *(undefined4 **)(&DAT_00394fe0 + cVar3 * 4), puVar8 == (undefined4 *)0x0)" (parenthesized_expression "(0x7e < (int)cVar3 - 1U)" (( "(") (binary_expression "0x7e < (int)cVar3 - 1U" (number_literal "0x7e") (< "<") (binary_expression "(int)cVar3 - 1U" (cast_expression "(int)cVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "cVar3")) (- "-") (number_literal "1U"))) () ")")) (|| "||") (parenthesized_expression "(puVar8 = *(undefined4 **)(&DAT_00394fe0 + cVar3 * 4), puVar8 == (undefined4 *)0x0)" (( "(") (comma_expression "puVar8 = *(undefined4 **)(&DAT_00394fe0 + cVar3 * 4), puVar8 == (undefined4 *)0x0" (assignment_expression "puVar8 = *(undefined4 **)(&DAT_00394fe0 + cVar3 * 4)" (identifier "puVar8") (= "=") (pointer_expression "*(undefined4 **)(&DAT_00394fe0 + cVar3 * 4)" (* "*") (cast_expression "(undefined4 **)(&DAT_00394fe0 + cVar3 * 4)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(&DAT_00394fe0 + cVar3 * 4)" (( "(") (binary_expression "&DAT_00394fe0 + cVar3 * 4" (pointer_expression "&DAT_00394fe0" (& "&") (identifier "DAT_00394fe0")) (+ "+") (binary_expression "cVar3 * 4" (identifier "cVar3") (* "*") (number_literal "4"))) () ")"))))) (, ",") (binary_expression "puVar8 == (undefined4 *)0x0" (identifier "puVar8") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "local_34 = (byte *)puVar8[10];" (assignment_expression "local_34 = (byte *)puVar8[10]" (identifier "local_34") (= "=") (cast_expression "(byte *)puVar8[10]" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar8[10]" (identifier "puVar8") ([ "[") (number_literal "10") (] "]")))) (; ";")) (expression_statement "pbVar10 = (byte *)(pcVar7 + iVar6 + 1);" (assignment_expression "pbVar10 = (byte *)(pcVar7 + iVar6 + 1)" (identifier "pbVar10") (= "=") (cast_expression "(byte *)(pcVar7 + iVar6 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar7 + iVar6 + 1)" (( "(") (binary_expression "pcVar7 + iVar6 + 1" (binary_expression "pcVar7 + iVar6" (identifier "pcVar7") (+ "+") (identifier "iVar6")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (if_statement "if (local_34 != (byte *)0x0) goto LAB_000e6d8c;" (if "if") (parenthesized_expression "(local_34 != (byte *)0x0)" (( "(") (binary_expression "local_34 != (byte *)0x0" (identifier "local_34") (!= "!=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_000e6d8c;" (goto "goto") (statement_identifier "LAB_000e6d8c") (; ";"))) (labeled_statement "LAB_000e6e4d:\n        local_24 = (byte *)0x0;" (statement_identifier "LAB_000e6e4d") (: ":") (expression_statement "local_24 = (byte *)0x0;" (assignment_expression "local_24 = (byte *)0x0" (identifier "local_24") (= "=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";"))) (expression_statement "ppuVar1 = local_28;" (assignment_expression "ppuVar1 = local_28" (identifier "ppuVar1") (= "=") (identifier "local_28")) (; ";")) (expression_statement "pbVar5 = local_24;" (assignment_expression "pbVar5 = local_24" (identifier "pbVar5") (= "=") (identifier "local_24")) (; ";")) (if_statement "if (*pbVar10 == 0) {\n          local_28 = (undefined **)((int)local_28 + 1);\n          bVar12 = (char **)puVar8 == &DAT_00394fa0;\n          if (bVar12) {\nLAB_000e6e78:\n            bVar11 = puVar8 < &DAT_00394fa0;\n            local_20[0] = 0;\n            iVar9 = 6;\n            pbVar10 = (byte *)0x28e8f9;\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar11 = *local_34 < *pbVar10;\n              bVar12 = *local_34 == *pbVar10;\n              local_34 = local_34 + (uint)bVar13 * -2 + 1;\n              pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1;\n            } while (bVar12);\n            if ((!bVar11 && !bVar12) == bVar11) {\n              local_24 = (byte *)0x28e8f9;\n            }\n            puVar8 = (undefined4 *)FUN_000df460(&local_24,local_20);\n            if (puVar8 == (undefined4 *)0x0) {\n              gettext("unknown -z option");\n              FUN_000dcd10();\n              ppuVar1 = local_28;\n              goto LAB_000e704d;\n            }\n            local_34 = local_24;\n          }\n        }\n        else {\nLAB_000e6da4:\n          local_24 = pbVar5;\n          local_28 = ppuVar1;\n          bVar12 = (char **)puVar8 == &DAT_00394fa0;\n          if (bVar12) goto LAB_000e6e78;\n        }" (if "if") (parenthesized_expression "(*pbVar10 == 0)" (( "(") (binary_expression "*pbVar10 == 0" (pointer_expression "*pbVar10" (* "*") (identifier "pbVar10")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          local_28 = (undefined **)((int)local_28 + 1);\n          bVar12 = (char **)puVar8 == &DAT_00394fa0;\n          if (bVar12) {\nLAB_000e6e78:\n            bVar11 = puVar8 < &DAT_00394fa0;\n            local_20[0] = 0;\n            iVar9 = 6;\n            pbVar10 = (byte *)0x28e8f9;\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar11 = *local_34 < *pbVar10;\n              bVar12 = *local_34 == *pbVar10;\n              local_34 = local_34 + (uint)bVar13 * -2 + 1;\n              pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1;\n            } while (bVar12);\n            if ((!bVar11 && !bVar12) == bVar11) {\n              local_24 = (byte *)0x28e8f9;\n            }\n            puVar8 = (undefined4 *)FUN_000df460(&local_24,local_20);\n            if (puVar8 == (undefined4 *)0x0) {\n              gettext("unknown -z option");\n              FUN_000dcd10();\n              ppuVar1 = local_28;\n              goto LAB_000e704d;\n            }\n            local_34 = local_24;\n          }\n        }" ({ "{") (expression_statement "local_28 = (undefined **)((int)local_28 + 1);" (assignment_expression "local_28 = (undefined **)((int)local_28 + 1)" (identifier "local_28") (= "=") (cast_expression "(undefined **)((int)local_28 + 1)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)local_28 + 1)" (( "(") (binary_expression "(int)local_28 + 1" (cast_expression "(int)local_28" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_28")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "bVar12 = (char **)puVar8 == &DAT_00394fa0;" (assignment_expression "bVar12 = (char **)puVar8 == &DAT_00394fa0" (identifier "bVar12") (= "=") (binary_expression "(char **)puVar8 == &DAT_00394fa0" (cast_expression "(char **)puVar8" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "puVar8")) (== "==") (pointer_expression "&DAT_00394fa0" (& "&") (identifier "DAT_00394fa0")))) (; ";")) (if_statement "if (bVar12) {\nLAB_000e6e78:\n            bVar11 = puVar8 < &DAT_00394fa0;\n            local_20[0] = 0;\n            iVar9 = 6;\n            pbVar10 = (byte *)0x28e8f9;\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar11 = *local_34 < *pbVar10;\n              bVar12 = *local_34 == *pbVar10;\n              local_34 = local_34 + (uint)bVar13 * -2 + 1;\n              pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1;\n            } while (bVar12);\n            if ((!bVar11 && !bVar12) == bVar11) {\n              local_24 = (byte *)0x28e8f9;\n            }\n            puVar8 = (undefined4 *)FUN_000df460(&local_24,local_20);\n            if (puVar8 == (undefined4 *)0x0) {\n              gettext("unknown -z option");\n              FUN_000dcd10();\n              ppuVar1 = local_28;\n              goto LAB_000e704d;\n            }\n            local_34 = local_24;\n          }" (if "if") (parenthesized_expression "(bVar12)" (( "(") (identifier "bVar12") () ")")) (compound_statement "{\nLAB_000e6e78:\n            bVar11 = puVar8 < &DAT_00394fa0;\n            local_20[0] = 0;\n            iVar9 = 6;\n            pbVar10 = (byte *)0x28e8f9;\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar11 = *local_34 < *pbVar10;\n              bVar12 = *local_34 == *pbVar10;\n              local_34 = local_34 + (uint)bVar13 * -2 + 1;\n              pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1;\n            } while (bVar12);\n            if ((!bVar11 && !bVar12) == bVar11) {\n              local_24 = (byte *)0x28e8f9;\n            }\n            puVar8 = (undefined4 *)FUN_000df460(&local_24,local_20);\n            if (puVar8 == (undefined4 *)0x0) {\n              gettext("unknown -z option");\n              FUN_000dcd10();\n              ppuVar1 = local_28;\n              goto LAB_000e704d;\n            }\n            local_34 = local_24;\n          }" ({ "{") (labeled_statement "LAB_000e6e78:\n            bVar11 = puVar8 < &DAT_00394fa0;" (statement_identifier "LAB_000e6e78") (: ":") (expression_statement "bVar11 = puVar8 < &DAT_00394fa0;" (assignment_expression "bVar11 = puVar8 < &DAT_00394fa0" (identifier "bVar11") (= "=") (binary_expression "puVar8 < &DAT_00394fa0" (identifier "puVar8") (< "<") (pointer_expression "&DAT_00394fa0" (& "&") (identifier "DAT_00394fa0")))) (; ";"))) (expression_statement "local_20[0] = 0;" (assignment_expression "local_20[0] = 0" (subscript_expression "local_20[0]" (identifier "local_20") ([ "[") (number_literal "0") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar9 = 6;" (assignment_expression "iVar9 = 6" (identifier "iVar9") (= "=") (number_literal "6")) (; ";")) (expression_statement "pbVar10 = (byte *)0x28e8f9;" (assignment_expression "pbVar10 = (byte *)0x28e8f9" (identifier "pbVar10") (= "=") (cast_expression "(byte *)0x28e8f9" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x28e8f9"))) (; ";")) (do_statement "do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar11 = *local_34 < *pbVar10;\n              bVar12 = *local_34 == *pbVar10;\n              local_34 = local_34 + (uint)bVar13 * -2 + 1;\n              pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1;\n            } while (bVar12);" (do "do") (compound_statement "{\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar11 = *local_34 < *pbVar10;\n              bVar12 = *local_34 == *pbVar10;\n              local_34 = local_34 + (uint)bVar13 * -2 + 1;\n              pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1;\n            }" ({ "{") (if_statement "if (iVar9 == 0) break;" (if "if") (parenthesized_expression "(iVar9 == 0)" (( "(") (binary_expression "iVar9 == 0" (identifier "iVar9") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar9 = iVar9 + -1;" (assignment_expression "iVar9 = iVar9 + -1" (identifier "iVar9") (= "=") (binary_expression "iVar9 + -1" (identifier "iVar9") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar11 = *local_34 < *pbVar10;" (assignment_expression "bVar11 = *local_34 < *pbVar10" (identifier "bVar11") (= "=") (binary_expression "*local_34 < *pbVar10" (pointer_expression "*local_34" (* "*") (identifier "local_34")) (< "<") (pointer_expression "*pbVar10" (* "*") (identifier "pbVar10")))) (; ";")) (expression_statement "bVar12 = *local_34 == *pbVar10;" (assignment_expression "bVar12 = *local_34 == *pbVar10" (identifier "bVar12") (= "=") (binary_expression "*local_34 == *pbVar10" (pointer_expression "*local_34" (* "*") (identifier "local_34")) (== "==") (pointer_expression "*pbVar10" (* "*") (identifier "pbVar10")))) (; ";")) (expression_statement "local_34 = local_34 + (uint)bVar13 * -2 + 1;" (assignment_expression "local_34 = local_34 + (uint)bVar13 * -2 + 1" (identifier "local_34") (= "=") (binary_expression "local_34 + (uint)bVar13 * -2 + 1" (binary_expression "local_34 + (uint)bVar13 * -2" (identifier "local_34") (+ "+") (binary_expression "(uint)bVar13 * -2" (cast_expression "(uint)bVar13" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar13")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1;" (assignment_expression "pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1" (identifier "pbVar10") (= "=") (binary_expression "pbVar10 + (uint)bVar13 * -2 + 1" (binary_expression "pbVar10 + (uint)bVar13 * -2" (identifier "pbVar10") (+ "+") (binary_expression "(uint)bVar13 * -2" (cast_expression "(uint)bVar13" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar13")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar12)" (( "(") (identifier "bVar12") () ")")) (; ";")) (if_statement "if ((!bVar11 && !bVar12) == bVar11) {\n              local_24 = (byte *)0x28e8f9;\n            }" (if "if") (parenthesized_expression "((!bVar11 && !bVar12) == bVar11)" (( "(") (binary_expression "(!bVar11 && !bVar12) == bVar11" (parenthesized_expression "(!bVar11 && !bVar12)" (( "(") (binary_expression "!bVar11 && !bVar12" (unary_expression "!bVar11" (! "!") (identifier "bVar11")) (&& "&&") (unary_expression "!bVar12" (! "!") (identifier "bVar12"))) () ")")) (== "==") (identifier "bVar11")) () ")")) (compound_statement "{\n              local_24 = (byte *)0x28e8f9;\n            }" ({ "{") (expression_statement "local_24 = (byte *)0x28e8f9;" (assignment_expression "local_24 = (byte *)0x28e8f9" (identifier "local_24") (= "=") (cast_expression "(byte *)0x28e8f9" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x28e8f9"))) (; ";")) (} "}"))) (expression_statement "puVar8 = (undefined4 *)FUN_000df460(&local_24,local_20);" (assignment_expression "puVar8 = (undefined4 *)FUN_000df460(&local_24,local_20)" (identifier "puVar8") (= "=") (cast_expression "(undefined4 *)FUN_000df460(&local_24,local_20)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_000df460(&local_24,local_20)" (identifier "FUN_000df460") (argument_list "(&local_24,local_20)" (( "(") (pointer_expression "&local_24" (& "&") (identifier "local_24")) (, ",") (identifier "local_20") () ")"))))) (; ";")) (if_statement "if (puVar8 == (undefined4 *)0x0) {\n              gettext("unknown -z option");\n              FUN_000dcd10();\n              ppuVar1 = local_28;\n              goto LAB_000e704d;\n            }" (if "if") (parenthesized_expression "(puVar8 == (undefined4 *)0x0)" (( "(") (binary_expression "puVar8 == (undefined4 *)0x0" (identifier "puVar8") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              gettext("unknown -z option");\n              FUN_000dcd10();\n              ppuVar1 = local_28;\n              goto LAB_000e704d;\n            }" ({ "{") (expression_statement "gettext("unknown -z option");" (call_expression "gettext("unknown -z option")" (identifier "gettext") (argument_list "("unknown -z option")" (( "(") (string_literal ""unknown -z option"" (" """) (string_content "unknown -z option") (" """)) () ")"))) (; ";")) (expression_statement "FUN_000dcd10();" (call_expression "FUN_000dcd10()" (identifier "FUN_000dcd10") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "ppuVar1 = local_28;" (assignment_expression "ppuVar1 = local_28" (identifier "ppuVar1") (= "=") (identifier "local_28")) (; ";")) (goto_statement "goto LAB_000e704d;" (goto "goto") (statement_identifier "LAB_000e704d") (; ";")) (} "}"))) (expression_statement "local_34 = local_24;" (assignment_expression "local_34 = local_24" (identifier "local_34") (= "=") (identifier "local_24")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\nLAB_000e6da4:\n          local_24 = pbVar5;\n          local_28 = ppuVar1;\n          bVar12 = (char **)puVar8 == &DAT_00394fa0;\n          if (bVar12) goto LAB_000e6e78;\n        }" (else "else") (compound_statement "{\nLAB_000e6da4:\n          local_24 = pbVar5;\n          local_28 = ppuVar1;\n          bVar12 = (char **)puVar8 == &DAT_00394fa0;\n          if (bVar12) goto LAB_000e6e78;\n        }" ({ "{") (labeled_statement "LAB_000e6da4:\n          local_24 = pbVar5;" (statement_identifier "LAB_000e6da4") (: ":") (expression_statement "local_24 = pbVar5;" (assignment_expression "local_24 = pbVar5" (identifier "local_24") (= "=") (identifier "pbVar5")) (; ";"))) (expression_statement "local_28 = ppuVar1;" (assignment_expression "local_28 = ppuVar1" (identifier "local_28") (= "=") (identifier "ppuVar1")) (; ";")) (expression_statement "bVar12 = (char **)puVar8 == &DAT_00394fa0;" (assignment_expression "bVar12 = (char **)puVar8 == &DAT_00394fa0" (identifier "bVar12") (= "=") (binary_expression "(char **)puVar8 == &DAT_00394fa0" (cast_expression "(char **)puVar8" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "puVar8")) (== "==") (pointer_expression "&DAT_00394fa0" (& "&") (identifier "DAT_00394fa0")))) (; ";")) (if_statement "if (bVar12) goto LAB_000e6e78;" (if "if") (parenthesized_expression "(bVar12)" (( "(") (identifier "bVar12") () ")")) (goto_statement "goto LAB_000e6e78;" (goto "goto") (statement_identifier "LAB_000e6e78") (; ";"))) (} "}")))) (expression_statement "iVar6 = iVar6 + 1;" (assignment_expression "iVar6 = iVar6 + 1" (identifier "iVar6") (= "=") (binary_expression "iVar6 + 1" (identifier "iVar6") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "(*(code *)**(undefined4 **)puVar8[0xc])\n                  ((undefined4 *)puVar8[0xc],*puVar2,local_34,param_1,param_1 + 4);" (call_expression "(*(code *)**(undefined4 **)puVar8[0xc])\n                  ((undefined4 *)puVar8[0xc],*puVar2,local_34,param_1,param_1 + 4)" (parenthesized_expression "(*(code *)**(undefined4 **)puVar8[0xc])" (( "(") (pointer_expression "*(code *)**(undefined4 **)puVar8[0xc]" (* "*") (cast_expression "(code *)**(undefined4 **)puVar8[0xc]" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "**(undefined4 **)puVar8[0xc]" (* "*") (pointer_expression "*(undefined4 **)puVar8[0xc]" (* "*") (cast_expression "(undefined4 **)puVar8[0xc]" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (subscript_expression "puVar8[0xc]" (identifier "puVar8") ([ "[") (number_literal "0xc") (] "]"))))))) () ")")) (argument_list "((undefined4 *)puVar8[0xc],*puVar2,local_34,param_1,param_1 + 4)" (( "(") (cast_expression "(undefined4 *)puVar8[0xc]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar8[0xc]" (identifier "puVar8") ([ "[") (number_literal "0xc") (] "]"))) (, ",") (pointer_expression "*puVar2" (* "*") (identifier "puVar2")) (, ",") (identifier "local_34") (, ",") (identifier "param_1") (, ",") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")"))) (; ";")) (if_statement "if (local_28 != ppuVar4) {\n          return local_28;\n        }" (if "if") (parenthesized_expression "(local_28 != ppuVar4)" (( "(") (binary_expression "local_28 != ppuVar4" (identifier "local_28") (!= "!=") (identifier "ppuVar4")) () ")")) (compound_statement "{\n          return local_28;\n        }" ({ "{") (return_statement "return local_28;" (return "return") (identifier "local_28") (; ";")) (} "}"))) (expression_statement "pcVar7 = *(char **)(param_3 + (int)ppuVar4 * 4);" (assignment_expression "pcVar7 = *(char **)(param_3 + (int)ppuVar4 * 4)" (identifier "pcVar7") (= "=") (pointer_expression "*(char **)(param_3 + (int)ppuVar4 * 4)" (* "*") (cast_expression "(char **)(param_3 + (int)ppuVar4 * 4)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_3 + (int)ppuVar4 * 4)" (( "(") (binary_expression "param_3 + (int)ppuVar4 * 4" (identifier "param_3") (+ "+") (binary_expression "(int)ppuVar4 * 4" (cast_expression "(int)ppuVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppuVar4")) (* "*") (number_literal "4"))) () ")"))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(*pcVar7 == '-')" (( "(") (binary_expression "*pcVar7 == '-'" (pointer_expression "*pcVar7" (* "*") (identifier "pcVar7")) (== "==") (char_literal "'-'" (' "'") (character "-") (' "'"))) () ")")) (; ";")) (} "}"))) (expression_statement "pcVar7 = "unknown option";" (assignment_expression "pcVar7 = "unknown option"" (identifier "pcVar7") (= "=") (string_literal ""unknown option"" (" """) (string_content "unknown option") (" """))) (; ";")) (labeled_statement "LAB_000e6e04:\n    local_30 = &__DT_PLTGOT;" (statement_identifier "LAB_000e6e04") (: ":") (expression_statement "local_30 = &__DT_PLTGOT;" (assignment_expression "local_30 = &__DT_PLTGOT" (identifier "local_30") (= "=") (pointer_expression "&__DT_PLTGOT" (& "&") (identifier "__DT_PLTGOT"))) (; ";"))) (expression_statement "gettext(pcVar7);" (call_expression "gettext(pcVar7)" (identifier "gettext") (argument_list "(pcVar7)" (( "(") (identifier "pcVar7") () ")"))) (; ";")) (expression_statement "FUN_000dcd10();" (call_expression "FUN_000dcd10()" (identifier "FUN_000dcd10") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "param_5 = extraout_EDX;" (assignment_expression "param_5 = extraout_EDX" (identifier "param_5") (= "=") (identifier "extraout_EDX")) (; ";")) (expression_statement "param_4 = local_30;" (assignment_expression "param_4 = local_30" (identifier "param_4") (= "=") (identifier "local_30")) (; ";")) (} "}"))) (expression_statement "*param_5 = '\x01';" (assignment_expression "*param_5 = '\x01'" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'"))) (; ";")) (return_statement "return (undefined **)((int)param_4 + 1);" (return "return") (cast_expression "(undefined **)((int)param_4 + 1)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)param_4 + 1)" (( "(") (binary_expression "(int)param_4 + 1" (cast_expression "(int)param_4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_4")) (+ "+") (number_literal "1")) () ")"))) (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */
/* WARNING: Enum "DT": Some values do not have unique names */
/* DWARF original prototype: int process_one_option(Command_line * this, int argc, char * * argv,
   int i, bool * no_more_options) */

int __thiscall
gold::type_1::function_1
          (type_1 *this,int argc,char **var_1,int var_2,bool *no_more_options)

{
  char **ppcVar1;
  type_2 bVar2;
  int iVar3;
  int iVar4;
  type_3 *var_5;
  char *pcVar6;
  char **ppcVar7;
  int iVar8;
  bool *extraout_EDX;
  type_2 *pbVar9;
  type_2 *opt;
  int iVar10;
  type_2 *pbVar11;
  bool bVar12;
  bool bVar13;
  type_2 bVar14;
  type_2 *local_34;
  type_4 **local_30;
  int var_6;
  char *arg;
  int dummy_i;
  
  bVar14 = 0;
  ppcVar1 = var_1 + var_2;
  pcVar6 = *ppcVar1;
  if ((*pcVar6 != '-') || (*no_more_options != false)) {
                    /* WARNING: Subroutine does not return */
    var_3("../../gold/options.cc",0x5f0,"process_one_option");
  }
  if ((pcVar6[1] != '-') || (pcVar6[2] != '\0')) {
    var_6 = var_2;
    arg = (char *)0x0;
    var_5 = anon_unknown.dwarf_a6a7ee::var_4(argc,var_1,false,&arg,&var_6);
    iVar3 = var_6;
    if (var_5 != (type_3 *)0x0) {
      (**var_5->reader->_vptr_Struct_var)(var_5->reader,*ppcVar1,arg,this,&this->options_);
      return var_6;
    }
    if ((var_2 == var_6) && (opt = (type_2 *)var_1[var_6], *opt == 0x2d)) {
      iVar10 = 1;
      do {
        if (((anonymous_namespace)::parse_short_option(int,char_const**,int,char_const**,int*)::
             dash_z == '\0') &&
           (iVar8 = __cxa_guard_acquire(&(anonymous_namespace)::
                                         parse_short_option(int,char_const**,int,char_const**,int*)
                                         ::dash_z), iVar8 != 0)) {
          var_5 = (type_3 *)&DAT_00394fa8;
          (anonymous_namespace)::parse_short_option(int,char_const**,int,char_const**,int*)::dash_z
               = &DAT_00394fa8;
                    /* try { // try from 000e6f0f to 000e6f13 has its CatchHandler @ 000e7065 */
          std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::
          _M_construct<char_const*>
                    ((basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)
                     &(anonymous_namespace)::
                      parse_short_option(int,char_const**,int,char_const**,int*)::dash_z,"","",0);
          DAT_00394fc0 = "";
          DAT_00394fb8 = 4;
          DAT_00394fbc = 0x7a;
          DAT_00394fc4 = 0;
          DAT_00394fc8 = "Z-OPTION";
          DAT_00394fcc = 0;
          DAT_00394fd0 = 0;
          DAT_00394fd4 = 0;
          pcVar6 = strchr((anonymous_namespace)::
                          parse_short_option(int,char_const**,int,char_const**,int*)::dash_z,0x5f);
          if (pcVar6 != (char *)0x0) {
            do {
              *pcVar6 = '-';
              pcVar6 = strchr(pcVar6,0x5f);
            } while (pcVar6 != (char *)0x0);
            if ((DAT_00394fc4 != 0) && (gold::options::ready_to_register != false)) {
                    /* try { // try from 000e6fa2 to 000e6fa6 has its CatchHandler @ 000e705e */
              gold::options::One_option::register_option(var_5);
            }
          }
          __cxa_guard_release(&(anonymous_namespace)::
                               parse_short_option(int,char_const**,int,char_const**,int*)::dash_z);
          __cxa_atexit(gold::options::type_3::~type_3,
                       &(anonymous_namespace)::
                        parse_short_option(int,char_const**,int,char_const**,int*)::dash_z,
                       &__dso_handle);
        }
        bVar2 = opt[iVar10];
        if (bVar2 == 0x7a) {
          pbVar9 = opt + iVar10 + 1;
          ppcVar7 = &(anonymous_namespace)::
                     parse_short_option(int,char_const**,int,char_const**,int*)::dash_z;
          local_34 = (type_2 *)DAT_00394fc8;
          if (DAT_00394fc8 == (char *)0x0) goto LAB_000e6e4d;
LAB_000e6d8c:
          iVar8 = var_6 + 1;
          local_34 = pbVar9;
          iVar4 = iVar8;
          pbVar11 = pbVar9;
          if (*pbVar9 != 0) goto LAB_000e6da4;
          if (((type_3 *)ppcVar7)->optional_arg != false) {
            local_34 = (type_2 *)((type_3 *)ppcVar7)->default_value;
            pbVar11 = (type_2 *)((type_3 *)ppcVar7)->default_value;
            goto LAB_000e6da4;
          }
          if (iVar8 < argc) {
            local_34 = (type_2 *)var_1[iVar8];
            iVar4 = var_6 + 2;
            pbVar11 = (type_2 *)var_1[iVar8];
            goto LAB_000e6da4;
          }
LAB_000e704d:
          var_6 = iVar8;
          pcVar6 = "missing argument";
          goto LAB_000e6e04;
        }
        if ((0x7e < (int)(char)bVar2 - 1U) ||
           (ppcVar7 = (char **)gold::options::short_options[(char)bVar2],
           (type_3 *)ppcVar7 == (type_3 *)0x0)) break;
        local_34 = (type_2 *)((type_3 *)ppcVar7)->helparg;
        pbVar9 = opt + iVar10 + 1;
        if (local_34 != (type_2 *)0x0) goto LAB_000e6d8c;
LAB_000e6e4d:
        arg = (char *)0x0;
        iVar4 = var_6;
        pbVar11 = (type_2 *)arg;
        if (*pbVar9 == 0) {
          var_6 = var_6 + 1;
          bVar13 = ppcVar7 ==
                   &(anonymous_namespace)::
                    parse_short_option(int,char_const**,int,char_const**,int*)::dash_z;
          if (bVar13) {
LAB_000e6e78:
            bVar12 = ppcVar7 < &(anonymous_namespace)::
                                parse_short_option(int,char_const**,int,char_const**,int*)::dash_z;
            dummy_i = 0;
            iVar8 = 6;
            pbVar9 = local_34;
            pbVar11 = (type_2 *)0x28e8f9;
            do {
              opt = pbVar9;
              if (iVar8 == 0) break;
              iVar8 = iVar8 + -1;
              opt = pbVar9 + (uint)bVar14 * -2 + 1;
              bVar12 = *pbVar9 < *pbVar11;
              bVar13 = *pbVar9 == *pbVar11;
              pbVar9 = opt;
              pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;
            } while (bVar13);
            if ((!bVar12 && !bVar13) == bVar12) {
              arg = (char *)(type_2 *)0x28e8f9;
            }
            ppcVar7 = (char **)anon_unknown.dwarf_a6a7ee::var_4
                                         (1,&arg,true,&arg,&dummy_i);
            if ((type_3 *)ppcVar7 == (type_3 *)0x0) {
              pcVar6 = (char *)gettext("unknown -z option");
              anon_unknown.dwarf_a6a7ee::usage(pcVar6,(char *)local_34);
              iVar8 = var_6;
              goto LAB_000e704d;
            }
            local_34 = (type_2 *)arg;
          }
        }
        else {
LAB_000e6da4:
          arg = (char *)pbVar11;
          var_6 = iVar4;
          bVar13 = ppcVar7 ==
                   &(anonymous_namespace)::
                    parse_short_option(int,char_const**,int,char_const**,int*)::dash_z;
          if (bVar13) goto LAB_000e6e78;
        }
        iVar10 = iVar10 + 1;
        (**((type_3 *)ppcVar7)->reader->_vptr_Struct_var)
                  (((type_3 *)ppcVar7)->reader,*ppcVar1,local_34,this,&this->options_);
        if (var_6 != iVar3) {
          return var_6;
        }
        opt = (type_2 *)var_1[iVar3];
      } while (*opt == 0x2d);
    }
    opt = (type_2 *)*ppcVar1;
    pcVar6 = "unknown option";
LAB_000e6e04:
    local_30 = &_GLOBAL_OFFSET_TABLE_;
    pcVar6 = (char *)gettext(pcVar6);
    anon_unknown.dwarf_a6a7ee::usage(pcVar6,(char *)opt);
    no_more_options = extraout_EDX;
    var_2 = (int)local_30;
  }
  *no_more_options = true;
  return var_2 + 1;
}


(translation_unit (function_definition type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))) (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))))))) body: (compound_statement (declaration type: (type_identifier) declarator: (pointer_declarator 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: (pointer_declarator declarator: (identifier)))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) 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: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) 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: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (char_literal (character)))) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (char_literal (escape_sequence)))))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (number_literal) (string_literal (string_content)) (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (character)))) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (escape_sequence)))))) consequence: (compound_statement (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)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (pointer_expression argument: (identifier)))))) (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: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (pointer_expression argument: (identifier)) (identifier) (identifier) (binary_expression left: (identifier) right: (number_literal))))) (return_statement (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))))) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (char_literal (character))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier))))) right: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (string_literal) (string_literal) (number_literal) (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (string_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content)))) (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: (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 (do_statement body: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (char_literal (character)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier)) (pointer_expression argument: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (character)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_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: (number_literal))))) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content)))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (number_literal) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (identifier) right: (number_literal))))))) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (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: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_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: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (identifier)) right: (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (identifier)) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (pointer_expression argument: (identifier)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (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 (assignment_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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))))) alternative: (else_clause (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (identifier)) right: (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (identifier)) consequence: (goto_statement label: (statement_identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (subscript_expression argument: (identifier) index: (number_literal)))))))) arguments: (argument_list (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))) (pointer_expression argument: (identifier)) (identifier) (identifier) (binary_expression left: (identifier) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (return_statement (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))))))) condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (char_literal (character))))))) (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (char_literal (escape_sequence)))) (return_statement (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))))))

/* WARNING: Function: __i686.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */

undefined ** MASKED(int param_1,int param_2,int param_3,undefined **param_4,char *param_5)

{
  undefined **ppuVar1;
  undefined4 *puVar2;
  char cVar3;
  undefined **ppuVar4;
  byte *pbVar5;
  int iVar6;
  char *pcVar7;
  undefined4 *puVar8;
  char *__s;
  int iVar9;
  char *extraout_EDX;
  byte *pbVar10;
  bool bVar11;
  bool bVar12;
  byte bVar13;
  byte *local_34;
  undefined **local_30;
  undefined **local_28;
  byte *local_24;
  undefined4 local_20 [4];
  
  bVar13 = 0;
  puVar2 = (undefined4 *)(param_3 + (int)param_4 * 4);
  pcVar7 = (char *)*puVar2;
  if ((*pcVar7 != '-') || (*param_5 != '\0')) {
                    /* WARNING: Subroutine does not return */
    FUN_00069d00("../../gold/options.cc",0x5f0,"process_one_option",pcVar7);
  }
  if ((pcVar7[1] != '-') || (pcVar7[2] != '\0')) {
    local_28 = param_4;
    local_24 = (byte *)0x0;
    iVar6 = FUN_000df460(&local_24,&local_28);
    ppuVar4 = local_28;
    if (iVar6 != 0) {
      (**(code **)**(undefined4 **)(iVar6 + 0x30))
                (*(undefined4 **)(iVar6 + 0x30),*puVar2,local_24,param_1,param_1 + 4);
      return local_28;
    }
    if ((param_4 == local_28) && (pcVar7 = *(char **)(param_3 + (int)local_28 * 4), *pcVar7 == '-'))
    {
      iVar6 = 1;
      do {
        if ((DAT_00394f90 == '\0') && (iVar9 = FUN_001e5390(&DAT_00394f90), iVar9 != 0)) {
          DAT_00394fa0 = &DAT_00394fa8;
                    /* try { // try from 000e6f0f to 000e6f13 has its CatchHandler @ 000e7065 */
          FUN_00050e40(&DAT_00394fa0,"","",0,&DAT_00394fa8);
          DAT_00394fc0 = "";
          DAT_00394fb8 = 4;
          DAT_00394fbc = 0x7a;
          DAT_00394fc4 = 0;
          DAT_00394fc8 = "Z-OPTION";
          DAT_00394fcc = 0;
          DAT_00394fd0 = 0;
          DAT_00394fd4 = 0;
          __s = strchr(DAT_00394fa0,0x5f);
          if (__s != (char *)0x0) {
            do {
              *__s = '-';
              __s = strchr(__s,0x5f);
            } while (__s != (char *)0x0);
            if ((DAT_00394fc4 != 0) && (DAT_003951f0 != '\0')) {
                    /* try { // try from 000e6fa2 to 000e6fa6 has its CatchHandler @ 000e705e */
              FUN_000df670();
            }
          }
          FUN_001e5500(&DAT_00394f90);
          __cxa_atexit(FUN_000e8e10,&DAT_00394fa0,&PTR_LOOP_0038f2e4);
        }
        cVar3 = pcVar7[iVar6];
        if (cVar3 == 'z') {
          pbVar10 = (byte *)(pcVar7 + iVar6 + 1);
          puVar8 = &DAT_00394fa0;
          local_34 = (byte *)DAT_00394fc8;
          if ((byte *)DAT_00394fc8 == (byte *)0x0) goto LAB_000e6e4d;
LAB_000e6d8c:
          ppuVar1 = (undefined **)((int)local_28 + 1);
          local_34 = pbVar10;
          pbVar5 = pbVar10;
          if (*pbVar10 != 0) goto LAB_000e6da4;
          if (*(char *)(puVar8 + 0xb) != '\0') {
            local_34 = (byte *)puVar8[8];
            pbVar5 = (byte *)puVar8[8];
            goto LAB_000e6da4;
          }
          if ((int)ppuVar1 < param_2) {
            local_34 = *(byte **)(param_3 + (int)ppuVar1 * 4);
            ppuVar1 = (undefined **)((int)local_28 + 2);
            pbVar5 = local_34;
            goto LAB_000e6da4;
          }
LAB_000e704d:
          local_28 = ppuVar1;
          pcVar7 = "missing argument";
          goto LAB_000e6e04;
        }
        if ((0x7e < (int)cVar3 - 1U) ||
           (puVar8 = *(undefined4 **)(&DAT_00394fe0 + cVar3 * 4), puVar8 == (undefined4 *)0x0))
        break;
        local_34 = (byte *)puVar8[10];
        pbVar10 = (byte *)(pcVar7 + iVar6 + 1);
        if (local_34 != (byte *)0x0) goto LAB_000e6d8c;
LAB_000e6e4d:
        local_24 = (byte *)0x0;
        ppuVar1 = local_28;
        pbVar5 = local_24;
        if (*pbVar10 == 0) {
          local_28 = (undefined **)((int)local_28 + 1);
          bVar12 = (char **)puVar8 == &DAT_00394fa0;
          if (bVar12) {
LAB_000e6e78:
            bVar11 = puVar8 < &DAT_00394fa0;
            local_20[0] = 0;
            iVar9 = 6;
            pbVar10 = (byte *)0x28e8f9;
            do {
              if (iVar9 == 0) break;
              iVar9 = iVar9 + -1;
              bVar11 = *local_34 < *pbVar10;
              bVar12 = *local_34 == *pbVar10;
              local_34 = local_34 + (uint)bVar13 * -2 + 1;
              pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1;
            } while (bVar12);
            if ((!bVar11 && !bVar12) == bVar11) {
              local_24 = (byte *)0x28e8f9;
            }
            puVar8 = (undefined4 *)FUN_000df460(&local_24,local_20);
            if (puVar8 == (undefined4 *)0x0) {
              gettext("unknown -z option");
              FUN_000dcd10();
              ppuVar1 = local_28;
              goto LAB_000e704d;
            }
            local_34 = local_24;
          }
        }
        else {
LAB_000e6da4:
          local_24 = pbVar5;
          local_28 = ppuVar1;
          bVar12 = (char **)puVar8 == &DAT_00394fa0;
          if (bVar12) goto LAB_000e6e78;
        }
        iVar6 = iVar6 + 1;
        (*(code *)**(undefined4 **)puVar8[0xc])
                  ((undefined4 *)puVar8[0xc],*puVar2,local_34,param_1,param_1 + 4);
        if (local_28 != ppuVar4) {
          return local_28;
        }
        pcVar7 = *(char **)(param_3 + (int)ppuVar4 * 4);
      } while (*pcVar7 == '-');
    }
    pcVar7 = "unknown option";
LAB_000e6e04:
    local_30 = &__DT_PLTGOT;
    gettext(pcVar7);
    FUN_000dcd10();
    param_5 = extraout_EDX;
    param_4 = local_30;
  }
  *param_5 = '\x01';
  return (undefined **)((int)param_4 + 1);
}

