
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
/* 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)

{
  uint uVar1;
  char **ppcVar2;
  byte *opt;
  char cVar3;
  byte bVar4;
  uint uVar5;
  int iVar6;
  int iVar7;
  One_option *pOVar8;
  char *pcVar9;
  char **ppcVar10;
  char **ppcVar11;
  long lVar12;
  int extraout_EDX;
  char **opt_00;
  byte *pbVar13;
  byte *pbVar14;
  long unaff_R13;
  long unaff_R15;
  bool bVar15;
  bool bVar16;
  byte bVar17;
  int new_i;
  int dummy_i;
  char *arg;
  
  bVar17 = 0;
  ppcVar2 = argv + i;
  pcVar9 = *ppcVar2;
  if ((*pcVar9 != '-') || (*no_more_options != false)) {
                    /* WARNING: Subroutine does not return */
    do_gold_unreachable("../../gold/options.cc",0x5f0,"process_one_option");
  }
  if ((pcVar9[1] == '-') && (pcVar9[2] == '\0')) {
    *no_more_options = true;
    return i + 1;
  }
  arg = (char *)0x0;
  new_i = i;
  pOVar8 = anon_unknown.dwarf_9fbd7f::parse_long_option(argc,argv,false,&arg,&new_i);
  iVar7 = new_i;
  if (pOVar8 != (One_option *)0x0) {
    (**pOVar8->reader->_vptr_Struct_var)(pOVar8->reader,*ppcVar2,arg,this,&this->options_);
    return new_i;
  }
  if (i != new_i) goto LAB_001bac94;
  unaff_R15 = (long)new_i;
  unaff_R13 = 1;
  opt_00 = (char **)argv[unaff_R15];
  if (*(char *)opt_00 != '-') goto LAB_001bac94;
LAB_001babe8:
  if (((anonymous_namespace)::parse_short_option(int,char_const**,int,char_const**,int*)::dash_z ==
       '\0') &&
     (iVar6 = __cxa_guard_acquire(&(anonymous_namespace)::
                                   parse_short_option(int,char_const**,int,char_const**,int*)::
                                   dash_z), iVar6 != 0)) {
    (anonymous_namespace)::parse_short_option(int,char_const**,int,char_const**,int*)::dash_z =
         &DAT_003c7cb0;
                    /* try { // try from 001bacef to 001bacf3 has its CatchHandler @ 001baefc */
    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,"");
    _DAT_003c7cc0 = 4;
    DAT_003c7cc4 = 0x7a;
    _DAT_003c7cc8 = "";
    DAT_003c7cd0 = 0;
    _DAT_003c7cd8 = "Z-OPTION";
    DAT_003c7ce0 = 0;
    _DAT_003c7ce8 = 0;
    DAT_003c7cf0 = 0;
    pcVar9 = strchr((anonymous_namespace)::
                    parse_short_option(int,char_const**,int,char_const**,int*)::dash_z,0x5f);
    if (pcVar9 != (char *)0x0) {
      do {
        *pcVar9 = '-';
        pcVar9 = strchr(pcVar9,0x5f);
      } while (pcVar9 != (char *)0x0);
      if ((DAT_003c7cd0 != 0) && (gold::options::ready_to_register != false)) {
                    /* try { // try from 001bad8f to 001bad93 has its CatchHandler @ 001baef4 */
        gold::options::One_option::register_option
                  ((One_option *)
                   &(anonymous_namespace)::
                    parse_short_option(int,char_const**,int,char_const**,int*)::dash_z);
      }
    }
    __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);
  }
  cVar3 = *(char *)((long)opt_00 + unaff_R13);
  if (cVar3 == 'z') goto LAB_001bacb0;
  if (0x7e < (int)cVar3 - 1U) goto LAB_001bac94;
  ppcVar10 = (char **)gold::options::short_options[(int)cVar3];
  if ((One_option *)ppcVar10 == (One_option *)0x0) goto LAB_001bac94;
  do {
    unaff_R13 = unaff_R13 + 1;
    opt = (byte *)((long)opt_00 + unaff_R13);
    if (((One_option *)ppcVar10)->helparg == (char *)0x0) {
      arg = (char *)0x0;
      bVar4 = *opt;
      uVar5 = new_i;
      opt = (byte *)arg;
      if (bVar4 == 0) {
        uVar5 = new_i + 1;
      }
    }
    else {
      uVar1 = new_i + 1;
      ppcVar11 = (char **)(ulong)uVar1;
      uVar5 = uVar1;
      if (*opt == 0) {
        if (((One_option *)ppcVar10)->optional_arg == false) {
          if (argc <= (int)uVar1) goto LAB_001baedd;
          uVar5 = new_i + 2;
          opt = (byte *)argv[(int)uVar1];
        }
        else {
          opt = (byte *)((One_option *)ppcVar10)->default_value;
        }
      }
    }
    new_i = uVar5;
    arg = (char *)opt;
    if ((One_option *)ppcVar10 ==
        (One_option *)
        &(anonymous_namespace)::parse_short_option(int,char_const**,int,char_const**,int*)::dash_z)
    {
      bVar16 = ppcVar10 ==
               &(anonymous_namespace)::parse_short_option(int,char_const**,int,char_const**,int*)::
                dash_z;
      bVar15 = ppcVar10 <
               &(anonymous_namespace)::parse_short_option(int,char_const**,int,char_const**,int*)::
                dash_z;
      dummy_i = 0;
      lVar12 = 6;
      pbVar13 = opt;
      pbVar14 = (byte *)0x314883;
      do {
        if (lVar12 == 0) break;
        lVar12 = lVar12 + -1;
        bVar15 = *pbVar13 < *pbVar14;
        bVar16 = *pbVar13 == *pbVar14;
        pbVar13 = pbVar13 + (ulong)bVar17 * -2 + 1;
        pbVar14 = pbVar14 + (ulong)bVar17 * -2 + 1;
      } while (bVar16);
      if ((!bVar15 && !bVar16) == bVar15) {
        arg = "buildd";
      }
      ppcVar11 = &arg;
      ppcVar10 = (char **)anon_unknown.dwarf_9fbd7f::parse_long_option(1,&arg,true,&arg,&dummy_i);
      if ((One_option *)ppcVar10 == (One_option *)0x0) {
        pcVar9 = (char *)gettext("unknown -z option");
        anon_unknown.dwarf_9fbd7f::usage(pcVar9,(char *)opt);
        uVar1 = new_i;
LAB_001baedd:
        new_i = uVar1;
        pcVar9 = (char *)gettext("missing argument");
        anon_unknown.dwarf_9fbd7f::usage(pcVar9,(char *)opt_00);
                    /* catch() { ... } // from try @ 001bad8f with catch @ 001baef4 */
        iVar7 = process_one_option((int)pcVar9,opt_00,extraout_EDX,(bool *)ppcVar11);
        return iVar7;
      }
    }
    (**((One_option *)ppcVar10)->reader->_vptr_Struct_var)
              (((One_option *)ppcVar10)->reader,*ppcVar2,arg,this,&this->options_);
    if (new_i != iVar7) {
      return new_i;
    }
    opt_00 = (char **)argv[unaff_R15];
    if (*(char *)opt_00 == '-') goto LAB_001babe8;
LAB_001bac94:
    opt_00 = (char **)*ppcVar2;
    pcVar9 = (char *)gettext("unknown option");
    anon_unknown.dwarf_9fbd7f::usage(pcVar9,(char *)opt_00);
LAB_001bacb0:
    ppcVar10 = &(anonymous_namespace)::parse_short_option(int,char_const**,int,char_const**,int*)::
                dash_z;
  } while( true );
}



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

ulong FUN_001bab10(long param_1,int param_2,long param_3,uint param_4,char *param_5)

{
  uint uVar1;
  undefined8 *puVar2;
  byte *pbVar3;
  char cVar4;
  byte bVar5;
  uint uVar6;
  uint uVar7;
  int iVar8;
  long lVar9;
  undefined8 uVar10;
  undefined8 *puVar11;
  char *__s;
  ulong uVar12;
  char *pcVar13;
  byte *pbVar14;
  byte *pbVar15;
  long unaff_R13;
  long unaff_R15;
  bool bVar16;
  bool bVar17;
  byte bVar18;
  uint local_48 [2];
  byte *local_40 [2];
  
  bVar18 = 0;
  puVar2 = (undefined8 *)(param_3 + (long)(int)param_4 * 8);
  pcVar13 = (char *)*puVar2;
  if ((*pcVar13 != '-') || (*param_5 != '\0')) {
                    /* WARNING: Subroutine does not return */
    FUN_0016cdf0("../../gold/options.cc",0x5f0,"process_one_option");
  }
  if ((pcVar13[1] == '-') && (pcVar13[2] == '\0')) {
    *param_5 = '\x01';
    return (ulong)(param_4 + 1);
  }
  local_40[0] = (byte *)0x0;
  local_48[0] = param_4;
  lVar9 = FUN_001b2990(param_2,param_3,0,local_40,local_48);
  uVar6 = local_48[0];
  if (lVar9 != 0) {
    (**(code **)**(undefined8 **)(lVar9 + 0x48))
              (*(undefined8 **)(lVar9 + 0x48),*puVar2,local_40[0],param_1,param_1 + 8);
LAB_001baba8:
    return (ulong)local_48[0];
  }
  if (param_4 != local_48[0]) goto LAB_001bac94;
  unaff_R15 = (long)(int)local_48[0];
  unaff_R13 = 1;
  pcVar13 = *(char **)(param_3 + unaff_R15 * 8);
  if (*pcVar13 != '-') goto LAB_001bac94;
LAB_001babe8:
  if ((DAT_003c7c90 == '\0') && (iVar8 = FUN_002756c0(&DAT_003c7c90), iVar8 != 0)) {
    DAT_003c7ca0 = &DAT_003c7cb0;
                    /* try { // try from 001bacef to 001bacf3 has its CatchHandler @ 001baefc */
    FUN_0015cbe0(&DAT_003c7ca0,"");
    _DAT_003c7cc0 = 4;
    DAT_003c7cc4 = 0x7a;
    _DAT_003c7cc8 = "";
    DAT_003c7cd0 = 0;
    DAT_003c7cd8 = "Z-OPTION";
    DAT_003c7ce0 = 0;
    _DAT_003c7ce8 = 0;
    DAT_003c7cf0 = 0;
    __s = strchr(DAT_003c7ca0,0x5f);
    if (__s != (char *)0x0) {
      do {
        *__s = '-';
        __s = strchr(__s,0x5f);
      } while (__s != (char *)0x0);
      if ((DAT_003c7cd0 != 0) && (DAT_003c8128 != '\0')) {
                    /* try { // try from 001bad8f to 001bad93 has its CatchHandler @ 001baef4 */
        FUN_001b2b90(&DAT_003c7ca0);
      }
    }
    FUN_002757f0(&DAT_003c7c90);
    __cxa_atexit(FUN_001bc860,&DAT_003c7ca0,&PTR_LOOP_003be5a8);
  }
  cVar4 = pcVar13[unaff_R13];
  if (cVar4 == 'z') goto LAB_001bacb0;
  if (0x7e < (int)cVar4 - 1U) goto LAB_001bac94;
  puVar11 = *(undefined8 **)(&DAT_003c7d00 + (long)(int)cVar4 * 8);
  if (puVar11 == (undefined8 *)0x0) goto LAB_001bac94;
  do {
    unaff_R13 = unaff_R13 + 1;
    pbVar3 = (byte *)(pcVar13 + unaff_R13);
    if (puVar11[7] == 0) {
      local_40[0] = (byte *)0x0;
      bVar5 = *pbVar3;
      uVar7 = local_48[0];
      pbVar3 = local_40[0];
      if (bVar5 == 0) {
        uVar7 = local_48[0] + 1;
      }
    }
    else {
      uVar1 = local_48[0] + 1;
      uVar7 = uVar1;
      if (*pbVar3 == 0) {
        if (*(char *)(puVar11 + 8) == '\0') {
          if (param_2 <= (int)uVar1) goto LAB_001baedd;
          uVar7 = local_48[0] + 2;
          pbVar3 = *(byte **)(param_3 + (long)(int)uVar1 * 8);
        }
        else {
          pbVar3 = (byte *)puVar11[5];
        }
      }
    }
    local_48[0] = uVar7;
    local_40[0] = pbVar3;
    if ((char **)puVar11 == &DAT_003c7ca0) {
      bVar17 = (char **)puVar11 == &DAT_003c7ca0;
      bVar16 = puVar11 < &DAT_003c7ca0;
      local_48[1] = 0;
      lVar9 = 6;
      pbVar14 = pbVar3;
      pbVar15 = (byte *)0x314883;
      do {
        if (lVar9 == 0) break;
        lVar9 = lVar9 + -1;
        bVar16 = *pbVar14 < *pbVar15;
        bVar17 = *pbVar14 == *pbVar15;
        pbVar14 = pbVar14 + (ulong)bVar18 * -2 + 1;
        pbVar15 = pbVar15 + (ulong)bVar18 * -2 + 1;
      } while (bVar17);
      if ((!bVar16 && !bVar17) == bVar16) {
        local_40[0] = (byte *)0x314883;
      }
      puVar11 = (undefined8 *)FUN_001b2990(1,local_40,1,local_40,local_48 + 1);
      if (puVar11 == (undefined8 *)0x0) {
        uVar10 = gettext("unknown -z option");
        FUN_001b06b0(uVar10,pbVar3);
        uVar1 = local_48[0];
LAB_001baedd:
        local_48[0] = uVar1;
        uVar10 = gettext("missing argument");
        FUN_001b06b0(uVar10,pcVar13);
                    /* catch() { ... } // from try @ 001bad8f with catch @ 001baef4 */
        uVar12 = FUN_0014340a();
        return uVar12;
      }
    }
    (*(code *)**(undefined8 **)puVar11[9])
              ((undefined8 *)puVar11[9],*puVar2,local_40[0],param_1,param_1 + 8);
    if (local_48[0] != uVar6) goto LAB_001baba8;
    pcVar13 = *(char **)(param_3 + unaff_R15 * 8);
    if (*pcVar13 == '-') goto LAB_001babe8;
LAB_001bac94:
    pcVar13 = (char *)*puVar2;
    uVar10 = gettext("unknown option");
    FUN_001b06b0(uVar10,pcVar13);
LAB_001bacb0:
    puVar11 = &DAT_003c7ca0;
  } while( true );
}


PUSH R15
MOVSXD RAX,ECX
PUSH R14
PUSH R13
PUSH R12
LEA R12,[RDX + RAX*0x8]
PUSH RBP
PUSH RBX
MOV RBX,RAX
SUB RSP,0x38
MOV RAX,qword ptr [R12]
MOV dword ptr [RSP + 0xc],ESI
CMP byte ptr [RAX],0x2d
JNZ 0x001baea6
CMP byte ptr [R8],0x0
JNZ 0x001baea6
CMP byte ptr [RAX + 0x1],0x2d
MOV RBP,RDI
MOV R14,RDX
JNZ 0x001bab59
CMP byte ptr [RAX + 0x2],0x0
JZ 0x001bae90
LEA RAX,[RSP + 0x28]
MOV EDI,dword ptr [RSP + 0xc]
XOR EDX,EDX
LEA R8,[RSP + 0x20]
MOV RCX,RAX
MOV RSI,R14
MOV dword ptr [RSP + 0x20],EBX
MOV qword ptr [RSP + 0x28],0x0
MOV qword ptr [RSP + 0x10],RAX
CALL 0x001b2990
TEST RAX,RAX
JZ 0x001babc0
MOV RDI,qword ptr [RAX + 0x48]
LEA R8,[RBP + 0x8]
MOV RCX,RBP
MOV RDX,qword ptr [RSP + 0x28]
MOV RSI,qword ptr [R12]
MOV RAX,qword ptr [RDI]
CALL qword ptr [RAX]
MOV EAX,dword ptr [RSP + 0x20]
ADD RSP,0x38
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
MOV EAX,dword ptr [RSP + 0x20]
MOV dword ptr [RSP],EAX
CMP EBX,EAX
JNZ 0x001bac94
MOVSXD R15,EAX
MOV R13D,0x1
MOV RBX,qword ptr [R14 + R15*0x8]
CMP byte ptr [RBX],0x2d
JNZ 0x001bac94
NOP dword ptr [RAX]
MOVZX EAX,byte ptr [0x003c7c90]
TEST AL,AL
JZ 0x001bacc0
MOVSX EAX,byte ptr [RBX + R13*0x1]
CMP AL,0x7a
JZ 0x001bacb0
LEA EDX,[RAX + -0x1]
CMP EDX,0x7e
JA 0x001bac94
CDQE
LEA RDX,[0x3c7d00]
MOV RAX,qword ptr [RDX + RAX*0x8]
TEST RAX,RAX
JZ 0x001bac94
MOV R9,qword ptr [RAX + 0x38]
ADD R13,0x1
LEA RDX,[RBX + R13*0x1]
TEST R9,R9
JZ 0x001bae50
MOV ESI,dword ptr [RSP + 0x20]
LEA ECX,[RSI + 0x1]
MOV dword ptr [RSP + 0x20],ECX
CMP byte ptr [RDX],0x0
JZ 0x001badc0
MOV qword ptr [RSP + 0x28],RDX
MOV R9,RDX
LEA RSI,[0x3c7ca0]
CMP RAX,RSI
JZ 0x001bade8
MOV RDI,qword ptr [RAX + 0x48]
LEA R8,[RBP + 0x8]
MOV RCX,RBP
MOV RDX,R9
MOV RSI,qword ptr [R12]
MOV RAX,qword ptr [RDI]
CALL qword ptr [RAX]
MOV EAX,dword ptr [RSP + 0x20]
CMP EAX,dword ptr [RSP]
JNZ 0x001baba8
MOV RBX,qword ptr [R14 + R15*0x8]
CMP byte ptr [RBX],0x2d
JZ 0x001babe8
MOV RBX,qword ptr [R12]
LEA RDI,[0x314b80]
CALL 0x0013e320
MOV RDI,RAX
MOV RSI,RBX
CALL 0x001b06b0
NOP
LEA RAX,[0x3c7ca0]
JMP 0x001bac22
LEA RDI,[0x3c7c90]
CALL 0x002756c0
TEST EAX,EAX
JZ 0x001babf7
LEA RAX,[0x3c7ca0]
LEA RDX,[0x323456]
LEA RCX,[RAX + 0x10]
MOV RSI,RDX
MOV RDI,RAX
MOV qword ptr [RAX],RCX
CALL 0x0015cbe0
LEA RAX,[0x3c7ca0]
LEA RDX,[0x323456]
MOV ESI,0x5f
MOV dword ptr [0x003c7cc0],0x4
MOV RDI,qword ptr [RAX]
LEA RCX,[0x314b65]
MOV byte ptr [0x003c7cc4],0x7a
MOV qword ptr [0x003c7cc8],RDX
MOV qword ptr [0x003c7cd0],0x0
MOV qword ptr [0x003c7cd8],RCX
MOV byte ptr [0x003c7ce0],0x0
MOV qword ptr [0x003c7ce8],0x0
MOV byte ptr [0x003c7cf0],0x0
CALL 0x0013e6e0
TEST RAX,RAX
JZ 0x001bad94
NOP
MOV byte ptr [RAX],0x2d
MOV ESI,0x5f
MOV RDI,RAX
CALL 0x0013e6e0
TEST RAX,RAX
JNZ 0x001bad60
CMP qword ptr [0x003c7cd0],0x0
JZ 0x001bad94
CMP byte ptr [0x003c8128],0x0
JZ 0x001bad94
LEA RDI,[0x3c7ca0]
CALL 0x001b2b90
LEA RDI,[0x3c7c90]
CALL 0x002757f0
LEA RDX,[0x3be5a8]
LEA RSI,[0x3c7ca0]
LEA RDI,[0x1bc860]
CALL 0x0013e370
JMP 0x001babf7
CMP byte ptr [RAX + 0x40],0x0
JZ 0x001bae70
MOV R9,qword ptr [RAX + 0x28]
LEA RSI,[0x3c7ca0]
MOV qword ptr [RSP + 0x28],R9
CMP RAX,RSI
JNZ 0x001bac63
NOP dword ptr [RAX + RAX*0x1]
MOV dword ptr [RSP + 0x24],0x0
LEA RDX,[0x314883]
MOV ECX,0x6
MOV RSI,R9
MOV RDI,RDX
CMPSB.REPE RDI,RSI
SETA AL
SBB AL,0x0
TEST AL,AL
JNZ 0x001bae12
MOV qword ptr [RSP + 0x28],RDX
MOV RSI,qword ptr [RSP + 0x10]
LEA R8,[RSP + 0x24]
MOV EDX,0x1
MOV EDI,0x1
MOV qword ptr [RSP + 0x18],R9
MOV RCX,RSI
CALL 0x001b2990
MOV R9,qword ptr [RSP + 0x18]
TEST RAX,RAX
JZ 0x001baebe
MOV R9,qword ptr [RSP + 0x28]
JMP 0x001bac63
MOV qword ptr [RSP + 0x28],0x0
CMP byte ptr [RDX],0x0
JNZ 0x001bac53
ADD dword ptr [RSP + 0x20],0x1
JMP 0x001bac53
CMP dword ptr [RSP + 0xc],ECX
JLE 0x001baedd
MOVSXD RCX,ECX
ADD ESI,0x2
MOV R9,qword ptr [R14 + RCX*0x8]
MOV dword ptr [RSP + 0x20],ESI
MOV qword ptr [RSP + 0x28],R9
JMP 0x001bac53
MOV byte ptr [R8],0x1
ADD RSP,0x38
LEA EAX,[RBX + 0x1]
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
LEA RDX,[0x317a40]
MOV ESI,0x5f0
LEA RDI,[0x3136bf]
CALL 0x0016cdf0
LEA RDI,[0x314b6e]
MOV qword ptr [RSP],R9
CALL 0x0013e320
MOV R9,qword ptr [RSP]
MOV RDI,RAX
MOV RSI,R9
CALL 0x001b06b0
LEA RDI,[0x313768]
CALL 0x0013e320
MOV RSI,RBX
MOV RDI,RAX
CALL 0x001b06b0
MOV RBX,RAX
JMP 0x0014340a
(translation_unit "/* WARNING: Type propagation algorithm not settling */\n/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */\n\nulong FUN_001bab10(long param_1,int param_2,long param_3,uint param_4,char *param_5)\n\n{\n  uint uVar1;\n  undefined8 *puVar2;\n  byte *pbVar3;\n  char cVar4;\n  byte bVar5;\n  uint uVar6;\n  uint uVar7;\n  int iVar8;\n  long lVar9;\n  undefined8 uVar10;\n  undefined8 *puVar11;\n  char *__s;\n  ulong uVar12;\n  char *pcVar13;\n  byte *pbVar14;\n  byte *pbVar15;\n  long unaff_R13;\n  long unaff_R15;\n  bool bVar16;\n  bool bVar17;\n  byte bVar18;\n  uint local_48 [2];\n  byte *local_40 [2];\n  \n  bVar18 = 0;\n  puVar2 = (undefined8 *)(param_3 + (long)(int)param_4 * 8);\n  pcVar13 = (char *)*puVar2;\n  if ((*pcVar13 != '-') || (*param_5 != '\0')) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0016cdf0("../../gold/options.cc",0x5f0,"process_one_option");\n  }\n  if ((pcVar13[1] == '-') && (pcVar13[2] == '\0')) {\n    *param_5 = '\x01';\n    return (ulong)(param_4 + 1);\n  }\n  local_40[0] = (byte *)0x0;\n  local_48[0] = param_4;\n  lVar9 = FUN_001b2990(param_2,param_3,0,local_40,local_48);\n  uVar6 = local_48[0];\n  if (lVar9 != 0) {\n    (**(code **)**(undefined8 **)(lVar9 + 0x48))\n              (*(undefined8 **)(lVar9 + 0x48),*puVar2,local_40[0],param_1,param_1 + 8);\nLAB_001baba8:\n    return (ulong)local_48[0];\n  }\n  if (param_4 != local_48[0]) goto LAB_001bac94;\n  unaff_R15 = (long)(int)local_48[0];\n  unaff_R13 = 1;\n  pcVar13 = *(char **)(param_3 + unaff_R15 * 8);\n  if (*pcVar13 != '-') goto LAB_001bac94;\nLAB_001babe8:\n  if ((DAT_003c7c90 == '\0') && (iVar8 = FUN_002756c0(&DAT_003c7c90), iVar8 != 0)) {\n    DAT_003c7ca0 = &DAT_003c7cb0;\n                    /* try { // try from 001bacef to 001bacf3 has its CatchHandler @ 001baefc */\n    FUN_0015cbe0(&DAT_003c7ca0,"");\n    _DAT_003c7cc0 = 4;\n    DAT_003c7cc4 = 0x7a;\n    _DAT_003c7cc8 = "";\n    DAT_003c7cd0 = 0;\n    DAT_003c7cd8 = "Z-OPTION";\n    DAT_003c7ce0 = 0;\n    _DAT_003c7ce8 = 0;\n    DAT_003c7cf0 = 0;\n    __s = strchr(DAT_003c7ca0,0x5f);\n    if (__s != (char *)0x0) {\n      do {\n        *__s = '-';\n        __s = strchr(__s,0x5f);\n      } while (__s != (char *)0x0);\n      if ((DAT_003c7cd0 != 0) && (DAT_003c8128 != '\0')) {\n                    /* try { // try from 001bad8f to 001bad93 has its CatchHandler @ 001baef4 */\n        FUN_001b2b90(&DAT_003c7ca0);\n      }\n    }\n    FUN_002757f0(&DAT_003c7c90);\n    __cxa_atexit(FUN_001bc860,&DAT_003c7ca0,&PTR_LOOP_003be5a8);\n  }\n  cVar4 = pcVar13[unaff_R13];\n  if (cVar4 == 'z') goto LAB_001bacb0;\n  if (0x7e < (int)cVar4 - 1U) goto LAB_001bac94;\n  puVar11 = *(undefined8 **)(&DAT_003c7d00 + (long)(int)cVar4 * 8);\n  if (puVar11 == (undefined8 *)0x0) goto LAB_001bac94;\n  do {\n    unaff_R13 = unaff_R13 + 1;\n    pbVar3 = (byte *)(pcVar13 + unaff_R13);\n    if (puVar11[7] == 0) {\n      local_40[0] = (byte *)0x0;\n      bVar5 = *pbVar3;\n      uVar7 = local_48[0];\n      pbVar3 = local_40[0];\n      if (bVar5 == 0) {\n        uVar7 = local_48[0] + 1;\n      }\n    }\n    else {\n      uVar1 = local_48[0] + 1;\n      uVar7 = uVar1;\n      if (*pbVar3 == 0) {\n        if (*(char *)(puVar11 + 8) == '\0') {\n          if (param_2 <= (int)uVar1) goto LAB_001baedd;\n          uVar7 = local_48[0] + 2;\n          pbVar3 = *(byte **)(param_3 + (long)(int)uVar1 * 8);\n        }\n        else {\n          pbVar3 = (byte *)puVar11[5];\n        }\n      }\n    }\n    local_48[0] = uVar7;\n    local_40[0] = pbVar3;\n    if ((char **)puVar11 == &DAT_003c7ca0) {\n      bVar17 = (char **)puVar11 == &DAT_003c7ca0;\n      bVar16 = puVar11 < &DAT_003c7ca0;\n      local_48[1] = 0;\n      lVar9 = 6;\n      pbVar14 = pbVar3;\n      pbVar15 = (byte *)0x314883;\n      do {\n        if (lVar9 == 0) break;\n        lVar9 = lVar9 + -1;\n        bVar16 = *pbVar14 < *pbVar15;\n        bVar17 = *pbVar14 == *pbVar15;\n        pbVar14 = pbVar14 + (ulong)bVar18 * -2 + 1;\n        pbVar15 = pbVar15 + (ulong)bVar18 * -2 + 1;\n      } while (bVar17);\n      if ((!bVar16 && !bVar17) == bVar16) {\n        local_40[0] = (byte *)0x314883;\n      }\n      puVar11 = (undefined8 *)FUN_001b2990(1,local_40,1,local_40,local_48 + 1);\n      if (puVar11 == (undefined8 *)0x0) {\n        uVar10 = gettext("unknown -z option");\n        FUN_001b06b0(uVar10,pbVar3);\n        uVar1 = local_48[0];\nLAB_001baedd:\n        local_48[0] = uVar1;\n        uVar10 = gettext("missing argument");\n        FUN_001b06b0(uVar10,pcVar13);\n                    /* catch() { ... } // from try @ 001bad8f with catch @ 001baef4 */\n        uVar12 = FUN_0014340a();\n        return uVar12;\n      }\n    }\n    (*(code *)**(undefined8 **)puVar11[9])\n              ((undefined8 *)puVar11[9],*puVar2,local_40[0],param_1,param_1 + 8);\n    if (local_48[0] != uVar6) goto LAB_001baba8;\n    pcVar13 = *(char **)(param_3 + unaff_R15 * 8);\n    if (*pcVar13 == '-') goto LAB_001babe8;\nLAB_001bac94:\n    pcVar13 = (char *)*puVar2;\n    uVar10 = gettext("unknown option");\n    FUN_001b06b0(uVar10,pcVar13);\nLAB_001bacb0:\n    puVar11 = &DAT_003c7ca0;\n  } while( true );\n}\n\n" comment comment (function_definition "ulong FUN_001bab10(long param_1,int param_2,long param_3,uint param_4,char *param_5)\n\n{\n  uint uVar1;\n  undefined8 *puVar2;\n  byte *pbVar3;\n  char cVar4;\n  byte bVar5;\n  uint uVar6;\n  uint uVar7;\n  int iVar8;\n  long lVar9;\n  undefined8 uVar10;\n  undefined8 *puVar11;\n  char *__s;\n  ulong uVar12;\n  char *pcVar13;\n  byte *pbVar14;\n  byte *pbVar15;\n  long unaff_R13;\n  long unaff_R15;\n  bool bVar16;\n  bool bVar17;\n  byte bVar18;\n  uint local_48 [2];\n  byte *local_40 [2];\n  \n  bVar18 = 0;\n  puVar2 = (undefined8 *)(param_3 + (long)(int)param_4 * 8);\n  pcVar13 = (char *)*puVar2;\n  if ((*pcVar13 != '-') || (*param_5 != '\0')) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0016cdf0("../../gold/options.cc",0x5f0,"process_one_option");\n  }\n  if ((pcVar13[1] == '-') && (pcVar13[2] == '\0')) {\n    *param_5 = '\x01';\n    return (ulong)(param_4 + 1);\n  }\n  local_40[0] = (byte *)0x0;\n  local_48[0] = param_4;\n  lVar9 = FUN_001b2990(param_2,param_3,0,local_40,local_48);\n  uVar6 = local_48[0];\n  if (lVar9 != 0) {\n    (**(code **)**(undefined8 **)(lVar9 + 0x48))\n              (*(undefined8 **)(lVar9 + 0x48),*puVar2,local_40[0],param_1,param_1 + 8);\nLAB_001baba8:\n    return (ulong)local_48[0];\n  }\n  if (param_4 != local_48[0]) goto LAB_001bac94;\n  unaff_R15 = (long)(int)local_48[0];\n  unaff_R13 = 1;\n  pcVar13 = *(char **)(param_3 + unaff_R15 * 8);\n  if (*pcVar13 != '-') goto LAB_001bac94;\nLAB_001babe8:\n  if ((DAT_003c7c90 == '\0') && (iVar8 = FUN_002756c0(&DAT_003c7c90), iVar8 != 0)) {\n    DAT_003c7ca0 = &DAT_003c7cb0;\n                    /* try { // try from 001bacef to 001bacf3 has its CatchHandler @ 001baefc */\n    FUN_0015cbe0(&DAT_003c7ca0,"");\n    _DAT_003c7cc0 = 4;\n    DAT_003c7cc4 = 0x7a;\n    _DAT_003c7cc8 = "";\n    DAT_003c7cd0 = 0;\n    DAT_003c7cd8 = "Z-OPTION";\n    DAT_003c7ce0 = 0;\n    _DAT_003c7ce8 = 0;\n    DAT_003c7cf0 = 0;\n    __s = strchr(DAT_003c7ca0,0x5f);\n    if (__s != (char *)0x0) {\n      do {\n        *__s = '-';\n        __s = strchr(__s,0x5f);\n      } while (__s != (char *)0x0);\n      if ((DAT_003c7cd0 != 0) && (DAT_003c8128 != '\0')) {\n                    /* try { // try from 001bad8f to 001bad93 has its CatchHandler @ 001baef4 */\n        FUN_001b2b90(&DAT_003c7ca0);\n      }\n    }\n    FUN_002757f0(&DAT_003c7c90);\n    __cxa_atexit(FUN_001bc860,&DAT_003c7ca0,&PTR_LOOP_003be5a8);\n  }\n  cVar4 = pcVar13[unaff_R13];\n  if (cVar4 == 'z') goto LAB_001bacb0;\n  if (0x7e < (int)cVar4 - 1U) goto LAB_001bac94;\n  puVar11 = *(undefined8 **)(&DAT_003c7d00 + (long)(int)cVar4 * 8);\n  if (puVar11 == (undefined8 *)0x0) goto LAB_001bac94;\n  do {\n    unaff_R13 = unaff_R13 + 1;\n    pbVar3 = (byte *)(pcVar13 + unaff_R13);\n    if (puVar11[7] == 0) {\n      local_40[0] = (byte *)0x0;\n      bVar5 = *pbVar3;\n      uVar7 = local_48[0];\n      pbVar3 = local_40[0];\n      if (bVar5 == 0) {\n        uVar7 = local_48[0] + 1;\n      }\n    }\n    else {\n      uVar1 = local_48[0] + 1;\n      uVar7 = uVar1;\n      if (*pbVar3 == 0) {\n        if (*(char *)(puVar11 + 8) == '\0') {\n          if (param_2 <= (int)uVar1) goto LAB_001baedd;\n          uVar7 = local_48[0] + 2;\n          pbVar3 = *(byte **)(param_3 + (long)(int)uVar1 * 8);\n        }\n        else {\n          pbVar3 = (byte *)puVar11[5];\n        }\n      }\n    }\n    local_48[0] = uVar7;\n    local_40[0] = pbVar3;\n    if ((char **)puVar11 == &DAT_003c7ca0) {\n      bVar17 = (char **)puVar11 == &DAT_003c7ca0;\n      bVar16 = puVar11 < &DAT_003c7ca0;\n      local_48[1] = 0;\n      lVar9 = 6;\n      pbVar14 = pbVar3;\n      pbVar15 = (byte *)0x314883;\n      do {\n        if (lVar9 == 0) break;\n        lVar9 = lVar9 + -1;\n        bVar16 = *pbVar14 < *pbVar15;\n        bVar17 = *pbVar14 == *pbVar15;\n        pbVar14 = pbVar14 + (ulong)bVar18 * -2 + 1;\n        pbVar15 = pbVar15 + (ulong)bVar18 * -2 + 1;\n      } while (bVar17);\n      if ((!bVar16 && !bVar17) == bVar16) {\n        local_40[0] = (byte *)0x314883;\n      }\n      puVar11 = (undefined8 *)FUN_001b2990(1,local_40,1,local_40,local_48 + 1);\n      if (puVar11 == (undefined8 *)0x0) {\n        uVar10 = gettext("unknown -z option");\n        FUN_001b06b0(uVar10,pbVar3);\n        uVar1 = local_48[0];\nLAB_001baedd:\n        local_48[0] = uVar1;\n        uVar10 = gettext("missing argument");\n        FUN_001b06b0(uVar10,pcVar13);\n                    /* catch() { ... } // from try @ 001bad8f with catch @ 001baef4 */\n        uVar12 = FUN_0014340a();\n        return uVar12;\n      }\n    }\n    (*(code *)**(undefined8 **)puVar11[9])\n              ((undefined8 *)puVar11[9],*puVar2,local_40[0],param_1,param_1 + 8);\n    if (local_48[0] != uVar6) goto LAB_001baba8;\n    pcVar13 = *(char **)(param_3 + unaff_R15 * 8);\n    if (*pcVar13 == '-') goto LAB_001babe8;\nLAB_001bac94:\n    pcVar13 = (char *)*puVar2;\n    uVar10 = gettext("unknown option");\n    FUN_001b06b0(uVar10,pcVar13);\nLAB_001bacb0:\n    puVar11 = &DAT_003c7ca0;\n  } while( true );\n}" type_identifier (function_declarator "FUN_001bab10(long param_1,int param_2,long param_3,uint param_4,char *param_5)" identifier (parameter_list "(long param_1,int param_2,long param_3,uint param_4,char *param_5)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "long param_3" (sized_type_specifier "long" long) identifier) , (parameter_declaration "uint param_4" type_identifier identifier) , (parameter_declaration "char *param_5" primitive_type (pointer_declarator "*param_5" * identifier)) ))) (compound_statement "{\n  uint uVar1;\n  undefined8 *puVar2;\n  byte *pbVar3;\n  char cVar4;\n  byte bVar5;\n  uint uVar6;\n  uint uVar7;\n  int iVar8;\n  long lVar9;\n  undefined8 uVar10;\n  undefined8 *puVar11;\n  char *__s;\n  ulong uVar12;\n  char *pcVar13;\n  byte *pbVar14;\n  byte *pbVar15;\n  long unaff_R13;\n  long unaff_R15;\n  bool bVar16;\n  bool bVar17;\n  byte bVar18;\n  uint local_48 [2];\n  byte *local_40 [2];\n  \n  bVar18 = 0;\n  puVar2 = (undefined8 *)(param_3 + (long)(int)param_4 * 8);\n  pcVar13 = (char *)*puVar2;\n  if ((*pcVar13 != '-') || (*param_5 != '\0')) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0016cdf0("../../gold/options.cc",0x5f0,"process_one_option");\n  }\n  if ((pcVar13[1] == '-') && (pcVar13[2] == '\0')) {\n    *param_5 = '\x01';\n    return (ulong)(param_4 + 1);\n  }\n  local_40[0] = (byte *)0x0;\n  local_48[0] = param_4;\n  lVar9 = FUN_001b2990(param_2,param_3,0,local_40,local_48);\n  uVar6 = local_48[0];\n  if (lVar9 != 0) {\n    (**(code **)**(undefined8 **)(lVar9 + 0x48))\n              (*(undefined8 **)(lVar9 + 0x48),*puVar2,local_40[0],param_1,param_1 + 8);\nLAB_001baba8:\n    return (ulong)local_48[0];\n  }\n  if (param_4 != local_48[0]) goto LAB_001bac94;\n  unaff_R15 = (long)(int)local_48[0];\n  unaff_R13 = 1;\n  pcVar13 = *(char **)(param_3 + unaff_R15 * 8);\n  if (*pcVar13 != '-') goto LAB_001bac94;\nLAB_001babe8:\n  if ((DAT_003c7c90 == '\0') && (iVar8 = FUN_002756c0(&DAT_003c7c90), iVar8 != 0)) {\n    DAT_003c7ca0 = &DAT_003c7cb0;\n                    /* try { // try from 001bacef to 001bacf3 has its CatchHandler @ 001baefc */\n    FUN_0015cbe0(&DAT_003c7ca0,"");\n    _DAT_003c7cc0 = 4;\n    DAT_003c7cc4 = 0x7a;\n    _DAT_003c7cc8 = "";\n    DAT_003c7cd0 = 0;\n    DAT_003c7cd8 = "Z-OPTION";\n    DAT_003c7ce0 = 0;\n    _DAT_003c7ce8 = 0;\n    DAT_003c7cf0 = 0;\n    __s = strchr(DAT_003c7ca0,0x5f);\n    if (__s != (char *)0x0) {\n      do {\n        *__s = '-';\n        __s = strchr(__s,0x5f);\n      } while (__s != (char *)0x0);\n      if ((DAT_003c7cd0 != 0) && (DAT_003c8128 != '\0')) {\n                    /* try { // try from 001bad8f to 001bad93 has its CatchHandler @ 001baef4 */\n        FUN_001b2b90(&DAT_003c7ca0);\n      }\n    }\n    FUN_002757f0(&DAT_003c7c90);\n    __cxa_atexit(FUN_001bc860,&DAT_003c7ca0,&PTR_LOOP_003be5a8);\n  }\n  cVar4 = pcVar13[unaff_R13];\n  if (cVar4 == 'z') goto LAB_001bacb0;\n  if (0x7e < (int)cVar4 - 1U) goto LAB_001bac94;\n  puVar11 = *(undefined8 **)(&DAT_003c7d00 + (long)(int)cVar4 * 8);\n  if (puVar11 == (undefined8 *)0x0) goto LAB_001bac94;\n  do {\n    unaff_R13 = unaff_R13 + 1;\n    pbVar3 = (byte *)(pcVar13 + unaff_R13);\n    if (puVar11[7] == 0) {\n      local_40[0] = (byte *)0x0;\n      bVar5 = *pbVar3;\n      uVar7 = local_48[0];\n      pbVar3 = local_40[0];\n      if (bVar5 == 0) {\n        uVar7 = local_48[0] + 1;\n      }\n    }\n    else {\n      uVar1 = local_48[0] + 1;\n      uVar7 = uVar1;\n      if (*pbVar3 == 0) {\n        if (*(char *)(puVar11 + 8) == '\0') {\n          if (param_2 <= (int)uVar1) goto LAB_001baedd;\n          uVar7 = local_48[0] + 2;\n          pbVar3 = *(byte **)(param_3 + (long)(int)uVar1 * 8);\n        }\n        else {\n          pbVar3 = (byte *)puVar11[5];\n        }\n      }\n    }\n    local_48[0] = uVar7;\n    local_40[0] = pbVar3;\n    if ((char **)puVar11 == &DAT_003c7ca0) {\n      bVar17 = (char **)puVar11 == &DAT_003c7ca0;\n      bVar16 = puVar11 < &DAT_003c7ca0;\n      local_48[1] = 0;\n      lVar9 = 6;\n      pbVar14 = pbVar3;\n      pbVar15 = (byte *)0x314883;\n      do {\n        if (lVar9 == 0) break;\n        lVar9 = lVar9 + -1;\n        bVar16 = *pbVar14 < *pbVar15;\n        bVar17 = *pbVar14 == *pbVar15;\n        pbVar14 = pbVar14 + (ulong)bVar18 * -2 + 1;\n        pbVar15 = pbVar15 + (ulong)bVar18 * -2 + 1;\n      } while (bVar17);\n      if ((!bVar16 && !bVar17) == bVar16) {\n        local_40[0] = (byte *)0x314883;\n      }\n      puVar11 = (undefined8 *)FUN_001b2990(1,local_40,1,local_40,local_48 + 1);\n      if (puVar11 == (undefined8 *)0x0) {\n        uVar10 = gettext("unknown -z option");\n        FUN_001b06b0(uVar10,pbVar3);\n        uVar1 = local_48[0];\nLAB_001baedd:\n        local_48[0] = uVar1;\n        uVar10 = gettext("missing argument");\n        FUN_001b06b0(uVar10,pcVar13);\n                    /* catch() { ... } // from try @ 001bad8f with catch @ 001baef4 */\n        uVar12 = FUN_0014340a();\n        return uVar12;\n      }\n    }\n    (*(code *)**(undefined8 **)puVar11[9])\n              ((undefined8 *)puVar11[9],*puVar2,local_40[0],param_1,param_1 + 8);\n    if (local_48[0] != uVar6) goto LAB_001baba8;\n    pcVar13 = *(char **)(param_3 + unaff_R15 * 8);\n    if (*pcVar13 == '-') goto LAB_001babe8;\nLAB_001bac94:\n    pcVar13 = (char *)*puVar2;\n    uVar10 = gettext("unknown option");\n    FUN_001b06b0(uVar10,pcVar13);\nLAB_001bacb0:\n    puVar11 = &DAT_003c7ca0;\n  } while( true );\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "undefined8 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "byte *pbVar3;" type_identifier (pointer_declarator "*pbVar3" * identifier) ;) (declaration "char cVar4;" primitive_type identifier ;) (declaration "byte bVar5;" type_identifier identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "long lVar9;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 uVar10;" type_identifier identifier ;) (declaration "undefined8 *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "char *__s;" primitive_type (pointer_declarator "*__s" * identifier) ;) (declaration "ulong uVar12;" type_identifier identifier ;) (declaration "char *pcVar13;" primitive_type (pointer_declarator "*pcVar13" * identifier) ;) (declaration "byte *pbVar14;" type_identifier (pointer_declarator "*pbVar14" * identifier) ;) (declaration "byte *pbVar15;" type_identifier (pointer_declarator "*pbVar15" * identifier) ;) (declaration "long unaff_R13;" (sized_type_specifier "long" long) identifier ;) (declaration "long unaff_R15;" (sized_type_specifier "long" long) identifier ;) (declaration "bool bVar16;" primitive_type identifier ;) (declaration "bool bVar17;" primitive_type identifier ;) (declaration "byte bVar18;" type_identifier identifier ;) (declaration "uint local_48 [2];" type_identifier (array_declarator "local_48 [2]" identifier [ number_literal ]) ;) (declaration "byte *local_40 [2];" type_identifier (pointer_declarator "*local_40 [2]" * (array_declarator "local_40 [2]" identifier [ number_literal ])) ;) (expression_statement "bVar18 = 0;" (assignment_expression "bVar18 = 0" identifier = number_literal) ;) (expression_statement "puVar2 = (undefined8 *)(param_3 + (long)(int)param_4 * 8);" (assignment_expression "puVar2 = (undefined8 *)(param_3 + (long)(int)param_4 * 8)" identifier = (cast_expression "(undefined8 *)(param_3 + (long)(int)param_4 * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + (long)(int)param_4 * 8)" ( (binary_expression "param_3 + (long)(int)param_4 * 8" identifier + (binary_expression "(long)(int)param_4 * 8" (cast_expression "(long)(int)param_4" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier)) * number_literal)) )))) ;) (expression_statement "pcVar13 = (char *)*puVar2;" (assignment_expression "pcVar13 = (char *)*puVar2" identifier = (cast_expression "(char *)*puVar2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar2" * identifier))) ;) (if_statement "if ((*pcVar13 != '-') || (*param_5 != '\0')) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0016cdf0("../../gold/options.cc",0x5f0,"process_one_option");\n  }" if (parenthesized_expression "((*pcVar13 != '-') || (*param_5 != '\0'))" ( (binary_expression "(*pcVar13 != '-') || (*param_5 != '\0')" (parenthesized_expression "(*pcVar13 != '-')" ( (binary_expression "*pcVar13 != '-'" (pointer_expression "*pcVar13" * 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_0016cdf0("../../gold/options.cc",0x5f0,"process_one_option");\n  }" { comment (expression_statement "FUN_0016cdf0("../../gold/options.cc",0x5f0,"process_one_option");" (call_expression "FUN_0016cdf0("../../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 ((pcVar13[1] == '-') && (pcVar13[2] == '\0')) {\n    *param_5 = '\x01';\n    return (ulong)(param_4 + 1);\n  }" if (parenthesized_expression "((pcVar13[1] == '-') && (pcVar13[2] == '\0'))" ( (binary_expression "(pcVar13[1] == '-') && (pcVar13[2] == '\0')" (parenthesized_expression "(pcVar13[1] == '-')" ( (binary_expression "pcVar13[1] == '-'" (subscript_expression "pcVar13[1]" identifier [ number_literal ]) == (char_literal "'-'" ' character ')) )) && (parenthesized_expression "(pcVar13[2] == '\0')" ( (binary_expression "pcVar13[2] == '\0'" (subscript_expression "pcVar13[2]" identifier [ number_literal ]) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n    *param_5 = '\x01';\n    return (ulong)(param_4 + 1);\n  }" { (expression_statement "*param_5 = '\x01';" (assignment_expression "*param_5 = '\x01'" (pointer_expression "*param_5" * identifier) = (char_literal "'\x01'" ' escape_sequence ')) ;) (return_statement "return (ulong)(param_4 + 1);" return (call_expression "(ulong)(param_4 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(param_4 + 1)" ( (binary_expression "param_4 + 1" identifier + number_literal) ))) ;) })) (expression_statement "local_40[0] = (byte *)0x0;" (assignment_expression "local_40[0] = (byte *)0x0" (subscript_expression "local_40[0]" identifier [ number_literal ]) = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_48[0] = param_4;" (assignment_expression "local_48[0] = param_4" (subscript_expression "local_48[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "lVar9 = FUN_001b2990(param_2,param_3,0,local_40,local_48);" (assignment_expression "lVar9 = FUN_001b2990(param_2,param_3,0,local_40,local_48)" identifier = (call_expression "FUN_001b2990(param_2,param_3,0,local_40,local_48)" identifier (argument_list "(param_2,param_3,0,local_40,local_48)" ( identifier , identifier , number_literal , identifier , identifier )))) ;) (expression_statement "uVar6 = local_48[0];" (assignment_expression "uVar6 = local_48[0]" identifier = (subscript_expression "local_48[0]" identifier [ number_literal ])) ;) (if_statement "if (lVar9 != 0) {\n    (**(code **)**(undefined8 **)(lVar9 + 0x48))\n              (*(undefined8 **)(lVar9 + 0x48),*puVar2,local_40[0],param_1,param_1 + 8);\nLAB_001baba8:\n    return (ulong)local_48[0];\n  }" if (parenthesized_expression "(lVar9 != 0)" ( (binary_expression "lVar9 != 0" identifier != number_literal) )) (compound_statement "{\n    (**(code **)**(undefined8 **)(lVar9 + 0x48))\n              (*(undefined8 **)(lVar9 + 0x48),*puVar2,local_40[0],param_1,param_1 + 8);\nLAB_001baba8:\n    return (ulong)local_48[0];\n  }" { (expression_statement "(**(code **)**(undefined8 **)(lVar9 + 0x48))\n              (*(undefined8 **)(lVar9 + 0x48),*puVar2,local_40[0],param_1,param_1 + 8);" (call_expression "(**(code **)**(undefined8 **)(lVar9 + 0x48))\n              (*(undefined8 **)(lVar9 + 0x48),*puVar2,local_40[0],param_1,param_1 + 8)" (parenthesized_expression "(**(code **)**(undefined8 **)(lVar9 + 0x48))" ( (pointer_expression "**(code **)**(undefined8 **)(lVar9 + 0x48)" * (pointer_expression "*(code **)**(undefined8 **)(lVar9 + 0x48)" * (cast_expression "(code **)**(undefined8 **)(lVar9 + 0x48)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "**(undefined8 **)(lVar9 + 0x48)" * (pointer_expression "*(undefined8 **)(lVar9 + 0x48)" * (cast_expression "(undefined8 **)(lVar9 + 0x48)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar9 + 0x48)" ( (binary_expression "lVar9 + 0x48" identifier + number_literal) )))))))) )) (argument_list "(*(undefined8 **)(lVar9 + 0x48),*puVar2,local_40[0],param_1,param_1 + 8)" ( (pointer_expression "*(undefined8 **)(lVar9 + 0x48)" * (cast_expression "(undefined8 **)(lVar9 + 0x48)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar9 + 0x48)" ( (binary_expression "lVar9 + 0x48" identifier + number_literal) )))) , (pointer_expression "*puVar2" * identifier) , (subscript_expression "local_40[0]" identifier [ number_literal ]) , identifier , (binary_expression "param_1 + 8" identifier + number_literal) ))) ;) (labeled_statement "LAB_001baba8:\n    return (ulong)local_48[0];" statement_identifier : (return_statement "return (ulong)local_48[0];" return (cast_expression "(ulong)local_48[0]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "local_48[0]" identifier [ number_literal ])) ;)) })) (if_statement "if (param_4 != local_48[0]) goto LAB_001bac94;" if (parenthesized_expression "(param_4 != local_48[0])" ( (binary_expression "param_4 != local_48[0]" identifier != (subscript_expression "local_48[0]" identifier [ number_literal ])) )) (goto_statement "goto LAB_001bac94;" goto statement_identifier ;)) (expression_statement "unaff_R15 = (long)(int)local_48[0];" (assignment_expression "unaff_R15 = (long)(int)local_48[0]" identifier = (cast_expression "(long)(int)local_48[0]" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)local_48[0]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "local_48[0]" identifier [ number_literal ])))) ;) (expression_statement "unaff_R13 = 1;" (assignment_expression "unaff_R13 = 1" identifier = number_literal) ;) (expression_statement "pcVar13 = *(char **)(param_3 + unaff_R15 * 8);" (assignment_expression "pcVar13 = *(char **)(param_3 + unaff_R15 * 8)" identifier = (pointer_expression "*(char **)(param_3 + unaff_R15 * 8)" * (cast_expression "(char **)(param_3 + unaff_R15 * 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_3 + unaff_R15 * 8)" ( (binary_expression "param_3 + unaff_R15 * 8" identifier + (binary_expression "unaff_R15 * 8" identifier * number_literal)) ))))) ;) (if_statement "if (*pcVar13 != '-') goto LAB_001bac94;" if (parenthesized_expression "(*pcVar13 != '-')" ( (binary_expression "*pcVar13 != '-'" (pointer_expression "*pcVar13" * identifier) != (char_literal "'-'" ' character ')) )) (goto_statement "goto LAB_001bac94;" goto statement_identifier ;)) (labeled_statement "LAB_001babe8:\n  if ((DAT_003c7c90 == '\0') && (iVar8 = FUN_002756c0(&DAT_003c7c90), iVar8 != 0)) {\n    DAT_003c7ca0 = &DAT_003c7cb0;\n                    /* try { // try from 001bacef to 001bacf3 has its CatchHandler @ 001baefc */\n    FUN_0015cbe0(&DAT_003c7ca0,"");\n    _DAT_003c7cc0 = 4;\n    DAT_003c7cc4 = 0x7a;\n    _DAT_003c7cc8 = "";\n    DAT_003c7cd0 = 0;\n    DAT_003c7cd8 = "Z-OPTION";\n    DAT_003c7ce0 = 0;\n    _DAT_003c7ce8 = 0;\n    DAT_003c7cf0 = 0;\n    __s = strchr(DAT_003c7ca0,0x5f);\n    if (__s != (char *)0x0) {\n      do {\n        *__s = '-';\n        __s = strchr(__s,0x5f);\n      } while (__s != (char *)0x0);\n      if ((DAT_003c7cd0 != 0) && (DAT_003c8128 != '\0')) {\n                    /* try { // try from 001bad8f to 001bad93 has its CatchHandler @ 001baef4 */\n        FUN_001b2b90(&DAT_003c7ca0);\n      }\n    }\n    FUN_002757f0(&DAT_003c7c90);\n    __cxa_atexit(FUN_001bc860,&DAT_003c7ca0,&PTR_LOOP_003be5a8);\n  }" statement_identifier : (if_statement "if ((DAT_003c7c90 == '\0') && (iVar8 = FUN_002756c0(&DAT_003c7c90), iVar8 != 0)) {\n    DAT_003c7ca0 = &DAT_003c7cb0;\n                    /* try { // try from 001bacef to 001bacf3 has its CatchHandler @ 001baefc */\n    FUN_0015cbe0(&DAT_003c7ca0,"");\n    _DAT_003c7cc0 = 4;\n    DAT_003c7cc4 = 0x7a;\n    _DAT_003c7cc8 = "";\n    DAT_003c7cd0 = 0;\n    DAT_003c7cd8 = "Z-OPTION";\n    DAT_003c7ce0 = 0;\n    _DAT_003c7ce8 = 0;\n    DAT_003c7cf0 = 0;\n    __s = strchr(DAT_003c7ca0,0x5f);\n    if (__s != (char *)0x0) {\n      do {\n        *__s = '-';\n        __s = strchr(__s,0x5f);\n      } while (__s != (char *)0x0);\n      if ((DAT_003c7cd0 != 0) && (DAT_003c8128 != '\0')) {\n                    /* try { // try from 001bad8f to 001bad93 has its CatchHandler @ 001baef4 */\n        FUN_001b2b90(&DAT_003c7ca0);\n      }\n    }\n    FUN_002757f0(&DAT_003c7c90);\n    __cxa_atexit(FUN_001bc860,&DAT_003c7ca0,&PTR_LOOP_003be5a8);\n  }" if (parenthesized_expression "((DAT_003c7c90 == '\0') && (iVar8 = FUN_002756c0(&DAT_003c7c90), iVar8 != 0))" ( (binary_expression "(DAT_003c7c90 == '\0') && (iVar8 = FUN_002756c0(&DAT_003c7c90), iVar8 != 0)" (parenthesized_expression "(DAT_003c7c90 == '\0')" ( (binary_expression "DAT_003c7c90 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(iVar8 = FUN_002756c0(&DAT_003c7c90), iVar8 != 0)" ( (comma_expression "iVar8 = FUN_002756c0(&DAT_003c7c90), iVar8 != 0" (assignment_expression "iVar8 = FUN_002756c0(&DAT_003c7c90)" identifier = (call_expression "FUN_002756c0(&DAT_003c7c90)" identifier (argument_list "(&DAT_003c7c90)" ( (pointer_expression "&DAT_003c7c90" & identifier) )))) , (binary_expression "iVar8 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n    DAT_003c7ca0 = &DAT_003c7cb0;\n                    /* try { // try from 001bacef to 001bacf3 has its CatchHandler @ 001baefc */\n    FUN_0015cbe0(&DAT_003c7ca0,"");\n    _DAT_003c7cc0 = 4;\n    DAT_003c7cc4 = 0x7a;\n    _DAT_003c7cc8 = "";\n    DAT_003c7cd0 = 0;\n    DAT_003c7cd8 = "Z-OPTION";\n    DAT_003c7ce0 = 0;\n    _DAT_003c7ce8 = 0;\n    DAT_003c7cf0 = 0;\n    __s = strchr(DAT_003c7ca0,0x5f);\n    if (__s != (char *)0x0) {\n      do {\n        *__s = '-';\n        __s = strchr(__s,0x5f);\n      } while (__s != (char *)0x0);\n      if ((DAT_003c7cd0 != 0) && (DAT_003c8128 != '\0')) {\n                    /* try { // try from 001bad8f to 001bad93 has its CatchHandler @ 001baef4 */\n        FUN_001b2b90(&DAT_003c7ca0);\n      }\n    }\n    FUN_002757f0(&DAT_003c7c90);\n    __cxa_atexit(FUN_001bc860,&DAT_003c7ca0,&PTR_LOOP_003be5a8);\n  }" { (expression_statement "DAT_003c7ca0 = &DAT_003c7cb0;" (assignment_expression "DAT_003c7ca0 = &DAT_003c7cb0" identifier = (pointer_expression "&DAT_003c7cb0" & identifier)) ;) comment (expression_statement "FUN_0015cbe0(&DAT_003c7ca0,"");" (call_expression "FUN_0015cbe0(&DAT_003c7ca0,"")" identifier (argument_list "(&DAT_003c7ca0,"")" ( (pointer_expression "&DAT_003c7ca0" & identifier) , (string_literal """" " ") ))) ;) (expression_statement "_DAT_003c7cc0 = 4;" (assignment_expression "_DAT_003c7cc0 = 4" identifier = number_literal) ;) (expression_statement "DAT_003c7cc4 = 0x7a;" (assignment_expression "DAT_003c7cc4 = 0x7a" identifier = number_literal) ;) (expression_statement "_DAT_003c7cc8 = "";" (assignment_expression "_DAT_003c7cc8 = """ identifier = (string_literal """" " ")) ;) (expression_statement "DAT_003c7cd0 = 0;" (assignment_expression "DAT_003c7cd0 = 0" identifier = number_literal) ;) (expression_statement "DAT_003c7cd8 = "Z-OPTION";" (assignment_expression "DAT_003c7cd8 = "Z-OPTION"" identifier = (string_literal ""Z-OPTION"" " string_content ")) ;) (expression_statement "DAT_003c7ce0 = 0;" (assignment_expression "DAT_003c7ce0 = 0" identifier = number_literal) ;) (expression_statement "_DAT_003c7ce8 = 0;" (assignment_expression "_DAT_003c7ce8 = 0" identifier = number_literal) ;) (expression_statement "DAT_003c7cf0 = 0;" (assignment_expression "DAT_003c7cf0 = 0" identifier = number_literal) ;) (expression_statement "__s = strchr(DAT_003c7ca0,0x5f);" (assignment_expression "__s = strchr(DAT_003c7ca0,0x5f)" identifier = (call_expression "strchr(DAT_003c7ca0,0x5f)" identifier (argument_list "(DAT_003c7ca0,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_003c7cd0 != 0) && (DAT_003c8128 != '\0')) {\n                    /* try { // try from 001bad8f to 001bad93 has its CatchHandler @ 001baef4 */\n        FUN_001b2b90(&DAT_003c7ca0);\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_003c7cd0 != 0) && (DAT_003c8128 != '\0')) {\n                    /* try { // try from 001bad8f to 001bad93 has its CatchHandler @ 001baef4 */\n        FUN_001b2b90(&DAT_003c7ca0);\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_003c7cd0 != 0) && (DAT_003c8128 != '\0')) {\n                    /* try { // try from 001bad8f to 001bad93 has its CatchHandler @ 001baef4 */\n        FUN_001b2b90(&DAT_003c7ca0);\n      }" if (parenthesized_expression "((DAT_003c7cd0 != 0) && (DAT_003c8128 != '\0'))" ( (binary_expression "(DAT_003c7cd0 != 0) && (DAT_003c8128 != '\0')" (parenthesized_expression "(DAT_003c7cd0 != 0)" ( (binary_expression "DAT_003c7cd0 != 0" identifier != number_literal) )) && (parenthesized_expression "(DAT_003c8128 != '\0')" ( (binary_expression "DAT_003c8128 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n                    /* try { // try from 001bad8f to 001bad93 has its CatchHandler @ 001baef4 */\n        FUN_001b2b90(&DAT_003c7ca0);\n      }" { comment (expression_statement "FUN_001b2b90(&DAT_003c7ca0);" (call_expression "FUN_001b2b90(&DAT_003c7ca0)" identifier (argument_list "(&DAT_003c7ca0)" ( (pointer_expression "&DAT_003c7ca0" & identifier) ))) ;) })) })) (expression_statement "FUN_002757f0(&DAT_003c7c90);" (call_expression "FUN_002757f0(&DAT_003c7c90)" identifier (argument_list "(&DAT_003c7c90)" ( (pointer_expression "&DAT_003c7c90" & identifier) ))) ;) (expression_statement "__cxa_atexit(FUN_001bc860,&DAT_003c7ca0,&PTR_LOOP_003be5a8);" (call_expression "__cxa_atexit(FUN_001bc860,&DAT_003c7ca0,&PTR_LOOP_003be5a8)" identifier (argument_list "(FUN_001bc860,&DAT_003c7ca0,&PTR_LOOP_003be5a8)" ( identifier , (pointer_expression "&DAT_003c7ca0" & identifier) , (pointer_expression "&PTR_LOOP_003be5a8" & identifier) ))) ;) }))) (expression_statement "cVar4 = pcVar13[unaff_R13];" (assignment_expression "cVar4 = pcVar13[unaff_R13]" identifier = (subscript_expression "pcVar13[unaff_R13]" identifier [ identifier ])) ;) (if_statement "if (cVar4 == 'z') goto LAB_001bacb0;" if (parenthesized_expression "(cVar4 == 'z')" ( (binary_expression "cVar4 == 'z'" identifier == (char_literal "'z'" ' character ')) )) (goto_statement "goto LAB_001bacb0;" goto statement_identifier ;)) (if_statement "if (0x7e < (int)cVar4 - 1U) goto LAB_001bac94;" if (parenthesized_expression "(0x7e < (int)cVar4 - 1U)" ( (binary_expression "0x7e < (int)cVar4 - 1U" number_literal < (binary_expression "(int)cVar4 - 1U" (cast_expression "(int)cVar4" ( (type_descriptor "int" primitive_type) ) identifier) - number_literal)) )) (goto_statement "goto LAB_001bac94;" goto statement_identifier ;)) (expression_statement "puVar11 = *(undefined8 **)(&DAT_003c7d00 + (long)(int)cVar4 * 8);" (assignment_expression "puVar11 = *(undefined8 **)(&DAT_003c7d00 + (long)(int)cVar4 * 8)" identifier = (pointer_expression "*(undefined8 **)(&DAT_003c7d00 + (long)(int)cVar4 * 8)" * (cast_expression "(undefined8 **)(&DAT_003c7d00 + (long)(int)cVar4 * 8)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(&DAT_003c7d00 + (long)(int)cVar4 * 8)" ( (binary_expression "&DAT_003c7d00 + (long)(int)cVar4 * 8" (pointer_expression "&DAT_003c7d00" & identifier) + (binary_expression "(long)(int)cVar4 * 8" (cast_expression "(long)(int)cVar4" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)cVar4" ( (type_descriptor "int" primitive_type) ) identifier)) * number_literal)) ))))) ;) (if_statement "if (puVar11 == (undefined8 *)0x0) goto LAB_001bac94;" if (parenthesized_expression "(puVar11 == (undefined8 *)0x0)" ( (binary_expression "puVar11 == (undefined8 *)0x0" identifier == (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_001bac94;" goto statement_identifier ;)) (do_statement "do {\n    unaff_R13 = unaff_R13 + 1;\n    pbVar3 = (byte *)(pcVar13 + unaff_R13);\n    if (puVar11[7] == 0) {\n      local_40[0] = (byte *)0x0;\n      bVar5 = *pbVar3;\n      uVar7 = local_48[0];\n      pbVar3 = local_40[0];\n      if (bVar5 == 0) {\n        uVar7 = local_48[0] + 1;\n      }\n    }\n    else {\n      uVar1 = local_48[0] + 1;\n      uVar7 = uVar1;\n      if (*pbVar3 == 0) {\n        if (*(char *)(puVar11 + 8) == '\0') {\n          if (param_2 <= (int)uVar1) goto LAB_001baedd;\n          uVar7 = local_48[0] + 2;\n          pbVar3 = *(byte **)(param_3 + (long)(int)uVar1 * 8);\n        }\n        else {\n          pbVar3 = (byte *)puVar11[5];\n        }\n      }\n    }\n    local_48[0] = uVar7;\n    local_40[0] = pbVar3;\n    if ((char **)puVar11 == &DAT_003c7ca0) {\n      bVar17 = (char **)puVar11 == &DAT_003c7ca0;\n      bVar16 = puVar11 < &DAT_003c7ca0;\n      local_48[1] = 0;\n      lVar9 = 6;\n      pbVar14 = pbVar3;\n      pbVar15 = (byte *)0x314883;\n      do {\n        if (lVar9 == 0) break;\n        lVar9 = lVar9 + -1;\n        bVar16 = *pbVar14 < *pbVar15;\n        bVar17 = *pbVar14 == *pbVar15;\n        pbVar14 = pbVar14 + (ulong)bVar18 * -2 + 1;\n        pbVar15 = pbVar15 + (ulong)bVar18 * -2 + 1;\n      } while (bVar17);\n      if ((!bVar16 && !bVar17) == bVar16) {\n        local_40[0] = (byte *)0x314883;\n      }\n      puVar11 = (undefined8 *)FUN_001b2990(1,local_40,1,local_40,local_48 + 1);\n      if (puVar11 == (undefined8 *)0x0) {\n        uVar10 = gettext("unknown -z option");\n        FUN_001b06b0(uVar10,pbVar3);\n        uVar1 = local_48[0];\nLAB_001baedd:\n        local_48[0] = uVar1;\n        uVar10 = gettext("missing argument");\n        FUN_001b06b0(uVar10,pcVar13);\n                    /* catch() { ... } // from try @ 001bad8f with catch @ 001baef4 */\n        uVar12 = FUN_0014340a();\n        return uVar12;\n      }\n    }\n    (*(code *)**(undefined8 **)puVar11[9])\n              ((undefined8 *)puVar11[9],*puVar2,local_40[0],param_1,param_1 + 8);\n    if (local_48[0] != uVar6) goto LAB_001baba8;\n    pcVar13 = *(char **)(param_3 + unaff_R15 * 8);\n    if (*pcVar13 == '-') goto LAB_001babe8;\nLAB_001bac94:\n    pcVar13 = (char *)*puVar2;\n    uVar10 = gettext("unknown option");\n    FUN_001b06b0(uVar10,pcVar13);\nLAB_001bacb0:\n    puVar11 = &DAT_003c7ca0;\n  } while( true );" do (compound_statement "{\n    unaff_R13 = unaff_R13 + 1;\n    pbVar3 = (byte *)(pcVar13 + unaff_R13);\n    if (puVar11[7] == 0) {\n      local_40[0] = (byte *)0x0;\n      bVar5 = *pbVar3;\n      uVar7 = local_48[0];\n      pbVar3 = local_40[0];\n      if (bVar5 == 0) {\n        uVar7 = local_48[0] + 1;\n      }\n    }\n    else {\n      uVar1 = local_48[0] + 1;\n      uVar7 = uVar1;\n      if (*pbVar3 == 0) {\n        if (*(char *)(puVar11 + 8) == '\0') {\n          if (param_2 <= (int)uVar1) goto LAB_001baedd;\n          uVar7 = local_48[0] + 2;\n          pbVar3 = *(byte **)(param_3 + (long)(int)uVar1 * 8);\n        }\n        else {\n          pbVar3 = (byte *)puVar11[5];\n        }\n      }\n    }\n    local_48[0] = uVar7;\n    local_40[0] = pbVar3;\n    if ((char **)puVar11 == &DAT_003c7ca0) {\n      bVar17 = (char **)puVar11 == &DAT_003c7ca0;\n      bVar16 = puVar11 < &DAT_003c7ca0;\n      local_48[1] = 0;\n      lVar9 = 6;\n      pbVar14 = pbVar3;\n      pbVar15 = (byte *)0x314883;\n      do {\n        if (lVar9 == 0) break;\n        lVar9 = lVar9 + -1;\n        bVar16 = *pbVar14 < *pbVar15;\n        bVar17 = *pbVar14 == *pbVar15;\n        pbVar14 = pbVar14 + (ulong)bVar18 * -2 + 1;\n        pbVar15 = pbVar15 + (ulong)bVar18 * -2 + 1;\n      } while (bVar17);\n      if ((!bVar16 && !bVar17) == bVar16) {\n        local_40[0] = (byte *)0x314883;\n      }\n      puVar11 = (undefined8 *)FUN_001b2990(1,local_40,1,local_40,local_48 + 1);\n      if (puVar11 == (undefined8 *)0x0) {\n        uVar10 = gettext("unknown -z option");\n        FUN_001b06b0(uVar10,pbVar3);\n        uVar1 = local_48[0];\nLAB_001baedd:\n        local_48[0] = uVar1;\n        uVar10 = gettext("missing argument");\n        FUN_001b06b0(uVar10,pcVar13);\n                    /* catch() { ... } // from try @ 001bad8f with catch @ 001baef4 */\n        uVar12 = FUN_0014340a();\n        return uVar12;\n      }\n    }\n    (*(code *)**(undefined8 **)puVar11[9])\n              ((undefined8 *)puVar11[9],*puVar2,local_40[0],param_1,param_1 + 8);\n    if (local_48[0] != uVar6) goto LAB_001baba8;\n    pcVar13 = *(char **)(param_3 + unaff_R15 * 8);\n    if (*pcVar13 == '-') goto LAB_001babe8;\nLAB_001bac94:\n    pcVar13 = (char *)*puVar2;\n    uVar10 = gettext("unknown option");\n    FUN_001b06b0(uVar10,pcVar13);\nLAB_001bacb0:\n    puVar11 = &DAT_003c7ca0;\n  }" { (expression_statement "unaff_R13 = unaff_R13 + 1;" (assignment_expression "unaff_R13 = unaff_R13 + 1" identifier = (binary_expression "unaff_R13 + 1" identifier + number_literal)) ;) (expression_statement "pbVar3 = (byte *)(pcVar13 + unaff_R13);" (assignment_expression "pbVar3 = (byte *)(pcVar13 + unaff_R13)" identifier = (cast_expression "(byte *)(pcVar13 + unaff_R13)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar13 + unaff_R13)" ( (binary_expression "pcVar13 + unaff_R13" identifier + identifier) )))) ;) (if_statement "if (puVar11[7] == 0) {\n      local_40[0] = (byte *)0x0;\n      bVar5 = *pbVar3;\n      uVar7 = local_48[0];\n      pbVar3 = local_40[0];\n      if (bVar5 == 0) {\n        uVar7 = local_48[0] + 1;\n      }\n    }\n    else {\n      uVar1 = local_48[0] + 1;\n      uVar7 = uVar1;\n      if (*pbVar3 == 0) {\n        if (*(char *)(puVar11 + 8) == '\0') {\n          if (param_2 <= (int)uVar1) goto LAB_001baedd;\n          uVar7 = local_48[0] + 2;\n          pbVar3 = *(byte **)(param_3 + (long)(int)uVar1 * 8);\n        }\n        else {\n          pbVar3 = (byte *)puVar11[5];\n        }\n      }\n    }" if (parenthesized_expression "(puVar11[7] == 0)" ( (binary_expression "puVar11[7] == 0" (subscript_expression "puVar11[7]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n      local_40[0] = (byte *)0x0;\n      bVar5 = *pbVar3;\n      uVar7 = local_48[0];\n      pbVar3 = local_40[0];\n      if (bVar5 == 0) {\n        uVar7 = local_48[0] + 1;\n      }\n    }" { (expression_statement "local_40[0] = (byte *)0x0;" (assignment_expression "local_40[0] = (byte *)0x0" (subscript_expression "local_40[0]" identifier [ number_literal ]) = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "bVar5 = *pbVar3;" (assignment_expression "bVar5 = *pbVar3" identifier = (pointer_expression "*pbVar3" * identifier)) ;) (expression_statement "uVar7 = local_48[0];" (assignment_expression "uVar7 = local_48[0]" identifier = (subscript_expression "local_48[0]" identifier [ number_literal ])) ;) (expression_statement "pbVar3 = local_40[0];" (assignment_expression "pbVar3 = local_40[0]" identifier = (subscript_expression "local_40[0]" identifier [ number_literal ])) ;) (if_statement "if (bVar5 == 0) {\n        uVar7 = local_48[0] + 1;\n      }" if (parenthesized_expression "(bVar5 == 0)" ( (binary_expression "bVar5 == 0" identifier == number_literal) )) (compound_statement "{\n        uVar7 = local_48[0] + 1;\n      }" { (expression_statement "uVar7 = local_48[0] + 1;" (assignment_expression "uVar7 = local_48[0] + 1" identifier = (binary_expression "local_48[0] + 1" (subscript_expression "local_48[0]" identifier [ number_literal ]) + number_literal)) ;) })) }) (else_clause "else {\n      uVar1 = local_48[0] + 1;\n      uVar7 = uVar1;\n      if (*pbVar3 == 0) {\n        if (*(char *)(puVar11 + 8) == '\0') {\n          if (param_2 <= (int)uVar1) goto LAB_001baedd;\n          uVar7 = local_48[0] + 2;\n          pbVar3 = *(byte **)(param_3 + (long)(int)uVar1 * 8);\n        }\n        else {\n          pbVar3 = (byte *)puVar11[5];\n        }\n      }\n    }" else (compound_statement "{\n      uVar1 = local_48[0] + 1;\n      uVar7 = uVar1;\n      if (*pbVar3 == 0) {\n        if (*(char *)(puVar11 + 8) == '\0') {\n          if (param_2 <= (int)uVar1) goto LAB_001baedd;\n          uVar7 = local_48[0] + 2;\n          pbVar3 = *(byte **)(param_3 + (long)(int)uVar1 * 8);\n        }\n        else {\n          pbVar3 = (byte *)puVar11[5];\n        }\n      }\n    }" { (expression_statement "uVar1 = local_48[0] + 1;" (assignment_expression "uVar1 = local_48[0] + 1" identifier = (binary_expression "local_48[0] + 1" (subscript_expression "local_48[0]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "uVar7 = uVar1;" (assignment_expression "uVar7 = uVar1" identifier = identifier) ;) (if_statement "if (*pbVar3 == 0) {\n        if (*(char *)(puVar11 + 8) == '\0') {\n          if (param_2 <= (int)uVar1) goto LAB_001baedd;\n          uVar7 = local_48[0] + 2;\n          pbVar3 = *(byte **)(param_3 + (long)(int)uVar1 * 8);\n        }\n        else {\n          pbVar3 = (byte *)puVar11[5];\n        }\n      }" if (parenthesized_expression "(*pbVar3 == 0)" ( (binary_expression "*pbVar3 == 0" (pointer_expression "*pbVar3" * identifier) == number_literal) )) (compound_statement "{\n        if (*(char *)(puVar11 + 8) == '\0') {\n          if (param_2 <= (int)uVar1) goto LAB_001baedd;\n          uVar7 = local_48[0] + 2;\n          pbVar3 = *(byte **)(param_3 + (long)(int)uVar1 * 8);\n        }\n        else {\n          pbVar3 = (byte *)puVar11[5];\n        }\n      }" { (if_statement "if (*(char *)(puVar11 + 8) == '\0') {\n          if (param_2 <= (int)uVar1) goto LAB_001baedd;\n          uVar7 = local_48[0] + 2;\n          pbVar3 = *(byte **)(param_3 + (long)(int)uVar1 * 8);\n        }\n        else {\n          pbVar3 = (byte *)puVar11[5];\n        }" if (parenthesized_expression "(*(char *)(puVar11 + 8) == '\0')" ( (binary_expression "*(char *)(puVar11 + 8) == '\0'" (pointer_expression "*(char *)(puVar11 + 8)" * (cast_expression "(char *)(puVar11 + 8)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 8)" ( (binary_expression "puVar11 + 8" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          if (param_2 <= (int)uVar1) goto LAB_001baedd;\n          uVar7 = local_48[0] + 2;\n          pbVar3 = *(byte **)(param_3 + (long)(int)uVar1 * 8);\n        }" { (if_statement "if (param_2 <= (int)uVar1) goto LAB_001baedd;" if (parenthesized_expression "(param_2 <= (int)uVar1)" ( (binary_expression "param_2 <= (int)uVar1" identifier <= (cast_expression "(int)uVar1" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_001baedd;" goto statement_identifier ;)) (expression_statement "uVar7 = local_48[0] + 2;" (assignment_expression "uVar7 = local_48[0] + 2" identifier = (binary_expression "local_48[0] + 2" (subscript_expression "local_48[0]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "pbVar3 = *(byte **)(param_3 + (long)(int)uVar1 * 8);" (assignment_expression "pbVar3 = *(byte **)(param_3 + (long)(int)uVar1 * 8)" identifier = (pointer_expression "*(byte **)(param_3 + (long)(int)uVar1 * 8)" * (cast_expression "(byte **)(param_3 + (long)(int)uVar1 * 8)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_3 + (long)(int)uVar1 * 8)" ( (binary_expression "param_3 + (long)(int)uVar1 * 8" identifier + (binary_expression "(long)(int)uVar1 * 8" (cast_expression "(long)(int)uVar1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)uVar1" ( (type_descriptor "int" primitive_type) ) identifier)) * number_literal)) ))))) ;) }) (else_clause "else {\n          pbVar3 = (byte *)puVar11[5];\n        }" else (compound_statement "{\n          pbVar3 = (byte *)puVar11[5];\n        }" { (expression_statement "pbVar3 = (byte *)puVar11[5];" (assignment_expression "pbVar3 = (byte *)puVar11[5]" identifier = (cast_expression "(byte *)puVar11[5]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar11[5]" identifier [ number_literal ]))) ;) }))) })) }))) (expression_statement "local_48[0] = uVar7;" (assignment_expression "local_48[0] = uVar7" (subscript_expression "local_48[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_40[0] = pbVar3;" (assignment_expression "local_40[0] = pbVar3" (subscript_expression "local_40[0]" identifier [ number_literal ]) = identifier) ;) (if_statement "if ((char **)puVar11 == &DAT_003c7ca0) {\n      bVar17 = (char **)puVar11 == &DAT_003c7ca0;\n      bVar16 = puVar11 < &DAT_003c7ca0;\n      local_48[1] = 0;\n      lVar9 = 6;\n      pbVar14 = pbVar3;\n      pbVar15 = (byte *)0x314883;\n      do {\n        if (lVar9 == 0) break;\n        lVar9 = lVar9 + -1;\n        bVar16 = *pbVar14 < *pbVar15;\n        bVar17 = *pbVar14 == *pbVar15;\n        pbVar14 = pbVar14 + (ulong)bVar18 * -2 + 1;\n        pbVar15 = pbVar15 + (ulong)bVar18 * -2 + 1;\n      } while (bVar17);\n      if ((!bVar16 && !bVar17) == bVar16) {\n        local_40[0] = (byte *)0x314883;\n      }\n      puVar11 = (undefined8 *)FUN_001b2990(1,local_40,1,local_40,local_48 + 1);\n      if (puVar11 == (undefined8 *)0x0) {\n        uVar10 = gettext("unknown -z option");\n        FUN_001b06b0(uVar10,pbVar3);\n        uVar1 = local_48[0];\nLAB_001baedd:\n        local_48[0] = uVar1;\n        uVar10 = gettext("missing argument");\n        FUN_001b06b0(uVar10,pcVar13);\n                    /* catch() { ... } // from try @ 001bad8f with catch @ 001baef4 */\n        uVar12 = FUN_0014340a();\n        return uVar12;\n      }\n    }" if (parenthesized_expression "((char **)puVar11 == &DAT_003c7ca0)" ( (binary_expression "(char **)puVar11 == &DAT_003c7ca0" (cast_expression "(char **)puVar11" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier) == (pointer_expression "&DAT_003c7ca0" & identifier)) )) (compound_statement "{\n      bVar17 = (char **)puVar11 == &DAT_003c7ca0;\n      bVar16 = puVar11 < &DAT_003c7ca0;\n      local_48[1] = 0;\n      lVar9 = 6;\n      pbVar14 = pbVar3;\n      pbVar15 = (byte *)0x314883;\n      do {\n        if (lVar9 == 0) break;\n        lVar9 = lVar9 + -1;\n        bVar16 = *pbVar14 < *pbVar15;\n        bVar17 = *pbVar14 == *pbVar15;\n        pbVar14 = pbVar14 + (ulong)bVar18 * -2 + 1;\n        pbVar15 = pbVar15 + (ulong)bVar18 * -2 + 1;\n      } while (bVar17);\n      if ((!bVar16 && !bVar17) == bVar16) {\n        local_40[0] = (byte *)0x314883;\n      }\n      puVar11 = (undefined8 *)FUN_001b2990(1,local_40,1,local_40,local_48 + 1);\n      if (puVar11 == (undefined8 *)0x0) {\n        uVar10 = gettext("unknown -z option");\n        FUN_001b06b0(uVar10,pbVar3);\n        uVar1 = local_48[0];\nLAB_001baedd:\n        local_48[0] = uVar1;\n        uVar10 = gettext("missing argument");\n        FUN_001b06b0(uVar10,pcVar13);\n                    /* catch() { ... } // from try @ 001bad8f with catch @ 001baef4 */\n        uVar12 = FUN_0014340a();\n        return uVar12;\n      }\n    }" { (expression_statement "bVar17 = (char **)puVar11 == &DAT_003c7ca0;" (assignment_expression "bVar17 = (char **)puVar11 == &DAT_003c7ca0" identifier = (binary_expression "(char **)puVar11 == &DAT_003c7ca0" (cast_expression "(char **)puVar11" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier) == (pointer_expression "&DAT_003c7ca0" & identifier))) ;) (expression_statement "bVar16 = puVar11 < &DAT_003c7ca0;" (assignment_expression "bVar16 = puVar11 < &DAT_003c7ca0" identifier = (binary_expression "puVar11 < &DAT_003c7ca0" identifier < (pointer_expression "&DAT_003c7ca0" & identifier))) ;) (expression_statement "local_48[1] = 0;" (assignment_expression "local_48[1] = 0" (subscript_expression "local_48[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "lVar9 = 6;" (assignment_expression "lVar9 = 6" identifier = number_literal) ;) (expression_statement "pbVar14 = pbVar3;" (assignment_expression "pbVar14 = pbVar3" identifier = identifier) ;) (expression_statement "pbVar15 = (byte *)0x314883;" (assignment_expression "pbVar15 = (byte *)0x314883" identifier = (cast_expression "(byte *)0x314883" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n        if (lVar9 == 0) break;\n        lVar9 = lVar9 + -1;\n        bVar16 = *pbVar14 < *pbVar15;\n        bVar17 = *pbVar14 == *pbVar15;\n        pbVar14 = pbVar14 + (ulong)bVar18 * -2 + 1;\n        pbVar15 = pbVar15 + (ulong)bVar18 * -2 + 1;\n      } while (bVar17);" do (compound_statement "{\n        if (lVar9 == 0) break;\n        lVar9 = lVar9 + -1;\n        bVar16 = *pbVar14 < *pbVar15;\n        bVar17 = *pbVar14 == *pbVar15;\n        pbVar14 = pbVar14 + (ulong)bVar18 * -2 + 1;\n        pbVar15 = pbVar15 + (ulong)bVar18 * -2 + 1;\n      }" { (if_statement "if (lVar9 == 0) break;" if (parenthesized_expression "(lVar9 == 0)" ( (binary_expression "lVar9 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar9 = lVar9 + -1;" (assignment_expression "lVar9 = lVar9 + -1" identifier = (binary_expression "lVar9 + -1" identifier + number_literal)) ;) (expression_statement "bVar16 = *pbVar14 < *pbVar15;" (assignment_expression "bVar16 = *pbVar14 < *pbVar15" identifier = (binary_expression "*pbVar14 < *pbVar15" (pointer_expression "*pbVar14" * identifier) < (pointer_expression "*pbVar15" * identifier))) ;) (expression_statement "bVar17 = *pbVar14 == *pbVar15;" (assignment_expression "bVar17 = *pbVar14 == *pbVar15" identifier = (binary_expression "*pbVar14 == *pbVar15" (pointer_expression "*pbVar14" * identifier) == (pointer_expression "*pbVar15" * identifier))) ;) (expression_statement "pbVar14 = pbVar14 + (ulong)bVar18 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (ulong)bVar18 * -2 + 1" identifier = (binary_expression "pbVar14 + (ulong)bVar18 * -2 + 1" (binary_expression "pbVar14 + (ulong)bVar18 * -2" identifier + (binary_expression "(ulong)bVar18 * -2" (cast_expression "(ulong)bVar18" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar15 = pbVar15 + (ulong)bVar18 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (ulong)bVar18 * -2 + 1" identifier = (binary_expression "pbVar15 + (ulong)bVar18 * -2 + 1" (binary_expression "pbVar15 + (ulong)bVar18 * -2" identifier + (binary_expression "(ulong)bVar18 * -2" (cast_expression "(ulong)bVar18" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar17)" ( identifier )) ;) (if_statement "if ((!bVar16 && !bVar17) == bVar16) {\n        local_40[0] = (byte *)0x314883;\n      }" if (parenthesized_expression "((!bVar16 && !bVar17) == bVar16)" ( (binary_expression "(!bVar16 && !bVar17) == bVar16" (parenthesized_expression "(!bVar16 && !bVar17)" ( (binary_expression "!bVar16 && !bVar17" (unary_expression "!bVar16" ! identifier) && (unary_expression "!bVar17" ! identifier)) )) == identifier) )) (compound_statement "{\n        local_40[0] = (byte *)0x314883;\n      }" { (expression_statement "local_40[0] = (byte *)0x314883;" (assignment_expression "local_40[0] = (byte *)0x314883" (subscript_expression "local_40[0]" identifier [ number_literal ]) = (cast_expression "(byte *)0x314883" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (expression_statement "puVar11 = (undefined8 *)FUN_001b2990(1,local_40,1,local_40,local_48 + 1);" (assignment_expression "puVar11 = (undefined8 *)FUN_001b2990(1,local_40,1,local_40,local_48 + 1)" identifier = (cast_expression "(undefined8 *)FUN_001b2990(1,local_40,1,local_40,local_48 + 1)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001b2990(1,local_40,1,local_40,local_48 + 1)" identifier (argument_list "(1,local_40,1,local_40,local_48 + 1)" ( number_literal , identifier , number_literal , identifier , (binary_expression "local_48 + 1" identifier + number_literal) ))))) ;) (if_statement "if (puVar11 == (undefined8 *)0x0) {\n        uVar10 = gettext("unknown -z option");\n        FUN_001b06b0(uVar10,pbVar3);\n        uVar1 = local_48[0];\nLAB_001baedd:\n        local_48[0] = uVar1;\n        uVar10 = gettext("missing argument");\n        FUN_001b06b0(uVar10,pcVar13);\n                    /* catch() { ... } // from try @ 001bad8f with catch @ 001baef4 */\n        uVar12 = FUN_0014340a();\n        return uVar12;\n      }" if (parenthesized_expression "(puVar11 == (undefined8 *)0x0)" ( (binary_expression "puVar11 == (undefined8 *)0x0" identifier == (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        uVar10 = gettext("unknown -z option");\n        FUN_001b06b0(uVar10,pbVar3);\n        uVar1 = local_48[0];\nLAB_001baedd:\n        local_48[0] = uVar1;\n        uVar10 = gettext("missing argument");\n        FUN_001b06b0(uVar10,pcVar13);\n                    /* catch() { ... } // from try @ 001bad8f with catch @ 001baef4 */\n        uVar12 = FUN_0014340a();\n        return uVar12;\n      }" { (expression_statement "uVar10 = gettext("unknown -z option");" (assignment_expression "uVar10 = gettext("unknown -z option")" identifier = (call_expression "gettext("unknown -z option")" identifier (argument_list "("unknown -z option")" ( (string_literal ""unknown -z option"" " string_content ") )))) ;) (expression_statement "FUN_001b06b0(uVar10,pbVar3);" (call_expression "FUN_001b06b0(uVar10,pbVar3)" identifier (argument_list "(uVar10,pbVar3)" ( identifier , identifier ))) ;) (expression_statement "uVar1 = local_48[0];" (assignment_expression "uVar1 = local_48[0]" identifier = (subscript_expression "local_48[0]" identifier [ number_literal ])) ;) (labeled_statement "LAB_001baedd:\n        local_48[0] = uVar1;" statement_identifier : (expression_statement "local_48[0] = uVar1;" (assignment_expression "local_48[0] = uVar1" (subscript_expression "local_48[0]" identifier [ number_literal ]) = identifier) ;)) (expression_statement "uVar10 = gettext("missing argument");" (assignment_expression "uVar10 = gettext("missing argument")" identifier = (call_expression "gettext("missing argument")" identifier (argument_list "("missing argument")" ( (string_literal ""missing argument"" " string_content ") )))) ;) (expression_statement "FUN_001b06b0(uVar10,pcVar13);" (call_expression "FUN_001b06b0(uVar10,pcVar13)" identifier (argument_list "(uVar10,pcVar13)" ( identifier , identifier ))) ;) comment (expression_statement "uVar12 = FUN_0014340a();" (assignment_expression "uVar12 = FUN_0014340a()" identifier = (call_expression "FUN_0014340a()" identifier (argument_list "()" ( )))) ;) (return_statement "return uVar12;" return identifier ;) })) })) (expression_statement "(*(code *)**(undefined8 **)puVar11[9])\n              ((undefined8 *)puVar11[9],*puVar2,local_40[0],param_1,param_1 + 8);" (call_expression "(*(code *)**(undefined8 **)puVar11[9])\n              ((undefined8 *)puVar11[9],*puVar2,local_40[0],param_1,param_1 + 8)" (parenthesized_expression "(*(code *)**(undefined8 **)puVar11[9])" ( (pointer_expression "*(code *)**(undefined8 **)puVar11[9]" * (cast_expression "(code *)**(undefined8 **)puVar11[9]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined8 **)puVar11[9]" * (pointer_expression "*(undefined8 **)puVar11[9]" * (cast_expression "(undefined8 **)puVar11[9]" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "puVar11[9]" identifier [ number_literal ])))))) )) (argument_list "((undefined8 *)puVar11[9],*puVar2,local_40[0],param_1,param_1 + 8)" ( (cast_expression "(undefined8 *)puVar11[9]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar11[9]" identifier [ number_literal ])) , (pointer_expression "*puVar2" * identifier) , (subscript_expression "local_40[0]" identifier [ number_literal ]) , identifier , (binary_expression "param_1 + 8" identifier + number_literal) ))) ;) (if_statement "if (local_48[0] != uVar6) goto LAB_001baba8;" if (parenthesized_expression "(local_48[0] != uVar6)" ( (binary_expression "local_48[0] != uVar6" (subscript_expression "local_48[0]" identifier [ number_literal ]) != identifier) )) (goto_statement "goto LAB_001baba8;" goto statement_identifier ;)) (expression_statement "pcVar13 = *(char **)(param_3 + unaff_R15 * 8);" (assignment_expression "pcVar13 = *(char **)(param_3 + unaff_R15 * 8)" identifier = (pointer_expression "*(char **)(param_3 + unaff_R15 * 8)" * (cast_expression "(char **)(param_3 + unaff_R15 * 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_3 + unaff_R15 * 8)" ( (binary_expression "param_3 + unaff_R15 * 8" identifier + (binary_expression "unaff_R15 * 8" identifier * number_literal)) ))))) ;) (if_statement "if (*pcVar13 == '-') goto LAB_001babe8;" if (parenthesized_expression "(*pcVar13 == '-')" ( (binary_expression "*pcVar13 == '-'" (pointer_expression "*pcVar13" * identifier) == (char_literal "'-'" ' character ')) )) (goto_statement "goto LAB_001babe8;" goto statement_identifier ;)) (labeled_statement "LAB_001bac94:\n    pcVar13 = (char *)*puVar2;" statement_identifier : (expression_statement "pcVar13 = (char *)*puVar2;" (assignment_expression "pcVar13 = (char *)*puVar2" identifier = (cast_expression "(char *)*puVar2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar2" * identifier))) ;)) (expression_statement "uVar10 = gettext("unknown option");" (assignment_expression "uVar10 = gettext("unknown option")" identifier = (call_expression "gettext("unknown option")" identifier (argument_list "("unknown option")" ( (string_literal ""unknown option"" " string_content ") )))) ;) (expression_statement "FUN_001b06b0(uVar10,pcVar13);" (call_expression "FUN_001b06b0(uVar10,pcVar13)" identifier (argument_list "(uVar10,pcVar13)" ( identifier , identifier ))) ;) (labeled_statement "LAB_001bacb0:\n    puVar11 = &DAT_003c7ca0;" statement_identifier : (expression_statement "puVar11 = &DAT_003c7ca0;" (assignment_expression "puVar11 = &DAT_003c7ca0" identifier = (pointer_expression "&DAT_003c7ca0" & identifier)) ;)) }) while (parenthesized_expression "( true )" ( true )) ;) })))
(translation_unit "/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */\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  uint uVar1;\n  char **ppcVar2;\n  byte *opt;\n  char cVar3;\n  byte bVar4;\n  uint uVar5;\n  int iVar6;\n  int iVar7;\n  One_option *pOVar8;\n  char *pcVar9;\n  char **ppcVar10;\n  char **ppcVar11;\n  long lVar12;\n  int extraout_EDX;\n  char **opt_00;\n  byte *pbVar13;\n  byte *pbVar14;\n  long unaff_R13;\n  long unaff_R15;\n  bool bVar15;\n  bool bVar16;\n  byte bVar17;\n  int new_i;\n  int dummy_i;\n  char *arg;\n  \n  bVar17 = 0;\n  ppcVar2 = argv + i;\n  pcVar9 = *ppcVar2;\n  if ((*pcVar9 != '-') || (*no_more_options != false)) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/options.cc",0x5f0,"process_one_option");\n  }\n  if ((pcVar9[1] == '-') && (pcVar9[2] == '\0')) {\n    *no_more_options = true;\n    return i + 1;\n  }\n  arg = (char *)0x0;\n  new_i = i;\n  pOVar8 = anon_unknown.dwarf_9fbd7f::parse_long_option(argc,argv,false,&arg,&new_i);\n  iVar7 = new_i;\n  if (pOVar8 != (One_option *)0x0) {\n    (**pOVar8->reader->_vptr_Struct_var)(pOVar8->reader,*ppcVar2,arg,this,&this->options_);\n    return new_i;\n  }\n  if (i != new_i) goto LAB_001bac94;\n  unaff_R15 = (long)new_i;\n  unaff_R13 = 1;\n  opt_00 = (char **)argv[unaff_R15];\n  if (*(char *)opt_00 != '-') goto LAB_001bac94;\nLAB_001babe8:\n  if (((anonymous_namespace)::parse_short_option(int,char_const**,int,char_const**,int*)::dash_z ==\n       '\0') &&\n     (iVar6 = __cxa_guard_acquire(&(anonymous_namespace)::\n                                   parse_short_option(int,char_const**,int,char_const**,int*)::\n                                   dash_z), iVar6 != 0)) {\n    (anonymous_namespace)::parse_short_option(int,char_const**,int,char_const**,int*)::dash_z =\n         &DAT_003c7cb0;\n                    /* try { // try from 001bacef to 001bacf3 has its CatchHandler @ 001baefc */\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)::parse_short_option(int,char_const**,int,char_const**,int*)::\n                dash_z,"");\n    _DAT_003c7cc0 = 4;\n    DAT_003c7cc4 = 0x7a;\n    _DAT_003c7cc8 = "";\n    DAT_003c7cd0 = 0;\n    _DAT_003c7cd8 = "Z-OPTION";\n    DAT_003c7ce0 = 0;\n    _DAT_003c7ce8 = 0;\n    DAT_003c7cf0 = 0;\n    pcVar9 = strchr((anonymous_namespace)::\n                    parse_short_option(int,char_const**,int,char_const**,int*)::dash_z,0x5f);\n    if (pcVar9 != (char *)0x0) {\n      do {\n        *pcVar9 = '-';\n        pcVar9 = strchr(pcVar9,0x5f);\n      } while (pcVar9 != (char *)0x0);\n      if ((DAT_003c7cd0 != 0) && (gold::options::ready_to_register != false)) {\n                    /* try { // try from 001bad8f to 001bad93 has its CatchHandler @ 001baef4 */\n        gold::options::One_option::register_option\n                  ((One_option *)\n                   &(anonymous_namespace)::\n                    parse_short_option(int,char_const**,int,char_const**,int*)::dash_z);\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)::parse_short_option(int,char_const**,int,char_const**,int*)\n                  ::dash_z,&__dso_handle);\n  }\n  cVar3 = *(char *)((long)opt_00 + unaff_R13);\n  if (cVar3 == 'z') goto LAB_001bacb0;\n  if (0x7e < (int)cVar3 - 1U) goto LAB_001bac94;\n  ppcVar10 = (char **)gold::options::short_options[(int)cVar3];\n  if ((One_option *)ppcVar10 == (One_option *)0x0) goto LAB_001bac94;\n  do {\n    unaff_R13 = unaff_R13 + 1;\n    opt = (byte *)((long)opt_00 + unaff_R13);\n    if (((One_option *)ppcVar10)->helparg == (char *)0x0) {\n      arg = (char *)0x0;\n      bVar4 = *opt;\n      uVar5 = new_i;\n      opt = (byte *)arg;\n      if (bVar4 == 0) {\n        uVar5 = new_i + 1;\n      }\n    }\n    else {\n      uVar1 = new_i + 1;\n      ppcVar11 = (char **)(ulong)uVar1;\n      uVar5 = uVar1;\n      if (*opt == 0) {\n        if (((One_option *)ppcVar10)->optional_arg == false) {\n          if (argc <= (int)uVar1) goto LAB_001baedd;\n          uVar5 = new_i + 2;\n          opt = (byte *)argv[(int)uVar1];\n        }\n        else {\n          opt = (byte *)((One_option *)ppcVar10)->default_value;\n        }\n      }\n    }\n    new_i = uVar5;\n    arg = (char *)opt;\n    if ((One_option *)ppcVar10 ==\n        (One_option *)\n        &(anonymous_namespace)::parse_short_option(int,char_const**,int,char_const**,int*)::dash_z)\n    {\n      bVar16 = ppcVar10 ==\n               &(anonymous_namespace)::parse_short_option(int,char_const**,int,char_const**,int*)::\n                dash_z;\n      bVar15 = ppcVar10 <\n               &(anonymous_namespace)::parse_short_option(int,char_const**,int,char_const**,int*)::\n                dash_z;\n      dummy_i = 0;\n      lVar12 = 6;\n      pbVar13 = opt;\n      pbVar14 = (byte *)0x314883;\n      do {\n        if (lVar12 == 0) break;\n        lVar12 = lVar12 + -1;\n        bVar15 = *pbVar13 < *pbVar14;\n        bVar16 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar17 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar17 * -2 + 1;\n      } while (bVar16);\n      if ((!bVar15 && !bVar16) == bVar15) {\n        arg = "buildd";\n      }\n      ppcVar11 = &arg;\n      ppcVar10 = (char **)anon_unknown.dwarf_9fbd7f::parse_long_option(1,&arg,true,&arg,&dummy_i);\n      if ((One_option *)ppcVar10 == (One_option *)0x0) {\n        pcVar9 = (char *)gettext("unknown -z option");\n        anon_unknown.dwarf_9fbd7f::usage(pcVar9,(char *)opt);\n        uVar1 = new_i;\nLAB_001baedd:\n        new_i = uVar1;\n        pcVar9 = (char *)gettext("missing argument");\n        anon_unknown.dwarf_9fbd7f::usage(pcVar9,(char *)opt_00);\n                    /* catch() { ... } // from try @ 001bad8f with catch @ 001baef4 */\n        iVar7 = process_one_option((int)pcVar9,opt_00,extraout_EDX,(bool *)ppcVar11);\n        return iVar7;\n      }\n    }\n    (**((One_option *)ppcVar10)->reader->_vptr_Struct_var)\n              (((One_option *)ppcVar10)->reader,*ppcVar2,arg,this,&this->options_);\n    if (new_i != iVar7) {\n      return new_i;\n    }\n    opt_00 = (char **)argv[unaff_R15];\n    if (*(char *)opt_00 == '-') goto LAB_001babe8;\nLAB_001bac94:\n    opt_00 = (char **)*ppcVar2;\n    pcVar9 = (char *)gettext("unknown option");\n    anon_unknown.dwarf_9fbd7f::usage(pcVar9,(char *)opt_00);\nLAB_001bacb0:\n    ppcVar10 = &(anonymous_namespace)::parse_short_option(int,char_const**,int,char_const**,int*)::\n                dash_z;\n  } while( true );\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  uint uVar1;\n  char **ppcVar2;\n  byte *opt;\n  char cVar3;\n  byte bVar4;\n  uint uVar5;\n  int iVar6;\n  int iVar7;\n  One_option *pOVar8;\n  char *pcVar9;\n  char **ppcVar10;\n  char **ppcVar11;\n  long lVar12;\n  int extraout_EDX;\n  char **opt_00;\n  byte *pbVar13;\n  byte *pbVar14;\n  long unaff_R13;\n  long unaff_R15;\n  bool bVar15;\n  bool bVar16;\n  byte bVar17;\n  int new_i;\n  int dummy_i;\n  char *arg;\n  \n  bVar17 = 0;\n  ppcVar2 = argv + i;\n  pcVar9 = *ppcVar2;\n  if ((*pcVar9 != '-') || (*no_more_options != false)) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/options.cc",0x5f0,"process_one_option");\n  }\n  if ((pcVar9[1] == '-') && (pcVar9[2] == '\0')) {\n    *no_more_options = true;\n    return i + 1;\n  }\n  arg = (char *)0x0;\n  new_i = i;\n  pOVar8 = anon_unknown.dwarf_9fbd7f::parse_long_option(argc,argv,false,&arg,&new_i);\n  iVar7 = new_i;\n  if (pOVar8 != (One_option *)0x0) {\n    (**pOVar8->reader->_vptr_Struct_var)(pOVar8->reader,*ppcVar2,arg,this,&this->options_);\n    return new_i;\n  }\n  if (i != new_i) goto LAB_001bac94;\n  unaff_R15 = (long)new_i;\n  unaff_R13 = 1;\n  opt_00 = (char **)argv[unaff_R15];\n  if (*(char *)opt_00 != '-') goto LAB_001bac94;\nLAB_001babe8:\n  if (((anonymous_namespace)::parse_short_option(int,char_const**,int,char_const**,int*)::dash_z ==\n       '\0') &&\n     (iVar6 = __cxa_guard_acquire(&(anonymous_namespace)::\n                                   parse_short_option(int,char_const**,int,char_const**,int*)::\n                                   dash_z), iVar6 != 0)) {\n    (anonymous_namespace)::parse_short_option(int,char_const**,int,char_const**,int*)::dash_z =\n         &DAT_003c7cb0;\n                    /* try { // try from 001bacef to 001bacf3 has its CatchHandler @ 001baefc */\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)::parse_short_option(int,char_const**,int,char_const**,int*)::\n                dash_z,"");\n    _DAT_003c7cc0 = 4;\n    DAT_003c7cc4 = 0x7a;\n    _DAT_003c7cc8 = "";\n    DAT_003c7cd0 = 0;\n    _DAT_003c7cd8 = "Z-OPTION";\n    DAT_003c7ce0 = 0;\n    _DAT_003c7ce8 = 0;\n    DAT_003c7cf0 = 0;\n    pcVar9 = strchr((anonymous_namespace)::\n                    parse_short_option(int,char_const**,int,char_const**,int*)::dash_z,0x5f);\n    if (pcVar9 != (char *)0x0) {\n      do {\n        *pcVar9 = '-';\n        pcVar9 = strchr(pcVar9,0x5f);\n      } while (pcVar9 != (char *)0x0);\n      if ((DAT_003c7cd0 != 0) && (gold::options::ready_to_register != false)) {\n                    /* try { // try from 001bad8f to 001bad93 has its CatchHandler @ 001baef4 */\n        gold::options::One_option::register_option\n                  ((One_option *)\n                   &(anonymous_namespace)::\n                    parse_short_option(int,char_const**,int,char_const**,int*)::dash_z);\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)::parse_short_option(int,char_const**,int,char_const**,int*)\n                  ::dash_z,&__dso_handle);\n  }\n  cVar3 = *(char *)((long)opt_00 + unaff_R13);\n  if (cVar3 == 'z') goto LAB_001bacb0;\n  if (0x7e < (int)cVar3 - 1U) goto LAB_001bac94;\n  ppcVar10 = (char **)gold::options::short_options[(int)cVar3];\n  if ((One_option *)ppcVar10 == (One_option *)0x0) goto LAB_001bac94;\n  do {\n    unaff_R13 = unaff_R13 + 1;\n    opt = (byte *)((long)opt_00 + unaff_R13);\n    if (((One_option *)ppcVar10)->helparg == (char *)0x0) {\n      arg = (char *)0x0;\n      bVar4 = *opt;\n      uVar5 = new_i;\n      opt = (byte *)arg;\n      if (bVar4 == 0) {\n        uVar5 = new_i + 1;\n      }\n    }\n    else {\n      uVar1 = new_i + 1;\n      ppcVar11 = (char **)(ulong)uVar1;\n      uVar5 = uVar1;\n      if (*opt == 0) {\n        if (((One_option *)ppcVar10)->optional_arg == false) {\n          if (argc <= (int)uVar1) goto LAB_001baedd;\n          uVar5 = new_i + 2;\n          opt = (byte *)argv[(int)uVar1];\n        }\n        else {\n          opt = (byte *)((One_option *)ppcVar10)->default_value;\n        }\n      }\n    }\n    new_i = uVar5;\n    arg = (char *)opt;\n    if ((One_option *)ppcVar10 ==\n        (One_option *)\n        &(anonymous_namespace)::parse_short_option(int,char_const**,int,char_const**,int*)::dash_z)\n    {\n      bVar16 = ppcVar10 ==\n               &(anonymous_namespace)::parse_short_option(int,char_const**,int,char_const**,int*)::\n                dash_z;\n      bVar15 = ppcVar10 <\n               &(anonymous_namespace)::parse_short_option(int,char_const**,int,char_const**,int*)::\n                dash_z;\n      dummy_i = 0;\n      lVar12 = 6;\n      pbVar13 = opt;\n      pbVar14 = (byte *)0x314883;\n      do {\n        if (lVar12 == 0) break;\n        lVar12 = lVar12 + -1;\n        bVar15 = *pbVar13 < *pbVar14;\n        bVar16 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar17 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar17 * -2 + 1;\n      } while (bVar16);\n      if ((!bVar15 && !bVar16) == bVar15) {\n        arg = "buildd";\n      }\n      ppcVar11 = &arg;\n      ppcVar10 = (char **)anon_unknown.dwarf_9fbd7f::parse_long_option(1,&arg,true,&arg,&dummy_i);\n      if ((One_option *)ppcVar10 == (One_option *)0x0) {\n        pcVar9 = (char *)gettext("unknown -z option");\n        anon_unknown.dwarf_9fbd7f::usage(pcVar9,(char *)opt);\n        uVar1 = new_i;\nLAB_001baedd:\n        new_i = uVar1;\n        pcVar9 = (char *)gettext("missing argument");\n        anon_unknown.dwarf_9fbd7f::usage(pcVar9,(char *)opt_00);\n                    /* catch() { ... } // from try @ 001bad8f with catch @ 001baef4 */\n        iVar7 = process_one_option((int)pcVar9,opt_00,extraout_EDX,(bool *)ppcVar11);\n        return iVar7;\n      }\n    }\n    (**((One_option *)ppcVar10)->reader->_vptr_Struct_var)\n              (((One_option *)ppcVar10)->reader,*ppcVar2,arg,this,&this->options_);\n    if (new_i != iVar7) {\n      return new_i;\n    }\n    opt_00 = (char **)argv[unaff_R15];\n    if (*(char *)opt_00 == '-') goto LAB_001babe8;\nLAB_001bac94:\n    opt_00 = (char **)*ppcVar2;\n    pcVar9 = (char *)gettext("unknown option");\n    anon_unknown.dwarf_9fbd7f::usage(pcVar9,(char *)opt_00);\nLAB_001bacb0:\n    ppcVar10 = &(anonymous_namespace)::parse_short_option(int,char_const**,int,char_const**,int*)::\n                dash_z;\n  } while( true );\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  uint uVar1;\n  char **ppcVar2;\n  byte *opt;\n  char cVar3;\n  byte bVar4;\n  uint uVar5;\n  int iVar6;\n  int iVar7;\n  One_option *pOVar8;\n  char *pcVar9;\n  char **ppcVar10;\n  char **ppcVar11;\n  long lVar12;\n  int extraout_EDX;\n  char **opt_00;\n  byte *pbVar13;\n  byte *pbVar14;\n  long unaff_R13;\n  long unaff_R15;\n  bool bVar15;\n  bool bVar16;\n  byte bVar17;\n  int new_i;\n  int dummy_i;\n  char *arg;\n  \n  bVar17 = 0;\n  ppcVar2 = argv + i;\n  pcVar9 = *ppcVar2;\n  if ((*pcVar9 != '-') || (*no_more_options != false)) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/options.cc",0x5f0,"process_one_option");\n  }\n  if ((pcVar9[1] == '-') && (pcVar9[2] == '\0')) {\n    *no_more_options = true;\n    return i + 1;\n  }\n  arg = (char *)0x0;\n  new_i = i;\n  pOVar8 = anon_unknown.dwarf_9fbd7f::parse_long_option(argc,argv,false,&arg,&new_i);\n  iVar7 = new_i;\n  if (pOVar8 != (One_option *)0x0) {\n    (**pOVar8->reader->_vptr_Struct_var)(pOVar8->reader,*ppcVar2,arg,this,&this->options_);\n    return new_i;\n  }\n  if (i != new_i) goto LAB_001bac94;\n  unaff_R15 = (long)new_i;\n  unaff_R13 = 1;\n  opt_00 = (char **)argv[unaff_R15];\n  if (*(char *)opt_00 != '-') goto LAB_001bac94;\nLAB_001babe8:\n  if (((anonymous_namespace)::parse_short_option(int,char_const**,int,char_const**,int*)::dash_z ==\n       '\0') &&\n     (iVar6 = __cxa_guard_acquire(&(anonymous_namespace)::\n                                   parse_short_option(int,char_const**,int,char_const**,int*)::\n                                   dash_z), iVar6 != 0)) {\n    (anonymous_namespace)::parse_short_option(int,char_const**,int,char_const**,int*)::dash_z =\n         &DAT_003c7cb0;\n                    /* try { // try from 001bacef to 001bacf3 has its CatchHandler @ 001baefc */\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)::parse_short_option(int,char_const**,int,char_const**,int*)::\n                dash_z,"");\n    _DAT_003c7cc0 = 4;\n    DAT_003c7cc4 = 0x7a;\n    _DAT_003c7cc8 = "";\n    DAT_003c7cd0 = 0;\n    _DAT_003c7cd8 = "Z-OPTION";\n    DAT_003c7ce0 = 0;\n    _DAT_003c7ce8 = 0;\n    DAT_003c7cf0 = 0;\n    pcVar9 = strchr((anonymous_namespace)::\n                    parse_short_option(int,char_const**,int,char_const**,int*)::dash_z,0x5f);\n    if (pcVar9 != (char *)0x0) {\n      do {\n        *pcVar9 = '-';\n        pcVar9 = strchr(pcVar9,0x5f);\n      } while (pcVar9 != (char *)0x0);\n      if ((DAT_003c7cd0 != 0) && (gold::options::ready_to_register != false)) {\n                    /* try { // try from 001bad8f to 001bad93 has its CatchHandler @ 001baef4 */\n        gold::options::One_option::register_option\n                  ((One_option *)\n                   &(anonymous_namespace)::\n                    parse_short_option(int,char_const**,int,char_const**,int*)::dash_z);\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)::parse_short_option(int,char_const**,int,char_const**,int*)\n                  ::dash_z,&__dso_handle);\n  }\n  cVar3 = *(char *)((long)opt_00 + unaff_R13);\n  if (cVar3 == 'z') goto LAB_001bacb0;\n  if (0x7e < (int)cVar3 - 1U) goto LAB_001bac94;\n  ppcVar10 = (char **)gold::options::short_options[(int)cVar3];\n  if ((One_option *)ppcVar10 == (One_option *)0x0) goto LAB_001bac94;\n  do {\n    unaff_R13 = unaff_R13 + 1;\n    opt = (byte *)((long)opt_00 + unaff_R13);\n    if (((One_option *)ppcVar10)->helparg == (char *)0x0) {\n      arg = (char *)0x0;\n      bVar4 = *opt;\n      uVar5 = new_i;\n      opt = (byte *)arg;\n      if (bVar4 == 0) {\n        uVar5 = new_i + 1;\n      }\n    }\n    else {\n      uVar1 = new_i + 1;\n      ppcVar11 = (char **)(ulong)uVar1;\n      uVar5 = uVar1;\n      if (*opt == 0) {\n        if (((One_option *)ppcVar10)->optional_arg == false) {\n          if (argc <= (int)uVar1) goto LAB_001baedd;\n          uVar5 = new_i + 2;\n          opt = (byte *)argv[(int)uVar1];\n        }\n        else {\n          opt = (byte *)((One_option *)ppcVar10)->default_value;\n        }\n      }\n    }\n    new_i = uVar5;\n    arg = (char *)opt;\n    if ((One_option *)ppcVar10 ==\n        (One_option *)\n        &(anonymous_namespace)::parse_short_option(int,char_const**,int,char_const**,int*)::dash_z)\n    {\n      bVar16 = ppcVar10 ==\n               &(anonymous_namespace)::parse_short_option(int,char_const**,int,char_const**,int*)::\n                dash_z;\n      bVar15 = ppcVar10 <\n               &(anonymous_namespace)::parse_short_option(int,char_const**,int,char_const**,int*)::\n                dash_z;\n      dummy_i = 0;\n      lVar12 = 6;\n      pbVar13 = opt;\n      pbVar14 = (byte *)0x314883;\n      do {\n        if (lVar12 == 0) break;\n        lVar12 = lVar12 + -1;\n        bVar15 = *pbVar13 < *pbVar14;\n        bVar16 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar17 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar17 * -2 + 1;\n      } while (bVar16);\n      if ((!bVar15 && !bVar16) == bVar15) {\n        arg = "buildd";\n      }\n      ppcVar11 = &arg;\n      ppcVar10 = (char **)anon_unknown.dwarf_9fbd7f::parse_long_option(1,&arg,true,&arg,&dummy_i);\n      if ((One_option *)ppcVar10 == (One_option *)0x0) {\n        pcVar9 = (char *)gettext("unknown -z option");\n        anon_unknown.dwarf_9fbd7f::usage(pcVar9,(char *)opt);\n        uVar1 = new_i;\nLAB_001baedd:\n        new_i = uVar1;\n        pcVar9 = (char *)gettext("missing argument");\n        anon_unknown.dwarf_9fbd7f::usage(pcVar9,(char *)opt_00);\n                    /* catch() { ... } // from try @ 001bad8f with catch @ 001baef4 */\n        iVar7 = process_one_option((int)pcVar9,opt_00,extraout_EDX,(bool *)ppcVar11);\n        return iVar7;\n      }\n    }\n    (**((One_option *)ppcVar10)->reader->_vptr_Struct_var)\n              (((One_option *)ppcVar10)->reader,*ppcVar2,arg,this,&this->options_);\n    if (new_i != iVar7) {\n      return new_i;\n    }\n    opt_00 = (char **)argv[unaff_R15];\n    if (*(char *)opt_00 == '-') goto LAB_001babe8;\nLAB_001bac94:\n    opt_00 = (char **)*ppcVar2;\n    pcVar9 = (char *)gettext("unknown option");\n    anon_unknown.dwarf_9fbd7f::usage(pcVar9,(char *)opt_00);\nLAB_001bacb0:\n    ppcVar10 = &(anonymous_namespace)::parse_short_option(int,char_const**,int,char_const**,int*)::\n                dash_z;\n  } while( true );\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "char **ppcVar2;" primitive_type (pointer_declarator "**ppcVar2" * (pointer_declarator "*ppcVar2" * identifier)) ;) (declaration "byte *opt;" type_identifier (pointer_declarator "*opt" * identifier) ;) (declaration "char cVar3;" primitive_type identifier ;) (declaration "byte bVar4;" type_identifier identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "One_option *pOVar8;" type_identifier (pointer_declarator "*pOVar8" * identifier) ;) (declaration "char *pcVar9;" primitive_type (pointer_declarator "*pcVar9" * identifier) ;) (declaration "char **ppcVar10;" primitive_type (pointer_declarator "**ppcVar10" * (pointer_declarator "*ppcVar10" * identifier)) ;) (declaration "char **ppcVar11;" primitive_type (pointer_declarator "**ppcVar11" * (pointer_declarator "*ppcVar11" * identifier)) ;) (declaration "long lVar12;" (sized_type_specifier "long" long) identifier ;) (declaration "int extraout_EDX;" primitive_type identifier ;) (declaration "char **opt_00;" primitive_type (pointer_declarator "**opt_00" * (pointer_declarator "*opt_00" * identifier)) ;) (declaration "byte *pbVar13;" type_identifier (pointer_declarator "*pbVar13" * identifier) ;) (declaration "byte *pbVar14;" type_identifier (pointer_declarator "*pbVar14" * identifier) ;) (declaration "long unaff_R13;" (sized_type_specifier "long" long) identifier ;) (declaration "long unaff_R15;" (sized_type_specifier "long" long) identifier ;) (declaration "bool bVar15;" primitive_type identifier ;) (declaration "bool bVar16;" primitive_type identifier ;) (declaration "byte bVar17;" type_identifier identifier ;) (declaration "int new_i;" primitive_type identifier ;) (declaration "int dummy_i;" primitive_type identifier ;) (declaration "char *arg;" primitive_type (pointer_declarator "*arg" * identifier) ;) (expression_statement "bVar17 = 0;" (assignment_expression "bVar17 = 0" identifier = number_literal) ;) (expression_statement "ppcVar2 = argv + i;" (assignment_expression "ppcVar2 = argv + i" identifier = (binary_expression "argv + i" identifier + identifier)) ;) (expression_statement "pcVar9 = *ppcVar2;" (assignment_expression "pcVar9 = *ppcVar2" identifier = (pointer_expression "*ppcVar2" * identifier)) ;) (if_statement "if ((*pcVar9 != '-') || (*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 "((*pcVar9 != '-') || (*no_more_options != false))" ( (binary_expression "(*pcVar9 != '-') || (*no_more_options != false)" (parenthesized_expression "(*pcVar9 != '-')" ( (binary_expression "*pcVar9 != '-'" (pointer_expression "*pcVar9" * 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 ((pcVar9[1] == '-') && (pcVar9[2] == '\0')) {\n    *no_more_options = true;\n    return i + 1;\n  }" if (parenthesized_expression "((pcVar9[1] == '-') && (pcVar9[2] == '\0'))" ( (binary_expression "(pcVar9[1] == '-') && (pcVar9[2] == '\0')" (parenthesized_expression "(pcVar9[1] == '-')" ( (binary_expression "pcVar9[1] == '-'" (subscript_expression "pcVar9[1]" identifier [ number_literal ]) == (char_literal "'-'" ' character ')) )) && (parenthesized_expression "(pcVar9[2] == '\0')" ( (binary_expression "pcVar9[2] == '\0'" (subscript_expression "pcVar9[2]" identifier [ number_literal ]) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n    *no_more_options = true;\n    return i + 1;\n  }" { (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) ;) })) (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 "new_i = i;" (assignment_expression "new_i = i" identifier = identifier) ;) (ERROR "pOVar8 = anon_unknown.dwarf_9fbd7f::" (assignment_expression "pOVar8 = anon_unknown.dwarf_9fbd7f" identifier = (field_expression "anon_unknown.dwarf_9fbd7f" 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 "iVar7 = new_i;" (assignment_expression "iVar7 = new_i" identifier = identifier) ;) (if_statement "if (pOVar8 != (One_option *)0x0) {\n    (**pOVar8->reader->_vptr_Struct_var)(pOVar8->reader,*ppcVar2,arg,this,&this->options_);\n    return new_i;\n  }" if (parenthesized_expression "(pOVar8 != (One_option *)0x0)" ( (binary_expression "pOVar8 != (One_option *)0x0" identifier != (cast_expression "(One_option *)0x0" ( (type_descriptor "One_option *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    (**pOVar8->reader->_vptr_Struct_var)(pOVar8->reader,*ppcVar2,arg,this,&this->options_);\n    return new_i;\n  }" { (expression_statement "(**pOVar8->reader->_vptr_Struct_var)(pOVar8->reader,*ppcVar2,arg,this,&this->options_);" (call_expression "(**pOVar8->reader->_vptr_Struct_var)(pOVar8->reader,*ppcVar2,arg,this,&this->options_)" (parenthesized_expression "(**pOVar8->reader->_vptr_Struct_var)" ( (pointer_expression "**pOVar8->reader->_vptr_Struct_var" * (pointer_expression "*pOVar8->reader->_vptr_Struct_var" * (field_expression "pOVar8->reader->_vptr_Struct_var" (field_expression "pOVar8->reader" identifier -> field_identifier) -> field_identifier))) )) (argument_list "(pOVar8->reader,*ppcVar2,arg,this,&this->options_)" ( (field_expression "pOVar8->reader" identifier -> field_identifier) , (pointer_expression "*ppcVar2" * 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) goto LAB_001bac94;" if (parenthesized_expression "(i != new_i)" ( (binary_expression "i != new_i" identifier != identifier) )) (goto_statement "goto LAB_001bac94;" goto statement_identifier ;)) (expression_statement "unaff_R15 = (long)new_i;" (assignment_expression "unaff_R15 = (long)new_i" identifier = (cast_expression "(long)new_i" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (expression_statement "unaff_R13 = 1;" (assignment_expression "unaff_R13 = 1" identifier = number_literal) ;) (expression_statement "opt_00 = (char **)argv[unaff_R15];" (assignment_expression "opt_00 = (char **)argv[unaff_R15]" identifier = (cast_expression "(char **)argv[unaff_R15]" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "argv[unaff_R15]" identifier [ identifier ]))) ;) (if_statement "if (*(char *)opt_00 != '-') goto LAB_001bac94;" if (parenthesized_expression "(*(char *)opt_00 != '-')" ( (binary_expression "*(char *)opt_00 != '-'" (pointer_expression "*(char *)opt_00" * (cast_expression "(char *)opt_00" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) != (char_literal "'-'" ' character ')) )) (goto_statement "goto LAB_001bac94;" goto statement_identifier ;)) (labeled_statement "LAB_001babe8:\n  if (((anonymous_namespace)::parse_short_option(int,char_const**,int,char_const**,int*)::dash_z ==\n       '\0') &&\n     (iVar6 = __cxa_guard_acquire(&(anonymous_namespace)::\n                                   parse_short_option(int,char_const**,int,char_const**,int*)::\n                                   dash_z), iVar6 != 0)) {\n    (anonymous_namespace)::parse_short_option(int,char_const**,int,char_const**,int*)::dash_z =\n         &DAT_003c7cb0;" statement_identifier : (if_statement "if (((anonymous_namespace)::parse_short_option(int,char_const**,int,char_const**,int*)::dash_z ==\n       '\0') &&\n     (iVar6 = __cxa_guard_acquire(&(anonymous_namespace)::\n                                   parse_short_option(int,char_const**,int,char_const**,int*)::\n                                   dash_z), iVar6 != 0)) {\n    (anonymous_namespace)::parse_short_option(int,char_const**,int,char_const**,int*)::dash_z =\n         &DAT_003c7cb0;" if (parenthesized_expression "(((anonymous_namespace)::parse_short_option(int,char_const**,int,char_const**,int*)::dash_z ==\n       '\0') &&\n     (iVar6 = __cxa_guard_acquire(&(anonymous_namespace)::\n                                   parse_short_option(int,char_const**,int,char_const**,int*)::\n                                   dash_z), iVar6 != 0)) {\n    (anonymous_namespace)::parse_short_option(int,char_const**,int,char_const**,int*)::dash_z =\n         &DAT_003c7cb0" ( (comma_expression "((anonymous_namespace)::parse_short_option(int,char_const**,int,char_const**,int*)::dash_z ==\n       '\0') &&\n     (iVar6 = __cxa_guard_acquire(&(anonymous_namespace)::\n                                   parse_short_option(int,char_const**,int,char_const**,int*)::\n                                   dash_z), iVar6 != 0)) {\n    (anonymous_namespace)::parse_short_option(int,char_const**,int,char_const**,int*)::dash_z =\n         &DAT_003c7cb0" (binary_expression "((anonymous_namespace)::parse_short_option(int,char_const**,int,char_const**,int*)::dash_z ==\n       '\0') &&\n     (iVar6 = __cxa_guard_acquire(&(anonymous_namespace)::\n                                   parse_short_option(int,char_const**,int,char_const**,int*)::\n                                   dash_z), iVar6 != 0)) {\n    (anonymous_namespace)" (parenthesized_expression "((anonymous_namespace)::parse_short_option(int,char_const**,int,char_const**,int*)::dash_z ==\n       '\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 ==\n       '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) && (call_expression "(iVar6 = __cxa_guard_acquire(&(anonymous_namespace)::\n                                   parse_short_option(int,char_const**,int,char_const**,int*)::\n                                   dash_z), iVar6 != 0)) {\n    (anonymous_namespace)" (parenthesized_expression "(iVar6 = __cxa_guard_acquire(&(anonymous_namespace)::\n                                   parse_short_option(int,char_const**,int,char_const**,int*)::\n                                   dash_z), iVar6 != 0))" ( (assignment_expression "iVar6 = __cxa_guard_acquire(&(anonymous_namespace)::\n                                   parse_short_option(int,char_const**,int,char_const**,int*)::\n                                   dash_z), iVar6 != 0)" identifier = (call_expression "__cxa_guard_acquire(&(anonymous_namespace)::\n                                   parse_short_option(int,char_const**,int,char_const**,int*)::\n                                   dash_z), iVar6 != 0)" identifier (argument_list "(&(anonymous_namespace)::\n                                   parse_short_option(int,char_const**,int,char_const**,int*)::\n                                   dash_z), iVar6 != 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 ")::" ) : :) identifier) ))) , (binary_expression "iVar6 != 0" identifier != number_literal) )))) )) (ERROR "{" {) (argument_list "(anonymous_namespace)" ( identifier )))) (ERROR "::parse_short_option(int" : : identifier ( primitive_type) , (comma_expression "char_const**,int,char_const**,int*)::dash_z =\n         &DAT_003c7cb0" (binary_expression "char_const**" identifier * (pointer_expression "*" * identifier)) , (comma_expression "int,char_const**,int*)::dash_z =\n         &DAT_003c7cb0" identifier , (comma_expression "char_const**,int*)::dash_z =\n         &DAT_003c7cb0" (binary_expression "char_const**" identifier * (pointer_expression "*" * identifier)) , (binary_expression "int*)::dash_z =\n         &DAT_003c7cb0" identifier * (ERROR ")::" ) : :) (assignment_expression "dash_z =\n         &DAT_003c7cb0" identifier = (pointer_expression "&DAT_003c7cb0" & identifier))))))) )) (expression_statement ";" ;))) 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)::parse_short_option(int,char_const**,int,char_const**,int*)::\n                dash_z,"");" 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)::parse_short_option(int,char_const**,int,char_const**,int*)::\n                dash_z,"");" (binary_expression "_M_construct<char_const*>\n              ((basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n               &(anonymous_namespace)::parse_short_option(int,char_const**,int,char_const**,int*)::\n                dash_z,"")" (binary_expression "_M_construct<char_const" identifier < identifier) (ERROR "*" *) > (parenthesized_expression "((basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n               &(anonymous_namespace)::parse_short_option(int,char_const**,int,char_const**,int*)::\n                dash_z,"")" ( (parenthesized_expression "(basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n               &(anonymous_namespace)::parse_short_option(int,char_const**,int,char_const**,int*)::\n                dash_z,"")" ( (ERROR "basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n               &(anonymous_namespace)::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,""" identifier , (string_literal """" " ")) )) ))) ;)) (expression_statement "_DAT_003c7cc0 = 4;" (assignment_expression "_DAT_003c7cc0 = 4" identifier = number_literal) ;) (expression_statement "DAT_003c7cc4 = 0x7a;" (assignment_expression "DAT_003c7cc4 = 0x7a" identifier = number_literal) ;) (expression_statement "_DAT_003c7cc8 = "";" (assignment_expression "_DAT_003c7cc8 = """ identifier = (string_literal """" " ")) ;) (expression_statement "DAT_003c7cd0 = 0;" (assignment_expression "DAT_003c7cd0 = 0" identifier = number_literal) ;) (expression_statement "_DAT_003c7cd8 = "Z-OPTION";" (assignment_expression "_DAT_003c7cd8 = "Z-OPTION"" identifier = (string_literal ""Z-OPTION"" " string_content ")) ;) (expression_statement "DAT_003c7ce0 = 0;" (assignment_expression "DAT_003c7ce0 = 0" identifier = number_literal) ;) (expression_statement "_DAT_003c7ce8 = 0;" (assignment_expression "_DAT_003c7ce8 = 0" identifier = number_literal) ;) (expression_statement "DAT_003c7cf0 = 0;" (assignment_expression "DAT_003c7cf0 = 0" identifier = number_literal) ;) (expression_statement "pcVar9 = strchr((anonymous_namespace)::\n                    parse_short_option(int,char_const**,int,char_const**,int*)::dash_z,0x5f);" (assignment_expression "pcVar9 = 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 (pcVar9 != (char *)0x0) {\n      do {\n        *pcVar9 = '-';\n        pcVar9 = strchr(pcVar9,0x5f);\n      } while (pcVar9 != (char *)0x0);\n      if ((DAT_003c7cd0 != 0) && (gold::options::ready_to_register != false)) {\n                    /* try { // try from 001bad8f to 001bad93 has its CatchHandler @ 001baef4 */\n        gold::options::One_option::register_option\n                  ((One_option *)\n                   &(anonymous_namespace)::\n                    parse_short_option(int,char_const**,int,char_const**,int*)::dash_z);\n      }\n    }" if (parenthesized_expression "(pcVar9 != (char *)0x0)" ( (binary_expression "pcVar9 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      do {\n        *pcVar9 = '-';\n        pcVar9 = strchr(pcVar9,0x5f);\n      } while (pcVar9 != (char *)0x0);\n      if ((DAT_003c7cd0 != 0) && (gold::options::ready_to_register != false)) {\n                    /* try { // try from 001bad8f to 001bad93 has its CatchHandler @ 001baef4 */\n        gold::options::One_option::register_option\n                  ((One_option *)\n                   &(anonymous_namespace)::\n                    parse_short_option(int,char_const**,int,char_const**,int*)::dash_z);\n      }\n    }" { (do_statement "do {\n        *pcVar9 = '-';\n        pcVar9 = strchr(pcVar9,0x5f);\n      } while (pcVar9 != (char *)0x0);" do (compound_statement "{\n        *pcVar9 = '-';\n        pcVar9 = strchr(pcVar9,0x5f);\n      }" { (expression_statement "*pcVar9 = '-';" (assignment_expression "*pcVar9 = '-'" (pointer_expression "*pcVar9" * identifier) = (char_literal "'-'" ' character ')) ;) (expression_statement "pcVar9 = strchr(pcVar9,0x5f);" (assignment_expression "pcVar9 = strchr(pcVar9,0x5f)" identifier = (call_expression "strchr(pcVar9,0x5f)" identifier (argument_list "(pcVar9,0x5f)" ( identifier , number_literal )))) ;) }) while (parenthesized_expression "(pcVar9 != (char *)0x0)" ( (binary_expression "pcVar9 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (if_statement "if ((DAT_003c7cd0 != 0) && (gold::options::ready_to_register != false)) {\n                    /* try { // try from 001bad8f to 001bad93 has its CatchHandler @ 001baef4 */\n        gold::options::One_option::register_option\n                  ((One_option *)\n                   &(anonymous_namespace)::\n                    parse_short_option(int,char_const**,int,char_const**,int*)::dash_z);\n      }" if (parenthesized_expression "((DAT_003c7cd0 != 0) && (gold::options::ready_to_register != false))" ( (binary_expression "(DAT_003c7cd0 != 0) && (gold::options::ready_to_register != false)" (parenthesized_expression "(DAT_003c7cd0 != 0)" ( (binary_expression "DAT_003c7cd0 != 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 001bad8f to 001bad93 has its CatchHandler @ 001baef4 */\n        gold::options::One_option::register_option\n                  ((One_option *)\n                   &(anonymous_namespace)::\n                    parse_short_option(int,char_const**,int,char_const**,int*)::dash_z);\n      }" { comment (labeled_statement "gold::options::One_option::register_option\n                  ((One_option *)\n                   &(anonymous_namespace)::\n                    parse_short_option(int,char_const**,int,char_const**,int*)::dash_z);" statement_identifier : (ERROR ":" :) (labeled_statement "options::One_option::register_option\n                  ((One_option *)\n                   &(anonymous_namespace)::\n                    parse_short_option(int,char_const**,int,char_const**,int*)::dash_z);" statement_identifier : (ERROR ":" :) (labeled_statement "One_option::register_option\n                  ((One_option *)\n                   &(anonymous_namespace)::\n                    parse_short_option(int,char_const**,int,char_const**,int*)::dash_z);" statement_identifier (ERROR "::register_option\n                  ((One_option *)\n                   &(anonymous_namespace):" : : identifier ( (cast_expression "(One_option *)\n                   &(anonymous_namespace)" ( (type_descriptor "One_option *" type_identifier (abstract_pointer_declarator "*" *)) ) (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 "__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)::parse_short_option(int,char_const**,int,char_const**,int*)\n                  ::dash_z,&__dso_handle);\n  }\n  cVar3 = *(char *)((long)opt_00 + unaff_R13);\n  if (cVar3 == 'z') goto LAB_001bacb0;\n  if (0x7e < (int)cVar3 - 1U) goto LAB_001bac94;\n  ppcVar10 = (char **)gold::options::short_options[(int)cVar3];\n  if ((One_option *)ppcVar10 == (One_option *)0x0) goto LAB_001bac94;\n  do {\n    unaff_R13 = unaff_R13 + 1;\n    opt = (byte *)((long)opt_00 + unaff_R13);\n    if (((One_option *)ppcVar10)->helparg == (char *)0x0) {\n      arg = (char *)0x0;\n      bVar4 = *opt;\n      uVar5 = new_i;\n      opt = (byte *)arg;\n      if (bVar4 == 0) {\n        uVar5 = new_i + 1;\n      }\n    }\n    else {\n      uVar1 = new_i + 1;\n      ppcVar11 = (char **)(ulong)uVar1;\n      uVar5 = uVar1;\n      if (*opt == 0) {\n        if (((One_option *)ppcVar10)->optional_arg == false) {\n          if (argc <= (int)uVar1) goto LAB_001baedd;\n          uVar5 = new_i + 2;\n          opt = (byte *)argv[(int)uVar1];\n        }\n        else {\n          opt = (byte *)((One_option *)ppcVar10)->default_value;\n        }\n      }\n    }\n    new_i = uVar5;\n    arg = (char *)opt;\n    if ((One_option *)ppcVar10 ==\n        (One_option *)\n        &(anonymous_namespace)::parse_short_option(int,char_const**,int,char_const**,int*)::dash_z)\n    {\n      bVar16 = ppcVar10 ==\n               &(anonymous_namespace)::parse_short_option(int,char_const**,int,char_const**,int*)::\n                dash_z;\n      bVar15 = ppcVar10 <\n               &(anonymous_namespace)::parse_short_option(int,char_const**,int,char_const**,int*)::\n                dash_z;\n      dummy_i = 0;\n      lVar12 = 6;\n      pbVar13 = opt;\n      pbVar14 = (byte *)0x314883;\n      do {\n        if (lVar12 == 0) break;\n        lVar12 = lVar12 + -1;\n        bVar15 = *pbVar13 < *pbVar14;\n        bVar16 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar17 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar17 * -2 + 1;\n      } while (bVar16);\n      if ((!bVar15 && !bVar16) == bVar15) {\n        arg = "buildd";\n      }\n      ppcVar11 = &arg;\n      ppcVar10 = (char **)anon_unknown.dwarf_9fbd7f::parse_long_option(1,&arg,true,&arg,&dummy_i);\n      if ((One_option *)ppcVar10 == (One_option *)0x0) {\n        pcVar9 = (char *)gettext("unknown -z option");\n        anon_unknown.dwarf_9fbd7f::usage(pcVar9,(char *)opt);\n        uVar1 = new_i;\nLAB_001baedd:\n        new_i = uVar1;\n        pcVar9 = (char *)gettext("missing argument");\n        anon_unknown.dwarf_9fbd7f::usage(pcVar9,(char *)opt_00);\n                    /* catch() { ... } // from try @ 001bad8f with catch @ 001baef4 */\n        iVar7 = process_one_option((int)pcVar9,opt_00,extraout_EDX,(bool *)ppcVar11);\n        return iVar7;\n      }\n    }\n    (**((One_option *)ppcVar10)->reader->_vptr_Struct_var)\n              (((One_option *)ppcVar10)->reader,*ppcVar2,arg,this,&this->options_);\n    if (new_i != iVar7) {\n      return new_i;\n    }\n    opt_00 = (char **)argv[unaff_R15];\n    if (*(char *)opt_00 == '-') goto LAB_001babe8;\nLAB_001bac94:\n    opt_00 = (char **)*ppcVar2;\n    pcVar9 = (char *)gettext("unknown option");\n    anon_unknown.dwarf_9fbd7f::usage(pcVar9,(char *)opt_00);\nLAB_001bacb0:\n    ppcVar10 = &(anonymous_namespace)::parse_short_option(int,char_const**,int,char_const**,int*)::\n                dash_z;\n  } while( true );" (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)::parse_short_option(int,char_const**,int,char_const**,int*)\n                  ::dash_z,&__dso_handle);\n  }\n  cVar3 = *(char *)((long)opt_00 + unaff_R13);\n  if (cVar3 == 'z') goto LAB_001bacb0;\n  if (0x7e < (int)cVar3 - 1U) goto LAB_001bac94;\n  ppcVar10 = (char **)gold::options::short_options[(int)cVar3];\n  if ((One_option *)ppcVar10 == (One_option *)0x0) goto LAB_001bac94;\n  do {\n    unaff_R13 = unaff_R13 + 1;\n    opt = (byte *)((long)opt_00 + unaff_R13);\n    if (((One_option *)ppcVar10)->helparg == (char *)0x0) {\n      arg = (char *)0x0;\n      bVar4 = *opt;\n      uVar5 = new_i;\n      opt = (byte *)arg;\n      if (bVar4 == 0) {\n        uVar5 = new_i + 1;\n      }\n    }\n    else {\n      uVar1 = new_i + 1;\n      ppcVar11 = (char **)(ulong)uVar1;\n      uVar5 = uVar1;\n      if (*opt == 0) {\n        if (((One_option *)ppcVar10)->optional_arg == false) {\n          if (argc <= (int)uVar1) goto LAB_001baedd;\n          uVar5 = new_i + 2;\n          opt = (byte *)argv[(int)uVar1];\n        }\n        else {\n          opt = (byte *)((One_option *)ppcVar10)->default_value;\n        }\n      }\n    }\n    new_i = uVar5;\n    arg = (char *)opt;\n    if ((One_option *)ppcVar10 ==\n        (One_option *)\n        &(anonymous_namespace)::parse_short_option(int,char_const**,int,char_const**,int*)::dash_z)\n    {\n      bVar16 = ppcVar10 ==\n               &(anonymous_namespace)::parse_short_option(int,char_const**,int,char_const**,int*)::\n                dash_z;\n      bVar15 = ppcVar10 <\n               &(anonymous_namespace)::parse_short_option(int,char_const**,int,char_const**,int*)::\n                dash_z;\n      dummy_i = 0;\n      lVar12 = 6;\n      pbVar13 = opt;\n      pbVar14 = (byte *)0x314883;\n      do {\n        if (lVar12 == 0) break;\n        lVar12 = lVar12 + -1;\n        bVar15 = *pbVar13 < *pbVar14;\n        bVar16 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar17 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar17 * -2 + 1;\n      } while (bVar16);\n      if ((!bVar15 && !bVar16) == bVar15) {\n        arg = "buildd";\n      }\n      ppcVar11 = &arg;\n      ppcVar10 = (char **)anon_unknown.dwarf_9fbd7f::parse_long_option(1,&arg,true,&arg,&dummy_i);\n      if ((One_option *)ppcVar10 == (One_option *)0x0) {\n        pcVar9 = (char *)gettext("unknown -z option");\n        anon_unknown.dwarf_9fbd7f::usage(pcVar9,(char *)opt);\n        uVar1 = new_i;\nLAB_001baedd:\n        new_i = uVar1;\n        pcVar9 = (char *)gettext("missing argument");\n        anon_unknown.dwarf_9fbd7f::usage(pcVar9,(char *)opt_00);\n                    /* catch() { ... } // from try @ 001bad8f with catch @ 001baef4 */\n        iVar7 = process_one_option((int)pcVar9,opt_00,extraout_EDX,(bool *)ppcVar11);\n        return iVar7;\n      }\n    }\n    (**((One_option *)ppcVar10)->reader->_vptr_Struct_var)\n              (((One_option *)ppcVar10)->reader,*ppcVar2,arg,this,&this->options_);\n    if (new_i != iVar7) {\n      return new_i;\n    }\n    opt_00 = (char **)argv[unaff_R15];\n    if (*(char *)opt_00 == '-') goto LAB_001babe8;\nLAB_001bac94:\n    opt_00 = (char **)*ppcVar2;\n    pcVar9 = (char *)gettext("unknown option");\n    anon_unknown.dwarf_9fbd7f::usage(pcVar9,(char *)opt_00);\nLAB_001bacb0:\n    ppcVar10 = &(anonymous_namespace)::parse_short_option(int,char_const**,int,char_const**,int*)::\n                dash_z;\n  } while( true )" 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)::parse_short_option(int,char_const**,int,char_const**,int*)\n                  ::dash_z,&__dso_handle);\n  }\n  cVar3 = *(char *)((long)opt_00 + unaff_R13);\n  if (cVar3 == 'z') goto LAB_001bacb0;\n  if (0x7e < (int)cVar3 - 1U) goto LAB_001bac94;\n  ppcVar10 = (char **)gold::options::short_options[(int)cVar3];\n  if ((One_option *)ppcVar10 == (One_option *)0x0) goto LAB_001bac94;\n  do {\n    unaff_R13 = unaff_R13 + 1;\n    opt = (byte *)((long)opt_00 + unaff_R13);\n    if (((One_option *)ppcVar10)->helparg == (char *)0x0) {\n      arg = (char *)0x0;\n      bVar4 = *opt;\n      uVar5 = new_i;\n      opt = (byte *)arg;\n      if (bVar4 == 0) {\n        uVar5 = new_i + 1;\n      }\n    }\n    else {\n      uVar1 = new_i + 1;\n      ppcVar11 = (char **)(ulong)uVar1;\n      uVar5 = uVar1;\n      if (*opt == 0) {\n        if (((One_option *)ppcVar10)->optional_arg == false) {\n          if (argc <= (int)uVar1) goto LAB_001baedd;\n          uVar5 = new_i + 2;\n          opt = (byte *)argv[(int)uVar1];\n        }\n        else {\n          opt = (byte *)((One_option *)ppcVar10)->default_value;\n        }\n      }\n    }\n    new_i = uVar5;\n    arg = (char *)opt;\n    if ((One_option *)ppcVar10 ==\n        (One_option *)\n        &(anonymous_namespace)::parse_short_option(int,char_const**,int,char_const**,int*)::dash_z)\n    {\n      bVar16 = ppcVar10 ==\n               &(anonymous_namespace)::parse_short_option(int,char_const**,int,char_const**,int*)::\n                dash_z;\n      bVar15 = ppcVar10 <\n               &(anonymous_namespace)::parse_short_option(int,char_const**,int,char_const**,int*)::\n                dash_z;\n      dummy_i = 0;\n      lVar12 = 6;\n      pbVar13 = opt;\n      pbVar14 = (byte *)0x314883;\n      do {\n        if (lVar12 == 0) break;\n        lVar12 = lVar12 + -1;\n        bVar15 = *pbVar13 < *pbVar14;\n        bVar16 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar17 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar17 * -2 + 1;\n      } while (bVar16);\n      if ((!bVar15 && !bVar16) == bVar15) {\n        arg = "buildd";\n      }\n      ppcVar11 = &arg;\n      ppcVar10 = (char **)anon_unknown.dwarf_9fbd7f::parse_long_option(1,&arg,true,&arg,&dummy_i);\n      if ((One_option *)ppcVar10 == (One_option *)0x0) {\n        pcVar9 = (char *)gettext("unknown -z option");\n        anon_unknown.dwarf_9fbd7f::usage(pcVar9,(char *)opt);\n        uVar1 = new_i;\nLAB_001baedd:\n        new_i = uVar1;\n        pcVar9 = (char *)gettext("missing argument");\n        anon_unknown.dwarf_9fbd7f::usage(pcVar9,(char *)opt_00);\n                    /* catch() { ... } // from try @ 001bad8f with catch @ 001baef4 */\n        iVar7 = process_one_option((int)pcVar9,opt_00,extraout_EDX,(bool *)ppcVar11);\n        return iVar7;\n      }\n    }\n    (**((One_option *)ppcVar10)->reader->_vptr_Struct_var)\n              (((One_option *)ppcVar10)->reader,*ppcVar2,arg,this,&this->options_);\n    if (new_i != iVar7) {\n      return new_i;\n    }\n    opt_00 = (char **)argv[unaff_R15];\n    if (*(char *)opt_00 == '-') goto LAB_001babe8;\nLAB_001bac94:\n    opt_00 = (char **)*ppcVar2;\n    pcVar9 = (char *)gettext("unknown option");\n    anon_unknown.dwarf_9fbd7f::usage(pcVar9,(char *)opt_00);\nLAB_001bacb0:\n    ppcVar10 = &(anonymous_namespace)::parse_short_option(int,char_const**,int,char_const**,int*)::\n                dash_z;\n  } while( true )" ( (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) ))) ;) (call_expression "__cxa_atexit(gold::options::One_option::~One_option,\n                 &(anonymous_namespace)::parse_short_option(int,char_const**,int,char_const**,int*)\n                  ::dash_z,&__dso_handle);\n  }\n  cVar3 = *(char *)((long)opt_00 + unaff_R13);\n  if (cVar3 == 'z') goto LAB_001bacb0;\n  if (0x7e < (int)cVar3 - 1U) goto LAB_001bac94;\n  ppcVar10 = (char **)gold::options::short_options[(int)cVar3];\n  if ((One_option *)ppcVar10 == (One_option *)0x0) goto LAB_001bac94;\n  do {\n    unaff_R13 = unaff_R13 + 1;\n    opt = (byte *)((long)opt_00 + unaff_R13);\n    if (((One_option *)ppcVar10)->helparg == (char *)0x0) {\n      arg = (char *)0x0;\n      bVar4 = *opt;\n      uVar5 = new_i;\n      opt = (byte *)arg;\n      if (bVar4 == 0) {\n        uVar5 = new_i + 1;\n      }\n    }\n    else {\n      uVar1 = new_i + 1;\n      ppcVar11 = (char **)(ulong)uVar1;\n      uVar5 = uVar1;\n      if (*opt == 0) {\n        if (((One_option *)ppcVar10)->optional_arg == false) {\n          if (argc <= (int)uVar1) goto LAB_001baedd;\n          uVar5 = new_i + 2;\n          opt = (byte *)argv[(int)uVar1];\n        }\n        else {\n          opt = (byte *)((One_option *)ppcVar10)->default_value;\n        }\n      }\n    }\n    new_i = uVar5;\n    arg = (char *)opt;\n    if ((One_option *)ppcVar10 ==\n        (One_option *)\n        &(anonymous_namespace)::parse_short_option(int,char_const**,int,char_const**,int*)::dash_z)\n    {\n      bVar16 = ppcVar10 ==\n               &(anonymous_namespace)::parse_short_option(int,char_const**,int,char_const**,int*)::\n                dash_z;\n      bVar15 = ppcVar10 <\n               &(anonymous_namespace)::parse_short_option(int,char_const**,int,char_const**,int*)::\n                dash_z;\n      dummy_i = 0;\n      lVar12 = 6;\n      pbVar13 = opt;\n      pbVar14 = (byte *)0x314883;\n      do {\n        if (lVar12 == 0) break;\n        lVar12 = lVar12 + -1;\n        bVar15 = *pbVar13 < *pbVar14;\n        bVar16 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar17 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar17 * -2 + 1;\n      } while (bVar16);\n      if ((!bVar15 && !bVar16) == bVar15) {\n        arg = "buildd";\n      }\n      ppcVar11 = &arg;\n      ppcVar10 = (char **)anon_unknown.dwarf_9fbd7f::parse_long_option(1,&arg,true,&arg,&dummy_i);\n      if ((One_option *)ppcVar10 == (One_option *)0x0) {\n        pcVar9 = (char *)gettext("unknown -z option");\n        anon_unknown.dwarf_9fbd7f::usage(pcVar9,(char *)opt);\n        uVar1 = new_i;\nLAB_001baedd:\n        new_i = uVar1;\n        pcVar9 = (char *)gettext("missing argument");\n        anon_unknown.dwarf_9fbd7f::usage(pcVar9,(char *)opt_00);\n                    /* catch() { ... } // from try @ 001bad8f with catch @ 001baef4 */\n        iVar7 = process_one_option((int)pcVar9,opt_00,extraout_EDX,(bool *)ppcVar11);\n        return iVar7;\n      }\n    }\n    (**((One_option *)ppcVar10)->reader->_vptr_Struct_var)\n              (((One_option *)ppcVar10)->reader,*ppcVar2,arg,this,&this->options_);\n    if (new_i != iVar7) {\n      return new_i;\n    }\n    opt_00 = (char **)argv[unaff_R15];\n    if (*(char *)opt_00 == '-') goto LAB_001babe8;\nLAB_001bac94:\n    opt_00 = (char **)*ppcVar2;\n    pcVar9 = (char *)gettext("unknown option");\n    anon_unknown.dwarf_9fbd7f::usage(pcVar9,(char *)opt_00);\nLAB_001bacb0:\n    ppcVar10 = &(anonymous_namespace)::parse_short_option(int,char_const**,int,char_const**,int*)::\n                dash_z;\n  } while( true )" identifier (argument_list "(gold::options::One_option::~One_option,\n                 &(anonymous_namespace)::parse_short_option(int,char_const**,int,char_const**,int*)\n                  ::dash_z,&__dso_handle);\n  }\n  cVar3 = *(char *)((long)opt_00 + unaff_R13);\n  if (cVar3 == 'z') goto LAB_001bacb0;\n  if (0x7e < (int)cVar3 - 1U) goto LAB_001bac94;\n  ppcVar10 = (char **)gold::options::short_options[(int)cVar3];\n  if ((One_option *)ppcVar10 == (One_option *)0x0) goto LAB_001bac94;\n  do {\n    unaff_R13 = unaff_R13 + 1;\n    opt = (byte *)((long)opt_00 + unaff_R13);\n    if (((One_option *)ppcVar10)->helparg == (char *)0x0) {\n      arg = (char *)0x0;\n      bVar4 = *opt;\n      uVar5 = new_i;\n      opt = (byte *)arg;\n      if (bVar4 == 0) {\n        uVar5 = new_i + 1;\n      }\n    }\n    else {\n      uVar1 = new_i + 1;\n      ppcVar11 = (char **)(ulong)uVar1;\n      uVar5 = uVar1;\n      if (*opt == 0) {\n        if (((One_option *)ppcVar10)->optional_arg == false) {\n          if (argc <= (int)uVar1) goto LAB_001baedd;\n          uVar5 = new_i + 2;\n          opt = (byte *)argv[(int)uVar1];\n        }\n        else {\n          opt = (byte *)((One_option *)ppcVar10)->default_value;\n        }\n      }\n    }\n    new_i = uVar5;\n    arg = (char *)opt;\n    if ((One_option *)ppcVar10 ==\n        (One_option *)\n        &(anonymous_namespace)::parse_short_option(int,char_const**,int,char_const**,int*)::dash_z)\n    {\n      bVar16 = ppcVar10 ==\n               &(anonymous_namespace)::parse_short_option(int,char_const**,int,char_const**,int*)::\n                dash_z;\n      bVar15 = ppcVar10 <\n               &(anonymous_namespace)::parse_short_option(int,char_const**,int,char_const**,int*)::\n                dash_z;\n      dummy_i = 0;\n      lVar12 = 6;\n      pbVar13 = opt;\n      pbVar14 = (byte *)0x314883;\n      do {\n        if (lVar12 == 0) break;\n        lVar12 = lVar12 + -1;\n        bVar15 = *pbVar13 < *pbVar14;\n        bVar16 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar17 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar17 * -2 + 1;\n      } while (bVar16);\n      if ((!bVar15 && !bVar16) == bVar15) {\n        arg = "buildd";\n      }\n      ppcVar11 = &arg;\n      ppcVar10 = (char **)anon_unknown.dwarf_9fbd7f::parse_long_option(1,&arg,true,&arg,&dummy_i);\n      if ((One_option *)ppcVar10 == (One_option *)0x0) {\n        pcVar9 = (char *)gettext("unknown -z option");\n        anon_unknown.dwarf_9fbd7f::usage(pcVar9,(char *)opt);\n        uVar1 = new_i;\nLAB_001baedd:\n        new_i = uVar1;\n        pcVar9 = (char *)gettext("missing argument");\n        anon_unknown.dwarf_9fbd7f::usage(pcVar9,(char *)opt_00);\n                    /* catch() { ... } // from try @ 001bad8f with catch @ 001baef4 */\n        iVar7 = process_one_option((int)pcVar9,opt_00,extraout_EDX,(bool *)ppcVar11);\n        return iVar7;\n      }\n    }\n    (**((One_option *)ppcVar10)->reader->_vptr_Struct_var)\n              (((One_option *)ppcVar10)->reader,*ppcVar2,arg,this,&this->options_);\n    if (new_i != iVar7) {\n      return new_i;\n    }\n    opt_00 = (char **)argv[unaff_R15];\n    if (*(char *)opt_00 == '-') goto LAB_001babe8;\nLAB_001bac94:\n    opt_00 = (char **)*ppcVar2;\n    pcVar9 = (char *)gettext("unknown option");\n    anon_unknown.dwarf_9fbd7f::usage(pcVar9,(char *)opt_00);\nLAB_001bacb0:\n    ppcVar10 = &(anonymous_namespace)::parse_short_option(int,char_const**,int,char_const**,int*)::\n                dash_z;\n  } while( true )" ( (ERROR "gold::options::One_option::" identifier : : identifier : : identifier : :) (unary_expression "~One_option" ~ identifier) , (ERROR "&(anonymous_namespace)::parse_short_option(int,char_const**,int,char_const**,int*)\n                  ::dash_z,&__dso_handle);\n  }\n  cVar3 = *(char *)((long)opt_00 + unaff_R13);\n  if (cVar3 == 'z') goto LAB_001bacb0;\n  if (0x7e < (int)cVar3 - 1U) goto LAB_001bac94;\n  ppcVar10 = (char **)gold::options::short_options[(int)cVar3];\n  if ((One_option *)ppcVar10 == (One_option *)0x0) goto LAB_001bac94;\n  do" (pointer_expression "&(anonymous_namespace)" & (parenthesized_expression "(anonymous_namespace)" ( identifier ))) : : (call_expression "parse_short_option(int,char_const**,int,char_const**,int*)\n                  ::dash_z,&__dso_handle)" identifier (argument_list "(int,char_const**,int,char_const**,int*)\n                  ::dash_z,&__dso_handle)" ( 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) , (pointer_expression "&__dso_handle" & identifier) ))) ; } (call_expression "cVar3 = *(char *)((long)opt_00 + unaff_R13);\n  if (cVar3 == 'z')" (assignment_expression "cVar3 = *(char *)((long)opt_00 + unaff_R13)" identifier = (pointer_expression "*(char *)((long)opt_00 + unaff_R13)" * (cast_expression "(char *)((long)opt_00 + unaff_R13)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)opt_00 + unaff_R13)" ( (binary_expression "(long)opt_00 + unaff_R13" (cast_expression "(long)opt_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))))) (ERROR ";\n  if" ; if) (argument_list "(cVar3 == 'z')" ( (binary_expression "cVar3 == 'z'" identifier == (char_literal "'z'" ' character ')) ))) identifier (call_expression "LAB_001bacb0;\n  if (0x7e < (int)cVar3 - 1U)" identifier (ERROR ";\n  if" ; if) (argument_list "(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)) ))) identifier identifier ; (assignment_expression "ppcVar10 = (char **)gold" identifier = (cast_expression "(char **)gold" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) : : identifier : : (call_expression "short_options[(int)cVar3];\n  if ((One_option *)ppcVar10 == (One_option *)0x0)" (subscript_expression "short_options[(int)cVar3]" identifier [ (cast_expression "(int)cVar3" ( (type_descriptor "int" primitive_type) ) identifier) ]) (ERROR ";\n  if" ; if) (argument_list "((One_option *)ppcVar10 == (One_option *)0x0)" ( (binary_expression "(One_option *)ppcVar10 == (One_option *)0x0" (cast_expression "(One_option *)ppcVar10" ( (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)) ))) identifier identifier ; do) (compound_statement "{\n    unaff_R13 = unaff_R13 + 1;\n    opt = (byte *)((long)opt_00 + unaff_R13);\n    if (((One_option *)ppcVar10)->helparg == (char *)0x0) {\n      arg = (char *)0x0;\n      bVar4 = *opt;\n      uVar5 = new_i;\n      opt = (byte *)arg;\n      if (bVar4 == 0) {\n        uVar5 = new_i + 1;\n      }\n    }\n    else {\n      uVar1 = new_i + 1;\n      ppcVar11 = (char **)(ulong)uVar1;\n      uVar5 = uVar1;\n      if (*opt == 0) {\n        if (((One_option *)ppcVar10)->optional_arg == false) {\n          if (argc <= (int)uVar1) goto LAB_001baedd;\n          uVar5 = new_i + 2;\n          opt = (byte *)argv[(int)uVar1];\n        }\n        else {\n          opt = (byte *)((One_option *)ppcVar10)->default_value;\n        }\n      }\n    }\n    new_i = uVar5;\n    arg = (char *)opt;\n    if ((One_option *)ppcVar10 ==\n        (One_option *)\n        &(anonymous_namespace)::parse_short_option(int,char_const**,int,char_const**,int*)::dash_z)\n    {\n      bVar16 = ppcVar10 ==\n               &(anonymous_namespace)::parse_short_option(int,char_const**,int,char_const**,int*)::\n                dash_z;\n      bVar15 = ppcVar10 <\n               &(anonymous_namespace)::parse_short_option(int,char_const**,int,char_const**,int*)::\n                dash_z;\n      dummy_i = 0;\n      lVar12 = 6;\n      pbVar13 = opt;\n      pbVar14 = (byte *)0x314883;\n      do {\n        if (lVar12 == 0) break;\n        lVar12 = lVar12 + -1;\n        bVar15 = *pbVar13 < *pbVar14;\n        bVar16 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar17 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar17 * -2 + 1;\n      } while (bVar16);\n      if ((!bVar15 && !bVar16) == bVar15) {\n        arg = "buildd";\n      }\n      ppcVar11 = &arg;\n      ppcVar10 = (char **)anon_unknown.dwarf_9fbd7f::parse_long_option(1,&arg,true,&arg,&dummy_i);\n      if ((One_option *)ppcVar10 == (One_option *)0x0) {\n        pcVar9 = (char *)gettext("unknown -z option");\n        anon_unknown.dwarf_9fbd7f::usage(pcVar9,(char *)opt);\n        uVar1 = new_i;\nLAB_001baedd:\n        new_i = uVar1;\n        pcVar9 = (char *)gettext("missing argument");\n        anon_unknown.dwarf_9fbd7f::usage(pcVar9,(char *)opt_00);\n                    /* catch() { ... } // from try @ 001bad8f with catch @ 001baef4 */\n        iVar7 = process_one_option((int)pcVar9,opt_00,extraout_EDX,(bool *)ppcVar11);\n        return iVar7;\n      }\n    }\n    (**((One_option *)ppcVar10)->reader->_vptr_Struct_var)\n              (((One_option *)ppcVar10)->reader,*ppcVar2,arg,this,&this->options_);\n    if (new_i != iVar7) {\n      return new_i;\n    }\n    opt_00 = (char **)argv[unaff_R15];\n    if (*(char *)opt_00 == '-') goto LAB_001babe8;\nLAB_001bac94:\n    opt_00 = (char **)*ppcVar2;\n    pcVar9 = (char *)gettext("unknown option");\n    anon_unknown.dwarf_9fbd7f::usage(pcVar9,(char *)opt_00);\nLAB_001bacb0:\n    ppcVar10 = &(anonymous_namespace)::parse_short_option(int,char_const**,int,char_const**,int*)::\n                dash_z;\n  }" { (expression_statement "unaff_R13 = unaff_R13 + 1;" (assignment_expression "unaff_R13 = unaff_R13 + 1" identifier = (binary_expression "unaff_R13 + 1" identifier + number_literal)) ;) (expression_statement "opt = (byte *)((long)opt_00 + unaff_R13);" (assignment_expression "opt = (byte *)((long)opt_00 + unaff_R13)" identifier = (cast_expression "(byte *)((long)opt_00 + unaff_R13)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)opt_00 + unaff_R13)" ( (binary_expression "(long)opt_00 + unaff_R13" (cast_expression "(long)opt_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) ;) (if_statement "if (((One_option *)ppcVar10)->helparg == (char *)0x0) {\n      arg = (char *)0x0;\n      bVar4 = *opt;\n      uVar5 = new_i;\n      opt = (byte *)arg;\n      if (bVar4 == 0) {\n        uVar5 = new_i + 1;\n      }\n    }\n    else {\n      uVar1 = new_i + 1;\n      ppcVar11 = (char **)(ulong)uVar1;\n      uVar5 = uVar1;\n      if (*opt == 0) {\n        if (((One_option *)ppcVar10)->optional_arg == false) {\n          if (argc <= (int)uVar1) goto LAB_001baedd;\n          uVar5 = new_i + 2;\n          opt = (byte *)argv[(int)uVar1];\n        }\n        else {\n          opt = (byte *)((One_option *)ppcVar10)->default_value;\n        }\n      }\n    }" if (parenthesized_expression "(((One_option *)ppcVar10)->helparg == (char *)0x0)" ( (binary_expression "((One_option *)ppcVar10)->helparg == (char *)0x0" (field_expression "((One_option *)ppcVar10)->helparg" (parenthesized_expression "((One_option *)ppcVar10)" ( (cast_expression "(One_option *)ppcVar10" ( (type_descriptor "One_option *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier) == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      arg = (char *)0x0;\n      bVar4 = *opt;\n      uVar5 = new_i;\n      opt = (byte *)arg;\n      if (bVar4 == 0) {\n        uVar5 = new_i + 1;\n      }\n    }" { (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 "bVar4 = *opt;" (assignment_expression "bVar4 = *opt" identifier = (pointer_expression "*opt" * identifier)) ;) (expression_statement "uVar5 = new_i;" (assignment_expression "uVar5 = new_i" identifier = identifier) ;) (expression_statement "opt = (byte *)arg;" (assignment_expression "opt = (byte *)arg" identifier = (cast_expression "(byte *)arg" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (bVar4 == 0) {\n        uVar5 = new_i + 1;\n      }" if (parenthesized_expression "(bVar4 == 0)" ( (binary_expression "bVar4 == 0" identifier == number_literal) )) (compound_statement "{\n        uVar5 = new_i + 1;\n      }" { (expression_statement "uVar5 = new_i + 1;" (assignment_expression "uVar5 = new_i + 1" identifier = (binary_expression "new_i + 1" identifier + number_literal)) ;) })) }) (else_clause "else {\n      uVar1 = new_i + 1;\n      ppcVar11 = (char **)(ulong)uVar1;\n      uVar5 = uVar1;\n      if (*opt == 0) {\n        if (((One_option *)ppcVar10)->optional_arg == false) {\n          if (argc <= (int)uVar1) goto LAB_001baedd;\n          uVar5 = new_i + 2;\n          opt = (byte *)argv[(int)uVar1];\n        }\n        else {\n          opt = (byte *)((One_option *)ppcVar10)->default_value;\n        }\n      }\n    }" else (compound_statement "{\n      uVar1 = new_i + 1;\n      ppcVar11 = (char **)(ulong)uVar1;\n      uVar5 = uVar1;\n      if (*opt == 0) {\n        if (((One_option *)ppcVar10)->optional_arg == false) {\n          if (argc <= (int)uVar1) goto LAB_001baedd;\n          uVar5 = new_i + 2;\n          opt = (byte *)argv[(int)uVar1];\n        }\n        else {\n          opt = (byte *)((One_option *)ppcVar10)->default_value;\n        }\n      }\n    }" { (expression_statement "uVar1 = new_i + 1;" (assignment_expression "uVar1 = new_i + 1" identifier = (binary_expression "new_i + 1" identifier + number_literal)) ;) (expression_statement "ppcVar11 = (char **)(ulong)uVar1;" (assignment_expression "ppcVar11 = (char **)(ulong)uVar1" identifier = (cast_expression "(char **)(ulong)uVar1" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (cast_expression "(ulong)uVar1" ( (type_descriptor "ulong" type_identifier) ) identifier))) ;) (expression_statement "uVar5 = uVar1;" (assignment_expression "uVar5 = uVar1" identifier = identifier) ;) (if_statement "if (*opt == 0) {\n        if (((One_option *)ppcVar10)->optional_arg == false) {\n          if (argc <= (int)uVar1) goto LAB_001baedd;\n          uVar5 = new_i + 2;\n          opt = (byte *)argv[(int)uVar1];\n        }\n        else {\n          opt = (byte *)((One_option *)ppcVar10)->default_value;\n        }\n      }" if (parenthesized_expression "(*opt == 0)" ( (binary_expression "*opt == 0" (pointer_expression "*opt" * identifier) == number_literal) )) (compound_statement "{\n        if (((One_option *)ppcVar10)->optional_arg == false) {\n          if (argc <= (int)uVar1) goto LAB_001baedd;\n          uVar5 = new_i + 2;\n          opt = (byte *)argv[(int)uVar1];\n        }\n        else {\n          opt = (byte *)((One_option *)ppcVar10)->default_value;\n        }\n      }" { (if_statement "if (((One_option *)ppcVar10)->optional_arg == false) {\n          if (argc <= (int)uVar1) goto LAB_001baedd;\n          uVar5 = new_i + 2;\n          opt = (byte *)argv[(int)uVar1];\n        }\n        else {\n          opt = (byte *)((One_option *)ppcVar10)->default_value;\n        }" if (parenthesized_expression "(((One_option *)ppcVar10)->optional_arg == false)" ( (binary_expression "((One_option *)ppcVar10)->optional_arg == false" (field_expression "((One_option *)ppcVar10)->optional_arg" (parenthesized_expression "((One_option *)ppcVar10)" ( (cast_expression "(One_option *)ppcVar10" ( (type_descriptor "One_option *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier) == false) )) (compound_statement "{\n          if (argc <= (int)uVar1) goto LAB_001baedd;\n          uVar5 = new_i + 2;\n          opt = (byte *)argv[(int)uVar1];\n        }" { (if_statement "if (argc <= (int)uVar1) goto LAB_001baedd;" if (parenthesized_expression "(argc <= (int)uVar1)" ( (binary_expression "argc <= (int)uVar1" identifier <= (cast_expression "(int)uVar1" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_001baedd;" goto statement_identifier ;)) (expression_statement "uVar5 = new_i + 2;" (assignment_expression "uVar5 = new_i + 2" identifier = (binary_expression "new_i + 2" identifier + number_literal)) ;) (expression_statement "opt = (byte *)argv[(int)uVar1];" (assignment_expression "opt = (byte *)argv[(int)uVar1]" identifier = (cast_expression "(byte *)argv[(int)uVar1]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "argv[(int)uVar1]" identifier [ (cast_expression "(int)uVar1" ( (type_descriptor "int" primitive_type) ) identifier) ]))) ;) }) (else_clause "else {\n          opt = (byte *)((One_option *)ppcVar10)->default_value;\n        }" else (compound_statement "{\n          opt = (byte *)((One_option *)ppcVar10)->default_value;\n        }" { (expression_statement "opt = (byte *)((One_option *)ppcVar10)->default_value;" (assignment_expression "opt = (byte *)((One_option *)ppcVar10)->default_value" identifier = (cast_expression "(byte *)((One_option *)ppcVar10)->default_value" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "((One_option *)ppcVar10)->default_value" (parenthesized_expression "((One_option *)ppcVar10)" ( (cast_expression "(One_option *)ppcVar10" ( (type_descriptor "One_option *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier))) ;) }))) })) }))) (expression_statement "new_i = uVar5;" (assignment_expression "new_i = uVar5" identifier = identifier) ;) (expression_statement "arg = (char *)opt;" (assignment_expression "arg = (char *)opt" identifier = (cast_expression "(char *)opt" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if ((One_option *)ppcVar10 ==\n        (One_option *)\n        &(anonymous_namespace)::parse_short_option(int,char_const**,int,char_const**,int*)::dash_z)\n    {\n      bVar16 = ppcVar10 ==\n               &(anonymous_namespace)::parse_short_option(int,char_const**,int,char_const**,int*)::\n                dash_z;\n      bVar15 = ppcVar10 <\n               &(anonymous_namespace)::parse_short_option(int,char_const**,int,char_const**,int*)::\n                dash_z;\n      dummy_i = 0;\n      lVar12 = 6;\n      pbVar13 = opt;\n      pbVar14 = (byte *)0x314883;\n      do {\n        if (lVar12 == 0) break;\n        lVar12 = lVar12 + -1;\n        bVar15 = *pbVar13 < *pbVar14;\n        bVar16 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar17 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar17 * -2 + 1;\n      } while (bVar16);\n      if ((!bVar15 && !bVar16) == bVar15) {\n        arg = "buildd";\n      }\n      ppcVar11 = &arg;\n      ppcVar10 = (char **)anon_unknown.dwarf_9fbd7f::parse_long_option(1,&arg,true,&arg,&dummy_i);\n      if ((One_option *)ppcVar10 == (One_option *)0x0) {\n        pcVar9 = (char *)gettext("unknown -z option");\n        anon_unknown.dwarf_9fbd7f::usage(pcVar9,(char *)opt);\n        uVar1 = new_i;\nLAB_001baedd:\n        new_i = uVar1;\n        pcVar9 = (char *)gettext("missing argument");\n        anon_unknown.dwarf_9fbd7f::usage(pcVar9,(char *)opt_00);\n                    /* catch() { ... } // from try @ 001bad8f with catch @ 001baef4 */\n        iVar7 = process_one_option((int)pcVar9,opt_00,extraout_EDX,(bool *)ppcVar11);\n        return iVar7;\n      }\n    }\n    (**((One_option *)ppcVar10)->reader->_vptr_Struct_var)\n              (((One_option *)ppcVar10)->reader,*ppcVar2,arg,this,&this->options_);" if (parenthesized_expression "((One_option *)ppcVar10 ==\n        (One_option *)\n        &(anonymous_namespace)::parse_short_option(int,char_const**,int,char_const**,int*)::dash_z)\n    {\n      bVar16 = ppcVar10 ==\n               &(anonymous_namespace)::parse_short_option(int,char_const**,int,char_const**,int*)::\n                dash_z;\n      bVar15 = ppcVar10 <\n               &(anonymous_namespace)::parse_short_option(int,char_const**,int,char_const**,int*)::\n                dash_z;\n      dummy_i = 0;\n      lVar12 = 6;\n      pbVar13 = opt;\n      pbVar14 = (byte *)0x314883;\n      do {\n        if (lVar12 == 0) break;\n        lVar12 = lVar12 + -1;\n        bVar15 = *pbVar13 < *pbVar14;\n        bVar16 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar17 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar17 * -2 + 1;\n      } while (bVar16);\n      if ((!bVar15 && !bVar16) == bVar15) {\n        arg = "buildd";\n      }\n      ppcVar11 = &arg;\n      ppcVar10 = (char **)anon_unknown.dwarf_9fbd7f::parse_long_option(1,&arg,true,&arg,&dummy_i);\n      if ((One_option *)ppcVar10 == (One_option *)0x0) {\n        pcVar9 = (char *)gettext("unknown -z option");\n        anon_unknown.dwarf_9fbd7f::usage(pcVar9,(char *)opt);\n        uVar1 = new_i;\nLAB_001baedd:\n        new_i = uVar1;\n        pcVar9 = (char *)gettext("missing argument");\n        anon_unknown.dwarf_9fbd7f::usage(pcVar9,(char *)opt_00);\n                    /* catch() { ... } // from try @ 001bad8f with catch @ 001baef4 */\n        iVar7 = process_one_option((int)pcVar9,opt_00,extraout_EDX,(bool *)ppcVar11);\n        return iVar7;\n      }\n    }" ( (ERROR "(One_option *)ppcVar10 ==\n        (One_option *)\n        &(anonymous_namespace)::parse_short_option(int,char_const**,int,char_const**,int*)::dash_z)" (binary_expression "(One_option *)ppcVar10 ==\n        (One_option *)\n        &(anonymous_namespace)" (cast_expression "(One_option *)ppcVar10" ( (type_descriptor "One_option *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) == (cast_expression "(One_option *)\n        &(anonymous_namespace)" ( (type_descriptor "One_option *" type_identifier (abstract_pointer_declarator "*" *)) ) (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) )))) (compound_statement "{\n      bVar16 = ppcVar10 ==\n               &(anonymous_namespace)::parse_short_option(int,char_const**,int,char_const**,int*)::\n                dash_z;\n      bVar15 = ppcVar10 <\n               &(anonymous_namespace)::parse_short_option(int,char_const**,int,char_const**,int*)::\n                dash_z;\n      dummy_i = 0;\n      lVar12 = 6;\n      pbVar13 = opt;\n      pbVar14 = (byte *)0x314883;\n      do {\n        if (lVar12 == 0) break;\n        lVar12 = lVar12 + -1;\n        bVar15 = *pbVar13 < *pbVar14;\n        bVar16 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar17 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar17 * -2 + 1;\n      } while (bVar16);\n      if ((!bVar15 && !bVar16) == bVar15) {\n        arg = "buildd";\n      }\n      ppcVar11 = &arg;\n      ppcVar10 = (char **)anon_unknown.dwarf_9fbd7f::parse_long_option(1,&arg,true,&arg,&dummy_i);\n      if ((One_option *)ppcVar10 == (One_option *)0x0) {\n        pcVar9 = (char *)gettext("unknown -z option");\n        anon_unknown.dwarf_9fbd7f::usage(pcVar9,(char *)opt);\n        uVar1 = new_i;\nLAB_001baedd:\n        new_i = uVar1;\n        pcVar9 = (char *)gettext("missing argument");\n        anon_unknown.dwarf_9fbd7f::usage(pcVar9,(char *)opt_00);\n                    /* catch() { ... } // from try @ 001bad8f with catch @ 001baef4 */\n        iVar7 = process_one_option((int)pcVar9,opt_00,extraout_EDX,(bool *)ppcVar11);\n        return iVar7;\n      }\n    }" { (ERROR "bVar16 = ppcVar10 ==\n               &(anonymous_namespace)::" (assignment_expression "bVar16 = ppcVar10 ==\n               &(anonymous_namespace)" identifier = (binary_expression "ppcVar10 ==\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*)::\n                dash_z;" (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 ")::" ) : :) identifier) ))) ;) (ERROR "bVar15 = ppcVar10 <\n               &(anonymous_namespace)::" (assignment_expression "bVar15 = ppcVar10 <\n               &(anonymous_namespace)" identifier = (binary_expression "ppcVar10 <\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*)::\n                dash_z;" (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 ")::" ) : :) identifier) ))) ;) (expression_statement "dummy_i = 0;" (assignment_expression "dummy_i = 0" identifier = number_literal) ;) (expression_statement "lVar12 = 6;" (assignment_expression "lVar12 = 6" identifier = number_literal) ;) (expression_statement "pbVar13 = opt;" (assignment_expression "pbVar13 = opt" identifier = identifier) ;) (expression_statement "pbVar14 = (byte *)0x314883;" (assignment_expression "pbVar14 = (byte *)0x314883" identifier = (cast_expression "(byte *)0x314883" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n        if (lVar12 == 0) break;\n        lVar12 = lVar12 + -1;\n        bVar15 = *pbVar13 < *pbVar14;\n        bVar16 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar17 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar17 * -2 + 1;\n      } while (bVar16);" do (compound_statement "{\n        if (lVar12 == 0) break;\n        lVar12 = lVar12 + -1;\n        bVar15 = *pbVar13 < *pbVar14;\n        bVar16 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar17 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar17 * -2 + 1;\n      }" { (if_statement "if (lVar12 == 0) break;" if (parenthesized_expression "(lVar12 == 0)" ( (binary_expression "lVar12 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar12 = lVar12 + -1;" (assignment_expression "lVar12 = lVar12 + -1" identifier = (binary_expression "lVar12 + -1" identifier + number_literal)) ;) (expression_statement "bVar15 = *pbVar13 < *pbVar14;" (assignment_expression "bVar15 = *pbVar13 < *pbVar14" identifier = (binary_expression "*pbVar13 < *pbVar14" (pointer_expression "*pbVar13" * identifier) < (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "bVar16 = *pbVar13 == *pbVar14;" (assignment_expression "bVar16 = *pbVar13 == *pbVar14" identifier = (binary_expression "*pbVar13 == *pbVar14" (pointer_expression "*pbVar13" * identifier) == (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "pbVar13 = pbVar13 + (ulong)bVar17 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (ulong)bVar17 * -2 + 1" identifier = (binary_expression "pbVar13 + (ulong)bVar17 * -2 + 1" (binary_expression "pbVar13 + (ulong)bVar17 * -2" identifier + (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar14 = pbVar14 + (ulong)bVar17 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (ulong)bVar17 * -2 + 1" identifier = (binary_expression "pbVar14 + (ulong)bVar17 * -2 + 1" (binary_expression "pbVar14 + (ulong)bVar17 * -2" identifier + (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar16)" ( identifier )) ;) (if_statement "if ((!bVar15 && !bVar16) == bVar15) {\n        arg = "buildd";\n      }" if (parenthesized_expression "((!bVar15 && !bVar16) == bVar15)" ( (binary_expression "(!bVar15 && !bVar16) == bVar15" (parenthesized_expression "(!bVar15 && !bVar16)" ( (binary_expression "!bVar15 && !bVar16" (unary_expression "!bVar15" ! identifier) && (unary_expression "!bVar16" ! identifier)) )) == identifier) )) (compound_statement "{\n        arg = "buildd";\n      }" { (expression_statement "arg = "buildd";" (assignment_expression "arg = "buildd"" identifier = (string_literal ""buildd"" " string_content ")) ;) })) (expression_statement "ppcVar11 = &arg;" (assignment_expression "ppcVar11 = &arg" identifier = (pointer_expression "&arg" & identifier)) ;) (ERROR "ppcVar10 = (char **)anon_unknown.dwarf_9fbd7f::" (assignment_expression "ppcVar10 = (char **)anon_unknown.dwarf_9fbd7f" identifier = (cast_expression "(char **)anon_unknown.dwarf_9fbd7f" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (field_expression "anon_unknown.dwarf_9fbd7f" identifier . field_identifier))) : :) (expression_statement "parse_long_option(1,&arg,true,&arg,&dummy_i);" (call_expression "parse_long_option(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 *)ppcVar10 == (One_option *)0x0) {\n        pcVar9 = (char *)gettext("unknown -z option");\n        anon_unknown.dwarf_9fbd7f::usage(pcVar9,(char *)opt);\n        uVar1 = new_i;\nLAB_001baedd:\n        new_i = uVar1;\n        pcVar9 = (char *)gettext("missing argument");\n        anon_unknown.dwarf_9fbd7f::usage(pcVar9,(char *)opt_00);\n                    /* catch() { ... } // from try @ 001bad8f with catch @ 001baef4 */\n        iVar7 = process_one_option((int)pcVar9,opt_00,extraout_EDX,(bool *)ppcVar11);\n        return iVar7;\n      }" if (parenthesized_expression "((One_option *)ppcVar10 == (One_option *)0x0)" ( (binary_expression "(One_option *)ppcVar10 == (One_option *)0x0" (cast_expression "(One_option *)ppcVar10" ( (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        pcVar9 = (char *)gettext("unknown -z option");\n        anon_unknown.dwarf_9fbd7f::usage(pcVar9,(char *)opt);\n        uVar1 = new_i;\nLAB_001baedd:\n        new_i = uVar1;\n        pcVar9 = (char *)gettext("missing argument");\n        anon_unknown.dwarf_9fbd7f::usage(pcVar9,(char *)opt_00);\n                    /* catch() { ... } // from try @ 001bad8f with catch @ 001baef4 */\n        iVar7 = process_one_option((int)pcVar9,opt_00,extraout_EDX,(bool *)ppcVar11);\n        return iVar7;\n      }" { (expression_statement "pcVar9 = (char *)gettext("unknown -z option");" (assignment_expression "pcVar9 = (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_9fbd7f::" (field_expression "anon_unknown.dwarf_9fbd7f" identifier . field_identifier) : :) (expression_statement "usage(pcVar9,(char *)opt);" (call_expression "usage(pcVar9,(char *)opt)" identifier (argument_list "(pcVar9,(char *)opt)" ( identifier , (cast_expression "(char *)opt" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (expression_statement "uVar1 = new_i;" (assignment_expression "uVar1 = new_i" identifier = identifier) ;) (labeled_statement "LAB_001baedd:\n        new_i = uVar1;" statement_identifier : (expression_statement "new_i = uVar1;" (assignment_expression "new_i = uVar1" identifier = identifier) ;)) (expression_statement "pcVar9 = (char *)gettext("missing argument");" (assignment_expression "pcVar9 = (char *)gettext("missing argument")" identifier = (cast_expression "(char *)gettext("missing argument")" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "gettext("missing argument")" identifier (argument_list "("missing argument")" ( (string_literal ""missing argument"" " string_content ") ))))) ;) (ERROR "anon_unknown.dwarf_9fbd7f::" (field_expression "anon_unknown.dwarf_9fbd7f" identifier . field_identifier) : :) (expression_statement "usage(pcVar9,(char *)opt_00);" (call_expression "usage(pcVar9,(char *)opt_00)" identifier (argument_list "(pcVar9,(char *)opt_00)" ( identifier , (cast_expression "(char *)opt_00" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) comment (expression_statement "iVar7 = process_one_option((int)pcVar9,opt_00,extraout_EDX,(bool *)ppcVar11);" (assignment_expression "iVar7 = process_one_option((int)pcVar9,opt_00,extraout_EDX,(bool *)ppcVar11)" identifier = (call_expression "process_one_option((int)pcVar9,opt_00,extraout_EDX,(bool *)ppcVar11)" identifier (argument_list "((int)pcVar9,opt_00,extraout_EDX,(bool *)ppcVar11)" ( (cast_expression "(int)pcVar9" ( (type_descriptor "int" primitive_type) ) identifier) , identifier , identifier , (cast_expression "(bool *)ppcVar11" ( (type_descriptor "bool *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (return_statement "return iVar7;" return identifier ;) })) }) )) (expression_statement "(**((One_option *)ppcVar10)->reader->_vptr_Struct_var)\n              (((One_option *)ppcVar10)->reader,*ppcVar2,arg,this,&this->options_);" (call_expression "(**((One_option *)ppcVar10)->reader->_vptr_Struct_var)\n              (((One_option *)ppcVar10)->reader,*ppcVar2,arg,this,&this->options_)" (parenthesized_expression "(**((One_option *)ppcVar10)->reader->_vptr_Struct_var)" ( (pointer_expression "**((One_option *)ppcVar10)->reader->_vptr_Struct_var" * (pointer_expression "*((One_option *)ppcVar10)->reader->_vptr_Struct_var" * (field_expression "((One_option *)ppcVar10)->reader->_vptr_Struct_var" (field_expression "((One_option *)ppcVar10)->reader" (parenthesized_expression "((One_option *)ppcVar10)" ( (cast_expression "(One_option *)ppcVar10" ( (type_descriptor "One_option *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier) -> field_identifier))) )) (argument_list "(((One_option *)ppcVar10)->reader,*ppcVar2,arg,this,&this->options_)" ( (field_expression "((One_option *)ppcVar10)->reader" (parenthesized_expression "((One_option *)ppcVar10)" ( (cast_expression "(One_option *)ppcVar10" ( (type_descriptor "One_option *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier) , (pointer_expression "*ppcVar2" * identifier) , identifier , identifier , (pointer_expression "&this->options_" & (field_expression "this->options_" identifier -> field_identifier)) ))) ;)) (if_statement "if (new_i != iVar7) {\n      return new_i;\n    }" if (parenthesized_expression "(new_i != iVar7)" ( (binary_expression "new_i != iVar7" identifier != identifier) )) (compound_statement "{\n      return new_i;\n    }" { (return_statement "return new_i;" return identifier ;) })) (expression_statement "opt_00 = (char **)argv[unaff_R15];" (assignment_expression "opt_00 = (char **)argv[unaff_R15]" identifier = (cast_expression "(char **)argv[unaff_R15]" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "argv[unaff_R15]" identifier [ identifier ]))) ;) (if_statement "if (*(char *)opt_00 == '-') goto LAB_001babe8;" if (parenthesized_expression "(*(char *)opt_00 == '-')" ( (binary_expression "*(char *)opt_00 == '-'" (pointer_expression "*(char *)opt_00" * (cast_expression "(char *)opt_00" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) == (char_literal "'-'" ' character ')) )) (goto_statement "goto LAB_001babe8;" goto statement_identifier ;)) (labeled_statement "LAB_001bac94:\n    opt_00 = (char **)*ppcVar2;" statement_identifier : (expression_statement "opt_00 = (char **)*ppcVar2;" (assignment_expression "opt_00 = (char **)*ppcVar2" identifier = (cast_expression "(char **)*ppcVar2" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "*ppcVar2" * identifier))) ;)) (expression_statement "pcVar9 = (char *)gettext("unknown option");" (assignment_expression "pcVar9 = (char *)gettext("unknown option")" identifier = (cast_expression "(char *)gettext("unknown option")" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "gettext("unknown option")" identifier (argument_list "("unknown option")" ( (string_literal ""unknown option"" " string_content ") ))))) ;) (ERROR "anon_unknown.dwarf_9fbd7f::" (field_expression "anon_unknown.dwarf_9fbd7f" identifier . field_identifier) : :) (expression_statement "usage(pcVar9,(char *)opt_00);" (call_expression "usage(pcVar9,(char *)opt_00)" identifier (argument_list "(pcVar9,(char *)opt_00)" ( identifier , (cast_expression "(char *)opt_00" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (labeled_statement "LAB_001bacb0:\n    ppcVar10 = &(anonymous_namespace)::parse_short_option(int,char_const**,int,char_const**,int*)::\n                dash_z;" statement_identifier : (ERROR "ppcVar10 = &(anonymous_namespace)::" (assignment_expression "ppcVar10 = &(anonymous_namespace)" identifier = (pointer_expression "&(anonymous_namespace)" & (parenthesized_expression "(anonymous_namespace)" ( identifier )))) : :) (expression_statement "parse_short_option(int,char_const**,int,char_const**,int*)::\n                dash_z;" (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 ")::" ) : :) identifier) ))) ;)) }) (ERROR "while( true" while ( true) ))) ))) ;) })))
(translation_unit "ulong FUN_001bab10(long param_1,int param_2,long param_3,uint param_4,char *param_5)\n\n{\n  uint uVar1;\n  undefined8 *puVar2;\n  byte *pbVar3;\n  char cVar4;\n  byte bVar5;\n  uint uVar6;\n  uint uVar7;\n  int iVar8;\n  long lVar9;\n  undefined8 uVar10;\n  undefined8 *puVar11;\n  char *__s;\n  ulong uVar12;\n  char *pcVar13;\n  byte *pbVar14;\n  byte *pbVar15;\n  long unaff_R13;\n  long unaff_R15;\n  bool bVar16;\n  bool bVar17;\n  byte bVar18;\n  uint local_48 [2];\n  byte *local_40 [2];\n  \n  bVar18 = 0;\n  puVar2 = (undefined8 *)(param_3 + (long)(int)param_4 * 8);\n  pcVar13 = (char *)*puVar2;\n  if ((*pcVar13 != '-') || (*param_5 != '\0')) {\n                    \n    FUN_0016cdf0("../../gold/options.cc",0x5f0,"process_one_option");\n  }\n  if ((pcVar13[1] == '-') && (pcVar13[2] == '\0')) {\n    *param_5 = '\x01';\n    return (ulong)(param_4 + 1);\n  }\n  local_40[0] = (byte *)0x0;\n  local_48[0] = param_4;\n  lVar9 = FUN_001b2990(param_2,param_3,0,local_40,local_48);\n  uVar6 = local_48[0];\n  if (lVar9 != 0) {\n    (**(code **)**(undefined8 **)(lVar9 + 0x48))\n              (*(undefined8 **)(lVar9 + 0x48),*puVar2,local_40[0],param_1,param_1 + 8);\nLAB_001baba8:\n    return (ulong)local_48[0];\n  }\n  if (param_4 != local_48[0]) goto LAB_001bac94;\n  unaff_R15 = (long)(int)local_48[0];\n  unaff_R13 = 1;\n  pcVar13 = *(char **)(param_3 + unaff_R15 * 8);\n  if (*pcVar13 != '-') goto LAB_001bac94;\nLAB_001babe8:\n  if ((DAT_003c7c90 == '\0') && (iVar8 = FUN_002756c0(&DAT_003c7c90), iVar8 != 0)) {\n    DAT_003c7ca0 = &DAT_003c7cb0;\n                    \n    FUN_0015cbe0(&DAT_003c7ca0,"");\n    _DAT_003c7cc0 = 4;\n    DAT_003c7cc4 = 0x7a;\n    _DAT_003c7cc8 = "";\n    DAT_003c7cd0 = 0;\n    DAT_003c7cd8 = "Z-OPTION";\n    DAT_003c7ce0 = 0;\n    _DAT_003c7ce8 = 0;\n    DAT_003c7cf0 = 0;\n    __s = strchr(DAT_003c7ca0,0x5f);\n    if (__s != (char *)0x0) {\n      do {\n        *__s = '-';\n        __s = strchr(__s,0x5f);\n      } while (__s != (char *)0x0);\n      if ((DAT_003c7cd0 != 0) && (DAT_003c8128 != '\0')) {\n                    \n        FUN_001b2b90(&DAT_003c7ca0);\n      }\n    }\n    FUN_002757f0(&DAT_003c7c90);\n    __cxa_atexit(FUN_001bc860,&DAT_003c7ca0,&PTR_LOOP_003be5a8);\n  }\n  cVar4 = pcVar13[unaff_R13];\n  if (cVar4 == 'z') goto LAB_001bacb0;\n  if (0x7e < (int)cVar4 - 1U) goto LAB_001bac94;\n  puVar11 = *(undefined8 **)(&DAT_003c7d00 + (long)(int)cVar4 * 8);\n  if (puVar11 == (undefined8 *)0x0) goto LAB_001bac94;\n  do {\n    unaff_R13 = unaff_R13 + 1;\n    pbVar3 = (byte *)(pcVar13 + unaff_R13);\n    if (puVar11[7] == 0) {\n      local_40[0] = (byte *)0x0;\n      bVar5 = *pbVar3;\n      uVar7 = local_48[0];\n      pbVar3 = local_40[0];\n      if (bVar5 == 0) {\n        uVar7 = local_48[0] + 1;\n      }\n    }\n    else {\n      uVar1 = local_48[0] + 1;\n      uVar7 = uVar1;\n      if (*pbVar3 == 0) {\n        if (*(char *)(puVar11 + 8) == '\0') {\n          if (param_2 <= (int)uVar1) goto LAB_001baedd;\n          uVar7 = local_48[0] + 2;\n          pbVar3 = *(byte **)(param_3 + (long)(int)uVar1 * 8);\n        }\n        else {\n          pbVar3 = (byte *)puVar11[5];\n        }\n      }\n    }\n    local_48[0] = uVar7;\n    local_40[0] = pbVar3;\n    if ((char **)puVar11 == &DAT_003c7ca0) {\n      bVar17 = (char **)puVar11 == &DAT_003c7ca0;\n      bVar16 = puVar11 < &DAT_003c7ca0;\n      local_48[1] = 0;\n      lVar9 = 6;\n      pbVar14 = pbVar3;\n      pbVar15 = (byte *)0x314883;\n      do {\n        if (lVar9 == 0) break;\n        lVar9 = lVar9 + -1;\n        bVar16 = *pbVar14 < *pbVar15;\n        bVar17 = *pbVar14 == *pbVar15;\n        pbVar14 = pbVar14 + (ulong)bVar18 * -2 + 1;\n        pbVar15 = pbVar15 + (ulong)bVar18 * -2 + 1;\n      } while (bVar17);\n      if ((!bVar16 && !bVar17) == bVar16) {\n        local_40[0] = (byte *)0x314883;\n      }\n      puVar11 = (undefined8 *)FUN_001b2990(1,local_40,1,local_40,local_48 + 1);\n      if (puVar11 == (undefined8 *)0x0) {\n        uVar10 = gettext("unknown -z option");\n        FUN_001b06b0(uVar10,pbVar3);\n        uVar1 = local_48[0];\nLAB_001baedd:\n        local_48[0] = uVar1;\n        uVar10 = gettext("missing argument");\n        FUN_001b06b0(uVar10,pcVar13);\n                    \n        uVar12 = FUN_0014340a();\n        return uVar12;\n      }\n    }\n    (*(code *)**(undefined8 **)puVar11[9])\n              ((undefined8 *)puVar11[9],*puVar2,local_40[0],param_1,param_1 + 8);\n    if (local_48[0] != uVar6) goto LAB_001baba8;\n    pcVar13 = *(char **)(param_3 + unaff_R15 * 8);\n    if (*pcVar13 == '-') goto LAB_001babe8;\nLAB_001bac94:\n    pcVar13 = (char *)*puVar2;\n    uVar10 = gettext("unknown option");\n    FUN_001b06b0(uVar10,pcVar13);\nLAB_001bacb0:\n    puVar11 = &DAT_003c7ca0;\n  } while( true );\n}\n\n" (function_definition "ulong FUN_001bab10(long param_1,int param_2,long param_3,uint param_4,char *param_5)\n\n{\n  uint uVar1;\n  undefined8 *puVar2;\n  byte *pbVar3;\n  char cVar4;\n  byte bVar5;\n  uint uVar6;\n  uint uVar7;\n  int iVar8;\n  long lVar9;\n  undefined8 uVar10;\n  undefined8 *puVar11;\n  char *__s;\n  ulong uVar12;\n  char *pcVar13;\n  byte *pbVar14;\n  byte *pbVar15;\n  long unaff_R13;\n  long unaff_R15;\n  bool bVar16;\n  bool bVar17;\n  byte bVar18;\n  uint local_48 [2];\n  byte *local_40 [2];\n  \n  bVar18 = 0;\n  puVar2 = (undefined8 *)(param_3 + (long)(int)param_4 * 8);\n  pcVar13 = (char *)*puVar2;\n  if ((*pcVar13 != '-') || (*param_5 != '\0')) {\n                    \n    FUN_0016cdf0("../../gold/options.cc",0x5f0,"process_one_option");\n  }\n  if ((pcVar13[1] == '-') && (pcVar13[2] == '\0')) {\n    *param_5 = '\x01';\n    return (ulong)(param_4 + 1);\n  }\n  local_40[0] = (byte *)0x0;\n  local_48[0] = param_4;\n  lVar9 = FUN_001b2990(param_2,param_3,0,local_40,local_48);\n  uVar6 = local_48[0];\n  if (lVar9 != 0) {\n    (**(code **)**(undefined8 **)(lVar9 + 0x48))\n              (*(undefined8 **)(lVar9 + 0x48),*puVar2,local_40[0],param_1,param_1 + 8);\nLAB_001baba8:\n    return (ulong)local_48[0];\n  }\n  if (param_4 != local_48[0]) goto LAB_001bac94;\n  unaff_R15 = (long)(int)local_48[0];\n  unaff_R13 = 1;\n  pcVar13 = *(char **)(param_3 + unaff_R15 * 8);\n  if (*pcVar13 != '-') goto LAB_001bac94;\nLAB_001babe8:\n  if ((DAT_003c7c90 == '\0') && (iVar8 = FUN_002756c0(&DAT_003c7c90), iVar8 != 0)) {\n    DAT_003c7ca0 = &DAT_003c7cb0;\n                    \n    FUN_0015cbe0(&DAT_003c7ca0,"");\n    _DAT_003c7cc0 = 4;\n    DAT_003c7cc4 = 0x7a;\n    _DAT_003c7cc8 = "";\n    DAT_003c7cd0 = 0;\n    DAT_003c7cd8 = "Z-OPTION";\n    DAT_003c7ce0 = 0;\n    _DAT_003c7ce8 = 0;\n    DAT_003c7cf0 = 0;\n    __s = strchr(DAT_003c7ca0,0x5f);\n    if (__s != (char *)0x0) {\n      do {\n        *__s = '-';\n        __s = strchr(__s,0x5f);\n      } while (__s != (char *)0x0);\n      if ((DAT_003c7cd0 != 0) && (DAT_003c8128 != '\0')) {\n                    \n        FUN_001b2b90(&DAT_003c7ca0);\n      }\n    }\n    FUN_002757f0(&DAT_003c7c90);\n    __cxa_atexit(FUN_001bc860,&DAT_003c7ca0,&PTR_LOOP_003be5a8);\n  }\n  cVar4 = pcVar13[unaff_R13];\n  if (cVar4 == 'z') goto LAB_001bacb0;\n  if (0x7e < (int)cVar4 - 1U) goto LAB_001bac94;\n  puVar11 = *(undefined8 **)(&DAT_003c7d00 + (long)(int)cVar4 * 8);\n  if (puVar11 == (undefined8 *)0x0) goto LAB_001bac94;\n  do {\n    unaff_R13 = unaff_R13 + 1;\n    pbVar3 = (byte *)(pcVar13 + unaff_R13);\n    if (puVar11[7] == 0) {\n      local_40[0] = (byte *)0x0;\n      bVar5 = *pbVar3;\n      uVar7 = local_48[0];\n      pbVar3 = local_40[0];\n      if (bVar5 == 0) {\n        uVar7 = local_48[0] + 1;\n      }\n    }\n    else {\n      uVar1 = local_48[0] + 1;\n      uVar7 = uVar1;\n      if (*pbVar3 == 0) {\n        if (*(char *)(puVar11 + 8) == '\0') {\n          if (param_2 <= (int)uVar1) goto LAB_001baedd;\n          uVar7 = local_48[0] + 2;\n          pbVar3 = *(byte **)(param_3 + (long)(int)uVar1 * 8);\n        }\n        else {\n          pbVar3 = (byte *)puVar11[5];\n        }\n      }\n    }\n    local_48[0] = uVar7;\n    local_40[0] = pbVar3;\n    if ((char **)puVar11 == &DAT_003c7ca0) {\n      bVar17 = (char **)puVar11 == &DAT_003c7ca0;\n      bVar16 = puVar11 < &DAT_003c7ca0;\n      local_48[1] = 0;\n      lVar9 = 6;\n      pbVar14 = pbVar3;\n      pbVar15 = (byte *)0x314883;\n      do {\n        if (lVar9 == 0) break;\n        lVar9 = lVar9 + -1;\n        bVar16 = *pbVar14 < *pbVar15;\n        bVar17 = *pbVar14 == *pbVar15;\n        pbVar14 = pbVar14 + (ulong)bVar18 * -2 + 1;\n        pbVar15 = pbVar15 + (ulong)bVar18 * -2 + 1;\n      } while (bVar17);\n      if ((!bVar16 && !bVar17) == bVar16) {\n        local_40[0] = (byte *)0x314883;\n      }\n      puVar11 = (undefined8 *)FUN_001b2990(1,local_40,1,local_40,local_48 + 1);\n      if (puVar11 == (undefined8 *)0x0) {\n        uVar10 = gettext("unknown -z option");\n        FUN_001b06b0(uVar10,pbVar3);\n        uVar1 = local_48[0];\nLAB_001baedd:\n        local_48[0] = uVar1;\n        uVar10 = gettext("missing argument");\n        FUN_001b06b0(uVar10,pcVar13);\n                    \n        uVar12 = FUN_0014340a();\n        return uVar12;\n      }\n    }\n    (*(code *)**(undefined8 **)puVar11[9])\n              ((undefined8 *)puVar11[9],*puVar2,local_40[0],param_1,param_1 + 8);\n    if (local_48[0] != uVar6) goto LAB_001baba8;\n    pcVar13 = *(char **)(param_3 + unaff_R15 * 8);\n    if (*pcVar13 == '-') goto LAB_001babe8;\nLAB_001bac94:\n    pcVar13 = (char *)*puVar2;\n    uVar10 = gettext("unknown option");\n    FUN_001b06b0(uVar10,pcVar13);\nLAB_001bacb0:\n    puVar11 = &DAT_003c7ca0;\n  } while( true );\n}" type_identifier (function_declarator "FUN_001bab10(long param_1,int param_2,long param_3,uint param_4,char *param_5)" identifier (parameter_list "(long param_1,int param_2,long param_3,uint param_4,char *param_5)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "long param_3" (sized_type_specifier "long" long) identifier) , (parameter_declaration "uint param_4" type_identifier identifier) , (parameter_declaration "char *param_5" primitive_type (pointer_declarator "*param_5" * identifier)) ))) (compound_statement "{\n  uint uVar1;\n  undefined8 *puVar2;\n  byte *pbVar3;\n  char cVar4;\n  byte bVar5;\n  uint uVar6;\n  uint uVar7;\n  int iVar8;\n  long lVar9;\n  undefined8 uVar10;\n  undefined8 *puVar11;\n  char *__s;\n  ulong uVar12;\n  char *pcVar13;\n  byte *pbVar14;\n  byte *pbVar15;\n  long unaff_R13;\n  long unaff_R15;\n  bool bVar16;\n  bool bVar17;\n  byte bVar18;\n  uint local_48 [2];\n  byte *local_40 [2];\n  \n  bVar18 = 0;\n  puVar2 = (undefined8 *)(param_3 + (long)(int)param_4 * 8);\n  pcVar13 = (char *)*puVar2;\n  if ((*pcVar13 != '-') || (*param_5 != '\0')) {\n                    \n    FUN_0016cdf0("../../gold/options.cc",0x5f0,"process_one_option");\n  }\n  if ((pcVar13[1] == '-') && (pcVar13[2] == '\0')) {\n    *param_5 = '\x01';\n    return (ulong)(param_4 + 1);\n  }\n  local_40[0] = (byte *)0x0;\n  local_48[0] = param_4;\n  lVar9 = FUN_001b2990(param_2,param_3,0,local_40,local_48);\n  uVar6 = local_48[0];\n  if (lVar9 != 0) {\n    (**(code **)**(undefined8 **)(lVar9 + 0x48))\n              (*(undefined8 **)(lVar9 + 0x48),*puVar2,local_40[0],param_1,param_1 + 8);\nLAB_001baba8:\n    return (ulong)local_48[0];\n  }\n  if (param_4 != local_48[0]) goto LAB_001bac94;\n  unaff_R15 = (long)(int)local_48[0];\n  unaff_R13 = 1;\n  pcVar13 = *(char **)(param_3 + unaff_R15 * 8);\n  if (*pcVar13 != '-') goto LAB_001bac94;\nLAB_001babe8:\n  if ((DAT_003c7c90 == '\0') && (iVar8 = FUN_002756c0(&DAT_003c7c90), iVar8 != 0)) {\n    DAT_003c7ca0 = &DAT_003c7cb0;\n                    \n    FUN_0015cbe0(&DAT_003c7ca0,"");\n    _DAT_003c7cc0 = 4;\n    DAT_003c7cc4 = 0x7a;\n    _DAT_003c7cc8 = "";\n    DAT_003c7cd0 = 0;\n    DAT_003c7cd8 = "Z-OPTION";\n    DAT_003c7ce0 = 0;\n    _DAT_003c7ce8 = 0;\n    DAT_003c7cf0 = 0;\n    __s = strchr(DAT_003c7ca0,0x5f);\n    if (__s != (char *)0x0) {\n      do {\n        *__s = '-';\n        __s = strchr(__s,0x5f);\n      } while (__s != (char *)0x0);\n      if ((DAT_003c7cd0 != 0) && (DAT_003c8128 != '\0')) {\n                    \n        FUN_001b2b90(&DAT_003c7ca0);\n      }\n    }\n    FUN_002757f0(&DAT_003c7c90);\n    __cxa_atexit(FUN_001bc860,&DAT_003c7ca0,&PTR_LOOP_003be5a8);\n  }\n  cVar4 = pcVar13[unaff_R13];\n  if (cVar4 == 'z') goto LAB_001bacb0;\n  if (0x7e < (int)cVar4 - 1U) goto LAB_001bac94;\n  puVar11 = *(undefined8 **)(&DAT_003c7d00 + (long)(int)cVar4 * 8);\n  if (puVar11 == (undefined8 *)0x0) goto LAB_001bac94;\n  do {\n    unaff_R13 = unaff_R13 + 1;\n    pbVar3 = (byte *)(pcVar13 + unaff_R13);\n    if (puVar11[7] == 0) {\n      local_40[0] = (byte *)0x0;\n      bVar5 = *pbVar3;\n      uVar7 = local_48[0];\n      pbVar3 = local_40[0];\n      if (bVar5 == 0) {\n        uVar7 = local_48[0] + 1;\n      }\n    }\n    else {\n      uVar1 = local_48[0] + 1;\n      uVar7 = uVar1;\n      if (*pbVar3 == 0) {\n        if (*(char *)(puVar11 + 8) == '\0') {\n          if (param_2 <= (int)uVar1) goto LAB_001baedd;\n          uVar7 = local_48[0] + 2;\n          pbVar3 = *(byte **)(param_3 + (long)(int)uVar1 * 8);\n        }\n        else {\n          pbVar3 = (byte *)puVar11[5];\n        }\n      }\n    }\n    local_48[0] = uVar7;\n    local_40[0] = pbVar3;\n    if ((char **)puVar11 == &DAT_003c7ca0) {\n      bVar17 = (char **)puVar11 == &DAT_003c7ca0;\n      bVar16 = puVar11 < &DAT_003c7ca0;\n      local_48[1] = 0;\n      lVar9 = 6;\n      pbVar14 = pbVar3;\n      pbVar15 = (byte *)0x314883;\n      do {\n        if (lVar9 == 0) break;\n        lVar9 = lVar9 + -1;\n        bVar16 = *pbVar14 < *pbVar15;\n        bVar17 = *pbVar14 == *pbVar15;\n        pbVar14 = pbVar14 + (ulong)bVar18 * -2 + 1;\n        pbVar15 = pbVar15 + (ulong)bVar18 * -2 + 1;\n      } while (bVar17);\n      if ((!bVar16 && !bVar17) == bVar16) {\n        local_40[0] = (byte *)0x314883;\n      }\n      puVar11 = (undefined8 *)FUN_001b2990(1,local_40,1,local_40,local_48 + 1);\n      if (puVar11 == (undefined8 *)0x0) {\n        uVar10 = gettext("unknown -z option");\n        FUN_001b06b0(uVar10,pbVar3);\n        uVar1 = local_48[0];\nLAB_001baedd:\n        local_48[0] = uVar1;\n        uVar10 = gettext("missing argument");\n        FUN_001b06b0(uVar10,pcVar13);\n                    \n        uVar12 = FUN_0014340a();\n        return uVar12;\n      }\n    }\n    (*(code *)**(undefined8 **)puVar11[9])\n              ((undefined8 *)puVar11[9],*puVar2,local_40[0],param_1,param_1 + 8);\n    if (local_48[0] != uVar6) goto LAB_001baba8;\n    pcVar13 = *(char **)(param_3 + unaff_R15 * 8);\n    if (*pcVar13 == '-') goto LAB_001babe8;\nLAB_001bac94:\n    pcVar13 = (char *)*puVar2;\n    uVar10 = gettext("unknown option");\n    FUN_001b06b0(uVar10,pcVar13);\nLAB_001bacb0:\n    puVar11 = &DAT_003c7ca0;\n  } while( true );\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "undefined8 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "byte *pbVar3;" type_identifier (pointer_declarator "*pbVar3" * identifier) ;) (declaration "char cVar4;" primitive_type identifier ;) (declaration "byte bVar5;" type_identifier identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "long lVar9;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 uVar10;" type_identifier identifier ;) (declaration "undefined8 *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "char *__s;" primitive_type (pointer_declarator "*__s" * identifier) ;) (declaration "ulong uVar12;" type_identifier identifier ;) (declaration "char *pcVar13;" primitive_type (pointer_declarator "*pcVar13" * identifier) ;) (declaration "byte *pbVar14;" type_identifier (pointer_declarator "*pbVar14" * identifier) ;) (declaration "byte *pbVar15;" type_identifier (pointer_declarator "*pbVar15" * identifier) ;) (declaration "long unaff_R13;" (sized_type_specifier "long" long) identifier ;) (declaration "long unaff_R15;" (sized_type_specifier "long" long) identifier ;) (declaration "bool bVar16;" primitive_type identifier ;) (declaration "bool bVar17;" primitive_type identifier ;) (declaration "byte bVar18;" type_identifier identifier ;) (declaration "uint local_48 [2];" type_identifier (array_declarator "local_48 [2]" identifier [ number_literal ]) ;) (declaration "byte *local_40 [2];" type_identifier (pointer_declarator "*local_40 [2]" * (array_declarator "local_40 [2]" identifier [ number_literal ])) ;) (expression_statement "bVar18 = 0;" (assignment_expression "bVar18 = 0" identifier = number_literal) ;) (expression_statement "puVar2 = (undefined8 *)(param_3 + (long)(int)param_4 * 8);" (assignment_expression "puVar2 = (undefined8 *)(param_3 + (long)(int)param_4 * 8)" identifier = (cast_expression "(undefined8 *)(param_3 + (long)(int)param_4 * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + (long)(int)param_4 * 8)" ( (binary_expression "param_3 + (long)(int)param_4 * 8" identifier + (binary_expression "(long)(int)param_4 * 8" (cast_expression "(long)(int)param_4" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier)) * number_literal)) )))) ;) (expression_statement "pcVar13 = (char *)*puVar2;" (assignment_expression "pcVar13 = (char *)*puVar2" identifier = (cast_expression "(char *)*puVar2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar2" * identifier))) ;) (if_statement "if ((*pcVar13 != '-') || (*param_5 != '\0')) {\n                    \n    FUN_0016cdf0("../../gold/options.cc",0x5f0,"process_one_option");\n  }" if (parenthesized_expression "((*pcVar13 != '-') || (*param_5 != '\0'))" ( (binary_expression "(*pcVar13 != '-') || (*param_5 != '\0')" (parenthesized_expression "(*pcVar13 != '-')" ( (binary_expression "*pcVar13 != '-'" (pointer_expression "*pcVar13" * 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_0016cdf0("../../gold/options.cc",0x5f0,"process_one_option");\n  }" { (expression_statement "FUN_0016cdf0("../../gold/options.cc",0x5f0,"process_one_option");" (call_expression "FUN_0016cdf0("../../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 ((pcVar13[1] == '-') && (pcVar13[2] == '\0')) {\n    *param_5 = '\x01';\n    return (ulong)(param_4 + 1);\n  }" if (parenthesized_expression "((pcVar13[1] == '-') && (pcVar13[2] == '\0'))" ( (binary_expression "(pcVar13[1] == '-') && (pcVar13[2] == '\0')" (parenthesized_expression "(pcVar13[1] == '-')" ( (binary_expression "pcVar13[1] == '-'" (subscript_expression "pcVar13[1]" identifier [ number_literal ]) == (char_literal "'-'" ' character ')) )) && (parenthesized_expression "(pcVar13[2] == '\0')" ( (binary_expression "pcVar13[2] == '\0'" (subscript_expression "pcVar13[2]" identifier [ number_literal ]) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n    *param_5 = '\x01';\n    return (ulong)(param_4 + 1);\n  }" { (expression_statement "*param_5 = '\x01';" (assignment_expression "*param_5 = '\x01'" (pointer_expression "*param_5" * identifier) = (char_literal "'\x01'" ' escape_sequence ')) ;) (return_statement "return (ulong)(param_4 + 1);" return (call_expression "(ulong)(param_4 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(param_4 + 1)" ( (binary_expression "param_4 + 1" identifier + number_literal) ))) ;) })) (expression_statement "local_40[0] = (byte *)0x0;" (assignment_expression "local_40[0] = (byte *)0x0" (subscript_expression "local_40[0]" identifier [ number_literal ]) = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_48[0] = param_4;" (assignment_expression "local_48[0] = param_4" (subscript_expression "local_48[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "lVar9 = FUN_001b2990(param_2,param_3,0,local_40,local_48);" (assignment_expression "lVar9 = FUN_001b2990(param_2,param_3,0,local_40,local_48)" identifier = (call_expression "FUN_001b2990(param_2,param_3,0,local_40,local_48)" identifier (argument_list "(param_2,param_3,0,local_40,local_48)" ( identifier , identifier , number_literal , identifier , identifier )))) ;) (expression_statement "uVar6 = local_48[0];" (assignment_expression "uVar6 = local_48[0]" identifier = (subscript_expression "local_48[0]" identifier [ number_literal ])) ;) (if_statement "if (lVar9 != 0) {\n    (**(code **)**(undefined8 **)(lVar9 + 0x48))\n              (*(undefined8 **)(lVar9 + 0x48),*puVar2,local_40[0],param_1,param_1 + 8);\nLAB_001baba8:\n    return (ulong)local_48[0];\n  }" if (parenthesized_expression "(lVar9 != 0)" ( (binary_expression "lVar9 != 0" identifier != number_literal) )) (compound_statement "{\n    (**(code **)**(undefined8 **)(lVar9 + 0x48))\n              (*(undefined8 **)(lVar9 + 0x48),*puVar2,local_40[0],param_1,param_1 + 8);\nLAB_001baba8:\n    return (ulong)local_48[0];\n  }" { (expression_statement "(**(code **)**(undefined8 **)(lVar9 + 0x48))\n              (*(undefined8 **)(lVar9 + 0x48),*puVar2,local_40[0],param_1,param_1 + 8);" (call_expression "(**(code **)**(undefined8 **)(lVar9 + 0x48))\n              (*(undefined8 **)(lVar9 + 0x48),*puVar2,local_40[0],param_1,param_1 + 8)" (parenthesized_expression "(**(code **)**(undefined8 **)(lVar9 + 0x48))" ( (pointer_expression "**(code **)**(undefined8 **)(lVar9 + 0x48)" * (pointer_expression "*(code **)**(undefined8 **)(lVar9 + 0x48)" * (cast_expression "(code **)**(undefined8 **)(lVar9 + 0x48)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "**(undefined8 **)(lVar9 + 0x48)" * (pointer_expression "*(undefined8 **)(lVar9 + 0x48)" * (cast_expression "(undefined8 **)(lVar9 + 0x48)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar9 + 0x48)" ( (binary_expression "lVar9 + 0x48" identifier + number_literal) )))))))) )) (argument_list "(*(undefined8 **)(lVar9 + 0x48),*puVar2,local_40[0],param_1,param_1 + 8)" ( (pointer_expression "*(undefined8 **)(lVar9 + 0x48)" * (cast_expression "(undefined8 **)(lVar9 + 0x48)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar9 + 0x48)" ( (binary_expression "lVar9 + 0x48" identifier + number_literal) )))) , (pointer_expression "*puVar2" * identifier) , (subscript_expression "local_40[0]" identifier [ number_literal ]) , identifier , (binary_expression "param_1 + 8" identifier + number_literal) ))) ;) (labeled_statement "LAB_001baba8:\n    return (ulong)local_48[0];" statement_identifier : (return_statement "return (ulong)local_48[0];" return (cast_expression "(ulong)local_48[0]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "local_48[0]" identifier [ number_literal ])) ;)) })) (if_statement "if (param_4 != local_48[0]) goto LAB_001bac94;" if (parenthesized_expression "(param_4 != local_48[0])" ( (binary_expression "param_4 != local_48[0]" identifier != (subscript_expression "local_48[0]" identifier [ number_literal ])) )) (goto_statement "goto LAB_001bac94;" goto statement_identifier ;)) (expression_statement "unaff_R15 = (long)(int)local_48[0];" (assignment_expression "unaff_R15 = (long)(int)local_48[0]" identifier = (cast_expression "(long)(int)local_48[0]" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)local_48[0]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "local_48[0]" identifier [ number_literal ])))) ;) (expression_statement "unaff_R13 = 1;" (assignment_expression "unaff_R13 = 1" identifier = number_literal) ;) (expression_statement "pcVar13 = *(char **)(param_3 + unaff_R15 * 8);" (assignment_expression "pcVar13 = *(char **)(param_3 + unaff_R15 * 8)" identifier = (pointer_expression "*(char **)(param_3 + unaff_R15 * 8)" * (cast_expression "(char **)(param_3 + unaff_R15 * 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_3 + unaff_R15 * 8)" ( (binary_expression "param_3 + unaff_R15 * 8" identifier + (binary_expression "unaff_R15 * 8" identifier * number_literal)) ))))) ;) (if_statement "if (*pcVar13 != '-') goto LAB_001bac94;" if (parenthesized_expression "(*pcVar13 != '-')" ( (binary_expression "*pcVar13 != '-'" (pointer_expression "*pcVar13" * identifier) != (char_literal "'-'" ' character ')) )) (goto_statement "goto LAB_001bac94;" goto statement_identifier ;)) (labeled_statement "LAB_001babe8:\n  if ((DAT_003c7c90 == '\0') && (iVar8 = FUN_002756c0(&DAT_003c7c90), iVar8 != 0)) {\n    DAT_003c7ca0 = &DAT_003c7cb0;\n                    \n    FUN_0015cbe0(&DAT_003c7ca0,"");\n    _DAT_003c7cc0 = 4;\n    DAT_003c7cc4 = 0x7a;\n    _DAT_003c7cc8 = "";\n    DAT_003c7cd0 = 0;\n    DAT_003c7cd8 = "Z-OPTION";\n    DAT_003c7ce0 = 0;\n    _DAT_003c7ce8 = 0;\n    DAT_003c7cf0 = 0;\n    __s = strchr(DAT_003c7ca0,0x5f);\n    if (__s != (char *)0x0) {\n      do {\n        *__s = '-';\n        __s = strchr(__s,0x5f);\n      } while (__s != (char *)0x0);\n      if ((DAT_003c7cd0 != 0) && (DAT_003c8128 != '\0')) {\n                    \n        FUN_001b2b90(&DAT_003c7ca0);\n      }\n    }\n    FUN_002757f0(&DAT_003c7c90);\n    __cxa_atexit(FUN_001bc860,&DAT_003c7ca0,&PTR_LOOP_003be5a8);\n  }" statement_identifier : (if_statement "if ((DAT_003c7c90 == '\0') && (iVar8 = FUN_002756c0(&DAT_003c7c90), iVar8 != 0)) {\n    DAT_003c7ca0 = &DAT_003c7cb0;\n                    \n    FUN_0015cbe0(&DAT_003c7ca0,"");\n    _DAT_003c7cc0 = 4;\n    DAT_003c7cc4 = 0x7a;\n    _DAT_003c7cc8 = "";\n    DAT_003c7cd0 = 0;\n    DAT_003c7cd8 = "Z-OPTION";\n    DAT_003c7ce0 = 0;\n    _DAT_003c7ce8 = 0;\n    DAT_003c7cf0 = 0;\n    __s = strchr(DAT_003c7ca0,0x5f);\n    if (__s != (char *)0x0) {\n      do {\n        *__s = '-';\n        __s = strchr(__s,0x5f);\n      } while (__s != (char *)0x0);\n      if ((DAT_003c7cd0 != 0) && (DAT_003c8128 != '\0')) {\n                    \n        FUN_001b2b90(&DAT_003c7ca0);\n      }\n    }\n    FUN_002757f0(&DAT_003c7c90);\n    __cxa_atexit(FUN_001bc860,&DAT_003c7ca0,&PTR_LOOP_003be5a8);\n  }" if (parenthesized_expression "((DAT_003c7c90 == '\0') && (iVar8 = FUN_002756c0(&DAT_003c7c90), iVar8 != 0))" ( (binary_expression "(DAT_003c7c90 == '\0') && (iVar8 = FUN_002756c0(&DAT_003c7c90), iVar8 != 0)" (parenthesized_expression "(DAT_003c7c90 == '\0')" ( (binary_expression "DAT_003c7c90 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(iVar8 = FUN_002756c0(&DAT_003c7c90), iVar8 != 0)" ( (comma_expression "iVar8 = FUN_002756c0(&DAT_003c7c90), iVar8 != 0" (assignment_expression "iVar8 = FUN_002756c0(&DAT_003c7c90)" identifier = (call_expression "FUN_002756c0(&DAT_003c7c90)" identifier (argument_list "(&DAT_003c7c90)" ( (pointer_expression "&DAT_003c7c90" & identifier) )))) , (binary_expression "iVar8 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n    DAT_003c7ca0 = &DAT_003c7cb0;\n                    \n    FUN_0015cbe0(&DAT_003c7ca0,"");\n    _DAT_003c7cc0 = 4;\n    DAT_003c7cc4 = 0x7a;\n    _DAT_003c7cc8 = "";\n    DAT_003c7cd0 = 0;\n    DAT_003c7cd8 = "Z-OPTION";\n    DAT_003c7ce0 = 0;\n    _DAT_003c7ce8 = 0;\n    DAT_003c7cf0 = 0;\n    __s = strchr(DAT_003c7ca0,0x5f);\n    if (__s != (char *)0x0) {\n      do {\n        *__s = '-';\n        __s = strchr(__s,0x5f);\n      } while (__s != (char *)0x0);\n      if ((DAT_003c7cd0 != 0) && (DAT_003c8128 != '\0')) {\n                    \n        FUN_001b2b90(&DAT_003c7ca0);\n      }\n    }\n    FUN_002757f0(&DAT_003c7c90);\n    __cxa_atexit(FUN_001bc860,&DAT_003c7ca0,&PTR_LOOP_003be5a8);\n  }" { (expression_statement "DAT_003c7ca0 = &DAT_003c7cb0;" (assignment_expression "DAT_003c7ca0 = &DAT_003c7cb0" identifier = (pointer_expression "&DAT_003c7cb0" & identifier)) ;) (expression_statement "FUN_0015cbe0(&DAT_003c7ca0,"");" (call_expression "FUN_0015cbe0(&DAT_003c7ca0,"")" identifier (argument_list "(&DAT_003c7ca0,"")" ( (pointer_expression "&DAT_003c7ca0" & identifier) , (string_literal """" " ") ))) ;) (expression_statement "_DAT_003c7cc0 = 4;" (assignment_expression "_DAT_003c7cc0 = 4" identifier = number_literal) ;) (expression_statement "DAT_003c7cc4 = 0x7a;" (assignment_expression "DAT_003c7cc4 = 0x7a" identifier = number_literal) ;) (expression_statement "_DAT_003c7cc8 = "";" (assignment_expression "_DAT_003c7cc8 = """ identifier = (string_literal """" " ")) ;) (expression_statement "DAT_003c7cd0 = 0;" (assignment_expression "DAT_003c7cd0 = 0" identifier = number_literal) ;) (expression_statement "DAT_003c7cd8 = "Z-OPTION";" (assignment_expression "DAT_003c7cd8 = "Z-OPTION"" identifier = (string_literal ""Z-OPTION"" " string_content ")) ;) (expression_statement "DAT_003c7ce0 = 0;" (assignment_expression "DAT_003c7ce0 = 0" identifier = number_literal) ;) (expression_statement "_DAT_003c7ce8 = 0;" (assignment_expression "_DAT_003c7ce8 = 0" identifier = number_literal) ;) (expression_statement "DAT_003c7cf0 = 0;" (assignment_expression "DAT_003c7cf0 = 0" identifier = number_literal) ;) (expression_statement "__s = strchr(DAT_003c7ca0,0x5f);" (assignment_expression "__s = strchr(DAT_003c7ca0,0x5f)" identifier = (call_expression "strchr(DAT_003c7ca0,0x5f)" identifier (argument_list "(DAT_003c7ca0,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_003c7cd0 != 0) && (DAT_003c8128 != '\0')) {\n                    \n        FUN_001b2b90(&DAT_003c7ca0);\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_003c7cd0 != 0) && (DAT_003c8128 != '\0')) {\n                    \n        FUN_001b2b90(&DAT_003c7ca0);\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_003c7cd0 != 0) && (DAT_003c8128 != '\0')) {\n                    \n        FUN_001b2b90(&DAT_003c7ca0);\n      }" if (parenthesized_expression "((DAT_003c7cd0 != 0) && (DAT_003c8128 != '\0'))" ( (binary_expression "(DAT_003c7cd0 != 0) && (DAT_003c8128 != '\0')" (parenthesized_expression "(DAT_003c7cd0 != 0)" ( (binary_expression "DAT_003c7cd0 != 0" identifier != number_literal) )) && (parenthesized_expression "(DAT_003c8128 != '\0')" ( (binary_expression "DAT_003c8128 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n                    \n        FUN_001b2b90(&DAT_003c7ca0);\n      }" { (expression_statement "FUN_001b2b90(&DAT_003c7ca0);" (call_expression "FUN_001b2b90(&DAT_003c7ca0)" identifier (argument_list "(&DAT_003c7ca0)" ( (pointer_expression "&DAT_003c7ca0" & identifier) ))) ;) })) })) (expression_statement "FUN_002757f0(&DAT_003c7c90);" (call_expression "FUN_002757f0(&DAT_003c7c90)" identifier (argument_list "(&DAT_003c7c90)" ( (pointer_expression "&DAT_003c7c90" & identifier) ))) ;) (expression_statement "__cxa_atexit(FUN_001bc860,&DAT_003c7ca0,&PTR_LOOP_003be5a8);" (call_expression "__cxa_atexit(FUN_001bc860,&DAT_003c7ca0,&PTR_LOOP_003be5a8)" identifier (argument_list "(FUN_001bc860,&DAT_003c7ca0,&PTR_LOOP_003be5a8)" ( identifier , (pointer_expression "&DAT_003c7ca0" & identifier) , (pointer_expression "&PTR_LOOP_003be5a8" & identifier) ))) ;) }))) (expression_statement "cVar4 = pcVar13[unaff_R13];" (assignment_expression "cVar4 = pcVar13[unaff_R13]" identifier = (subscript_expression "pcVar13[unaff_R13]" identifier [ identifier ])) ;) (if_statement "if (cVar4 == 'z') goto LAB_001bacb0;" if (parenthesized_expression "(cVar4 == 'z')" ( (binary_expression "cVar4 == 'z'" identifier == (char_literal "'z'" ' character ')) )) (goto_statement "goto LAB_001bacb0;" goto statement_identifier ;)) (if_statement "if (0x7e < (int)cVar4 - 1U) goto LAB_001bac94;" if (parenthesized_expression "(0x7e < (int)cVar4 - 1U)" ( (binary_expression "0x7e < (int)cVar4 - 1U" number_literal < (binary_expression "(int)cVar4 - 1U" (cast_expression "(int)cVar4" ( (type_descriptor "int" primitive_type) ) identifier) - number_literal)) )) (goto_statement "goto LAB_001bac94;" goto statement_identifier ;)) (expression_statement "puVar11 = *(undefined8 **)(&DAT_003c7d00 + (long)(int)cVar4 * 8);" (assignment_expression "puVar11 = *(undefined8 **)(&DAT_003c7d00 + (long)(int)cVar4 * 8)" identifier = (pointer_expression "*(undefined8 **)(&DAT_003c7d00 + (long)(int)cVar4 * 8)" * (cast_expression "(undefined8 **)(&DAT_003c7d00 + (long)(int)cVar4 * 8)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(&DAT_003c7d00 + (long)(int)cVar4 * 8)" ( (binary_expression "&DAT_003c7d00 + (long)(int)cVar4 * 8" (pointer_expression "&DAT_003c7d00" & identifier) + (binary_expression "(long)(int)cVar4 * 8" (cast_expression "(long)(int)cVar4" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)cVar4" ( (type_descriptor "int" primitive_type) ) identifier)) * number_literal)) ))))) ;) (if_statement "if (puVar11 == (undefined8 *)0x0) goto LAB_001bac94;" if (parenthesized_expression "(puVar11 == (undefined8 *)0x0)" ( (binary_expression "puVar11 == (undefined8 *)0x0" identifier == (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_001bac94;" goto statement_identifier ;)) (do_statement "do {\n    unaff_R13 = unaff_R13 + 1;\n    pbVar3 = (byte *)(pcVar13 + unaff_R13);\n    if (puVar11[7] == 0) {\n      local_40[0] = (byte *)0x0;\n      bVar5 = *pbVar3;\n      uVar7 = local_48[0];\n      pbVar3 = local_40[0];\n      if (bVar5 == 0) {\n        uVar7 = local_48[0] + 1;\n      }\n    }\n    else {\n      uVar1 = local_48[0] + 1;\n      uVar7 = uVar1;\n      if (*pbVar3 == 0) {\n        if (*(char *)(puVar11 + 8) == '\0') {\n          if (param_2 <= (int)uVar1) goto LAB_001baedd;\n          uVar7 = local_48[0] + 2;\n          pbVar3 = *(byte **)(param_3 + (long)(int)uVar1 * 8);\n        }\n        else {\n          pbVar3 = (byte *)puVar11[5];\n        }\n      }\n    }\n    local_48[0] = uVar7;\n    local_40[0] = pbVar3;\n    if ((char **)puVar11 == &DAT_003c7ca0) {\n      bVar17 = (char **)puVar11 == &DAT_003c7ca0;\n      bVar16 = puVar11 < &DAT_003c7ca0;\n      local_48[1] = 0;\n      lVar9 = 6;\n      pbVar14 = pbVar3;\n      pbVar15 = (byte *)0x314883;\n      do {\n        if (lVar9 == 0) break;\n        lVar9 = lVar9 + -1;\n        bVar16 = *pbVar14 < *pbVar15;\n        bVar17 = *pbVar14 == *pbVar15;\n        pbVar14 = pbVar14 + (ulong)bVar18 * -2 + 1;\n        pbVar15 = pbVar15 + (ulong)bVar18 * -2 + 1;\n      } while (bVar17);\n      if ((!bVar16 && !bVar17) == bVar16) {\n        local_40[0] = (byte *)0x314883;\n      }\n      puVar11 = (undefined8 *)FUN_001b2990(1,local_40,1,local_40,local_48 + 1);\n      if (puVar11 == (undefined8 *)0x0) {\n        uVar10 = gettext("unknown -z option");\n        FUN_001b06b0(uVar10,pbVar3);\n        uVar1 = local_48[0];\nLAB_001baedd:\n        local_48[0] = uVar1;\n        uVar10 = gettext("missing argument");\n        FUN_001b06b0(uVar10,pcVar13);\n                    \n        uVar12 = FUN_0014340a();\n        return uVar12;\n      }\n    }\n    (*(code *)**(undefined8 **)puVar11[9])\n              ((undefined8 *)puVar11[9],*puVar2,local_40[0],param_1,param_1 + 8);\n    if (local_48[0] != uVar6) goto LAB_001baba8;\n    pcVar13 = *(char **)(param_3 + unaff_R15 * 8);\n    if (*pcVar13 == '-') goto LAB_001babe8;\nLAB_001bac94:\n    pcVar13 = (char *)*puVar2;\n    uVar10 = gettext("unknown option");\n    FUN_001b06b0(uVar10,pcVar13);\nLAB_001bacb0:\n    puVar11 = &DAT_003c7ca0;\n  } while( true );" do (compound_statement "{\n    unaff_R13 = unaff_R13 + 1;\n    pbVar3 = (byte *)(pcVar13 + unaff_R13);\n    if (puVar11[7] == 0) {\n      local_40[0] = (byte *)0x0;\n      bVar5 = *pbVar3;\n      uVar7 = local_48[0];\n      pbVar3 = local_40[0];\n      if (bVar5 == 0) {\n        uVar7 = local_48[0] + 1;\n      }\n    }\n    else {\n      uVar1 = local_48[0] + 1;\n      uVar7 = uVar1;\n      if (*pbVar3 == 0) {\n        if (*(char *)(puVar11 + 8) == '\0') {\n          if (param_2 <= (int)uVar1) goto LAB_001baedd;\n          uVar7 = local_48[0] + 2;\n          pbVar3 = *(byte **)(param_3 + (long)(int)uVar1 * 8);\n        }\n        else {\n          pbVar3 = (byte *)puVar11[5];\n        }\n      }\n    }\n    local_48[0] = uVar7;\n    local_40[0] = pbVar3;\n    if ((char **)puVar11 == &DAT_003c7ca0) {\n      bVar17 = (char **)puVar11 == &DAT_003c7ca0;\n      bVar16 = puVar11 < &DAT_003c7ca0;\n      local_48[1] = 0;\n      lVar9 = 6;\n      pbVar14 = pbVar3;\n      pbVar15 = (byte *)0x314883;\n      do {\n        if (lVar9 == 0) break;\n        lVar9 = lVar9 + -1;\n        bVar16 = *pbVar14 < *pbVar15;\n        bVar17 = *pbVar14 == *pbVar15;\n        pbVar14 = pbVar14 + (ulong)bVar18 * -2 + 1;\n        pbVar15 = pbVar15 + (ulong)bVar18 * -2 + 1;\n      } while (bVar17);\n      if ((!bVar16 && !bVar17) == bVar16) {\n        local_40[0] = (byte *)0x314883;\n      }\n      puVar11 = (undefined8 *)FUN_001b2990(1,local_40,1,local_40,local_48 + 1);\n      if (puVar11 == (undefined8 *)0x0) {\n        uVar10 = gettext("unknown -z option");\n        FUN_001b06b0(uVar10,pbVar3);\n        uVar1 = local_48[0];\nLAB_001baedd:\n        local_48[0] = uVar1;\n        uVar10 = gettext("missing argument");\n        FUN_001b06b0(uVar10,pcVar13);\n                    \n        uVar12 = FUN_0014340a();\n        return uVar12;\n      }\n    }\n    (*(code *)**(undefined8 **)puVar11[9])\n              ((undefined8 *)puVar11[9],*puVar2,local_40[0],param_1,param_1 + 8);\n    if (local_48[0] != uVar6) goto LAB_001baba8;\n    pcVar13 = *(char **)(param_3 + unaff_R15 * 8);\n    if (*pcVar13 == '-') goto LAB_001babe8;\nLAB_001bac94:\n    pcVar13 = (char *)*puVar2;\n    uVar10 = gettext("unknown option");\n    FUN_001b06b0(uVar10,pcVar13);\nLAB_001bacb0:\n    puVar11 = &DAT_003c7ca0;\n  }" { (expression_statement "unaff_R13 = unaff_R13 + 1;" (assignment_expression "unaff_R13 = unaff_R13 + 1" identifier = (binary_expression "unaff_R13 + 1" identifier + number_literal)) ;) (expression_statement "pbVar3 = (byte *)(pcVar13 + unaff_R13);" (assignment_expression "pbVar3 = (byte *)(pcVar13 + unaff_R13)" identifier = (cast_expression "(byte *)(pcVar13 + unaff_R13)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar13 + unaff_R13)" ( (binary_expression "pcVar13 + unaff_R13" identifier + identifier) )))) ;) (if_statement "if (puVar11[7] == 0) {\n      local_40[0] = (byte *)0x0;\n      bVar5 = *pbVar3;\n      uVar7 = local_48[0];\n      pbVar3 = local_40[0];\n      if (bVar5 == 0) {\n        uVar7 = local_48[0] + 1;\n      }\n    }\n    else {\n      uVar1 = local_48[0] + 1;\n      uVar7 = uVar1;\n      if (*pbVar3 == 0) {\n        if (*(char *)(puVar11 + 8) == '\0') {\n          if (param_2 <= (int)uVar1) goto LAB_001baedd;\n          uVar7 = local_48[0] + 2;\n          pbVar3 = *(byte **)(param_3 + (long)(int)uVar1 * 8);\n        }\n        else {\n          pbVar3 = (byte *)puVar11[5];\n        }\n      }\n    }" if (parenthesized_expression "(puVar11[7] == 0)" ( (binary_expression "puVar11[7] == 0" (subscript_expression "puVar11[7]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n      local_40[0] = (byte *)0x0;\n      bVar5 = *pbVar3;\n      uVar7 = local_48[0];\n      pbVar3 = local_40[0];\n      if (bVar5 == 0) {\n        uVar7 = local_48[0] + 1;\n      }\n    }" { (expression_statement "local_40[0] = (byte *)0x0;" (assignment_expression "local_40[0] = (byte *)0x0" (subscript_expression "local_40[0]" identifier [ number_literal ]) = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "bVar5 = *pbVar3;" (assignment_expression "bVar5 = *pbVar3" identifier = (pointer_expression "*pbVar3" * identifier)) ;) (expression_statement "uVar7 = local_48[0];" (assignment_expression "uVar7 = local_48[0]" identifier = (subscript_expression "local_48[0]" identifier [ number_literal ])) ;) (expression_statement "pbVar3 = local_40[0];" (assignment_expression "pbVar3 = local_40[0]" identifier = (subscript_expression "local_40[0]" identifier [ number_literal ])) ;) (if_statement "if (bVar5 == 0) {\n        uVar7 = local_48[0] + 1;\n      }" if (parenthesized_expression "(bVar5 == 0)" ( (binary_expression "bVar5 == 0" identifier == number_literal) )) (compound_statement "{\n        uVar7 = local_48[0] + 1;\n      }" { (expression_statement "uVar7 = local_48[0] + 1;" (assignment_expression "uVar7 = local_48[0] + 1" identifier = (binary_expression "local_48[0] + 1" (subscript_expression "local_48[0]" identifier [ number_literal ]) + number_literal)) ;) })) }) (else_clause "else {\n      uVar1 = local_48[0] + 1;\n      uVar7 = uVar1;\n      if (*pbVar3 == 0) {\n        if (*(char *)(puVar11 + 8) == '\0') {\n          if (param_2 <= (int)uVar1) goto LAB_001baedd;\n          uVar7 = local_48[0] + 2;\n          pbVar3 = *(byte **)(param_3 + (long)(int)uVar1 * 8);\n        }\n        else {\n          pbVar3 = (byte *)puVar11[5];\n        }\n      }\n    }" else (compound_statement "{\n      uVar1 = local_48[0] + 1;\n      uVar7 = uVar1;\n      if (*pbVar3 == 0) {\n        if (*(char *)(puVar11 + 8) == '\0') {\n          if (param_2 <= (int)uVar1) goto LAB_001baedd;\n          uVar7 = local_48[0] + 2;\n          pbVar3 = *(byte **)(param_3 + (long)(int)uVar1 * 8);\n        }\n        else {\n          pbVar3 = (byte *)puVar11[5];\n        }\n      }\n    }" { (expression_statement "uVar1 = local_48[0] + 1;" (assignment_expression "uVar1 = local_48[0] + 1" identifier = (binary_expression "local_48[0] + 1" (subscript_expression "local_48[0]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "uVar7 = uVar1;" (assignment_expression "uVar7 = uVar1" identifier = identifier) ;) (if_statement "if (*pbVar3 == 0) {\n        if (*(char *)(puVar11 + 8) == '\0') {\n          if (param_2 <= (int)uVar1) goto LAB_001baedd;\n          uVar7 = local_48[0] + 2;\n          pbVar3 = *(byte **)(param_3 + (long)(int)uVar1 * 8);\n        }\n        else {\n          pbVar3 = (byte *)puVar11[5];\n        }\n      }" if (parenthesized_expression "(*pbVar3 == 0)" ( (binary_expression "*pbVar3 == 0" (pointer_expression "*pbVar3" * identifier) == number_literal) )) (compound_statement "{\n        if (*(char *)(puVar11 + 8) == '\0') {\n          if (param_2 <= (int)uVar1) goto LAB_001baedd;\n          uVar7 = local_48[0] + 2;\n          pbVar3 = *(byte **)(param_3 + (long)(int)uVar1 * 8);\n        }\n        else {\n          pbVar3 = (byte *)puVar11[5];\n        }\n      }" { (if_statement "if (*(char *)(puVar11 + 8) == '\0') {\n          if (param_2 <= (int)uVar1) goto LAB_001baedd;\n          uVar7 = local_48[0] + 2;\n          pbVar3 = *(byte **)(param_3 + (long)(int)uVar1 * 8);\n        }\n        else {\n          pbVar3 = (byte *)puVar11[5];\n        }" if (parenthesized_expression "(*(char *)(puVar11 + 8) == '\0')" ( (binary_expression "*(char *)(puVar11 + 8) == '\0'" (pointer_expression "*(char *)(puVar11 + 8)" * (cast_expression "(char *)(puVar11 + 8)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 8)" ( (binary_expression "puVar11 + 8" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          if (param_2 <= (int)uVar1) goto LAB_001baedd;\n          uVar7 = local_48[0] + 2;\n          pbVar3 = *(byte **)(param_3 + (long)(int)uVar1 * 8);\n        }" { (if_statement "if (param_2 <= (int)uVar1) goto LAB_001baedd;" if (parenthesized_expression "(param_2 <= (int)uVar1)" ( (binary_expression "param_2 <= (int)uVar1" identifier <= (cast_expression "(int)uVar1" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_001baedd;" goto statement_identifier ;)) (expression_statement "uVar7 = local_48[0] + 2;" (assignment_expression "uVar7 = local_48[0] + 2" identifier = (binary_expression "local_48[0] + 2" (subscript_expression "local_48[0]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "pbVar3 = *(byte **)(param_3 + (long)(int)uVar1 * 8);" (assignment_expression "pbVar3 = *(byte **)(param_3 + (long)(int)uVar1 * 8)" identifier = (pointer_expression "*(byte **)(param_3 + (long)(int)uVar1 * 8)" * (cast_expression "(byte **)(param_3 + (long)(int)uVar1 * 8)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_3 + (long)(int)uVar1 * 8)" ( (binary_expression "param_3 + (long)(int)uVar1 * 8" identifier + (binary_expression "(long)(int)uVar1 * 8" (cast_expression "(long)(int)uVar1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)uVar1" ( (type_descriptor "int" primitive_type) ) identifier)) * number_literal)) ))))) ;) }) (else_clause "else {\n          pbVar3 = (byte *)puVar11[5];\n        }" else (compound_statement "{\n          pbVar3 = (byte *)puVar11[5];\n        }" { (expression_statement "pbVar3 = (byte *)puVar11[5];" (assignment_expression "pbVar3 = (byte *)puVar11[5]" identifier = (cast_expression "(byte *)puVar11[5]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar11[5]" identifier [ number_literal ]))) ;) }))) })) }))) (expression_statement "local_48[0] = uVar7;" (assignment_expression "local_48[0] = uVar7" (subscript_expression "local_48[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_40[0] = pbVar3;" (assignment_expression "local_40[0] = pbVar3" (subscript_expression "local_40[0]" identifier [ number_literal ]) = identifier) ;) (if_statement "if ((char **)puVar11 == &DAT_003c7ca0) {\n      bVar17 = (char **)puVar11 == &DAT_003c7ca0;\n      bVar16 = puVar11 < &DAT_003c7ca0;\n      local_48[1] = 0;\n      lVar9 = 6;\n      pbVar14 = pbVar3;\n      pbVar15 = (byte *)0x314883;\n      do {\n        if (lVar9 == 0) break;\n        lVar9 = lVar9 + -1;\n        bVar16 = *pbVar14 < *pbVar15;\n        bVar17 = *pbVar14 == *pbVar15;\n        pbVar14 = pbVar14 + (ulong)bVar18 * -2 + 1;\n        pbVar15 = pbVar15 + (ulong)bVar18 * -2 + 1;\n      } while (bVar17);\n      if ((!bVar16 && !bVar17) == bVar16) {\n        local_40[0] = (byte *)0x314883;\n      }\n      puVar11 = (undefined8 *)FUN_001b2990(1,local_40,1,local_40,local_48 + 1);\n      if (puVar11 == (undefined8 *)0x0) {\n        uVar10 = gettext("unknown -z option");\n        FUN_001b06b0(uVar10,pbVar3);\n        uVar1 = local_48[0];\nLAB_001baedd:\n        local_48[0] = uVar1;\n        uVar10 = gettext("missing argument");\n        FUN_001b06b0(uVar10,pcVar13);\n                    \n        uVar12 = FUN_0014340a();\n        return uVar12;\n      }\n    }" if (parenthesized_expression "((char **)puVar11 == &DAT_003c7ca0)" ( (binary_expression "(char **)puVar11 == &DAT_003c7ca0" (cast_expression "(char **)puVar11" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier) == (pointer_expression "&DAT_003c7ca0" & identifier)) )) (compound_statement "{\n      bVar17 = (char **)puVar11 == &DAT_003c7ca0;\n      bVar16 = puVar11 < &DAT_003c7ca0;\n      local_48[1] = 0;\n      lVar9 = 6;\n      pbVar14 = pbVar3;\n      pbVar15 = (byte *)0x314883;\n      do {\n        if (lVar9 == 0) break;\n        lVar9 = lVar9 + -1;\n        bVar16 = *pbVar14 < *pbVar15;\n        bVar17 = *pbVar14 == *pbVar15;\n        pbVar14 = pbVar14 + (ulong)bVar18 * -2 + 1;\n        pbVar15 = pbVar15 + (ulong)bVar18 * -2 + 1;\n      } while (bVar17);\n      if ((!bVar16 && !bVar17) == bVar16) {\n        local_40[0] = (byte *)0x314883;\n      }\n      puVar11 = (undefined8 *)FUN_001b2990(1,local_40,1,local_40,local_48 + 1);\n      if (puVar11 == (undefined8 *)0x0) {\n        uVar10 = gettext("unknown -z option");\n        FUN_001b06b0(uVar10,pbVar3);\n        uVar1 = local_48[0];\nLAB_001baedd:\n        local_48[0] = uVar1;\n        uVar10 = gettext("missing argument");\n        FUN_001b06b0(uVar10,pcVar13);\n                    \n        uVar12 = FUN_0014340a();\n        return uVar12;\n      }\n    }" { (expression_statement "bVar17 = (char **)puVar11 == &DAT_003c7ca0;" (assignment_expression "bVar17 = (char **)puVar11 == &DAT_003c7ca0" identifier = (binary_expression "(char **)puVar11 == &DAT_003c7ca0" (cast_expression "(char **)puVar11" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier) == (pointer_expression "&DAT_003c7ca0" & identifier))) ;) (expression_statement "bVar16 = puVar11 < &DAT_003c7ca0;" (assignment_expression "bVar16 = puVar11 < &DAT_003c7ca0" identifier = (binary_expression "puVar11 < &DAT_003c7ca0" identifier < (pointer_expression "&DAT_003c7ca0" & identifier))) ;) (expression_statement "local_48[1] = 0;" (assignment_expression "local_48[1] = 0" (subscript_expression "local_48[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "lVar9 = 6;" (assignment_expression "lVar9 = 6" identifier = number_literal) ;) (expression_statement "pbVar14 = pbVar3;" (assignment_expression "pbVar14 = pbVar3" identifier = identifier) ;) (expression_statement "pbVar15 = (byte *)0x314883;" (assignment_expression "pbVar15 = (byte *)0x314883" identifier = (cast_expression "(byte *)0x314883" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n        if (lVar9 == 0) break;\n        lVar9 = lVar9 + -1;\n        bVar16 = *pbVar14 < *pbVar15;\n        bVar17 = *pbVar14 == *pbVar15;\n        pbVar14 = pbVar14 + (ulong)bVar18 * -2 + 1;\n        pbVar15 = pbVar15 + (ulong)bVar18 * -2 + 1;\n      } while (bVar17);" do (compound_statement "{\n        if (lVar9 == 0) break;\n        lVar9 = lVar9 + -1;\n        bVar16 = *pbVar14 < *pbVar15;\n        bVar17 = *pbVar14 == *pbVar15;\n        pbVar14 = pbVar14 + (ulong)bVar18 * -2 + 1;\n        pbVar15 = pbVar15 + (ulong)bVar18 * -2 + 1;\n      }" { (if_statement "if (lVar9 == 0) break;" if (parenthesized_expression "(lVar9 == 0)" ( (binary_expression "lVar9 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar9 = lVar9 + -1;" (assignment_expression "lVar9 = lVar9 + -1" identifier = (binary_expression "lVar9 + -1" identifier + number_literal)) ;) (expression_statement "bVar16 = *pbVar14 < *pbVar15;" (assignment_expression "bVar16 = *pbVar14 < *pbVar15" identifier = (binary_expression "*pbVar14 < *pbVar15" (pointer_expression "*pbVar14" * identifier) < (pointer_expression "*pbVar15" * identifier))) ;) (expression_statement "bVar17 = *pbVar14 == *pbVar15;" (assignment_expression "bVar17 = *pbVar14 == *pbVar15" identifier = (binary_expression "*pbVar14 == *pbVar15" (pointer_expression "*pbVar14" * identifier) == (pointer_expression "*pbVar15" * identifier))) ;) (expression_statement "pbVar14 = pbVar14 + (ulong)bVar18 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (ulong)bVar18 * -2 + 1" identifier = (binary_expression "pbVar14 + (ulong)bVar18 * -2 + 1" (binary_expression "pbVar14 + (ulong)bVar18 * -2" identifier + (binary_expression "(ulong)bVar18 * -2" (cast_expression "(ulong)bVar18" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar15 = pbVar15 + (ulong)bVar18 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (ulong)bVar18 * -2 + 1" identifier = (binary_expression "pbVar15 + (ulong)bVar18 * -2 + 1" (binary_expression "pbVar15 + (ulong)bVar18 * -2" identifier + (binary_expression "(ulong)bVar18 * -2" (cast_expression "(ulong)bVar18" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar17)" ( identifier )) ;) (if_statement "if ((!bVar16 && !bVar17) == bVar16) {\n        local_40[0] = (byte *)0x314883;\n      }" if (parenthesized_expression "((!bVar16 && !bVar17) == bVar16)" ( (binary_expression "(!bVar16 && !bVar17) == bVar16" (parenthesized_expression "(!bVar16 && !bVar17)" ( (binary_expression "!bVar16 && !bVar17" (unary_expression "!bVar16" ! identifier) && (unary_expression "!bVar17" ! identifier)) )) == identifier) )) (compound_statement "{\n        local_40[0] = (byte *)0x314883;\n      }" { (expression_statement "local_40[0] = (byte *)0x314883;" (assignment_expression "local_40[0] = (byte *)0x314883" (subscript_expression "local_40[0]" identifier [ number_literal ]) = (cast_expression "(byte *)0x314883" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (expression_statement "puVar11 = (undefined8 *)FUN_001b2990(1,local_40,1,local_40,local_48 + 1);" (assignment_expression "puVar11 = (undefined8 *)FUN_001b2990(1,local_40,1,local_40,local_48 + 1)" identifier = (cast_expression "(undefined8 *)FUN_001b2990(1,local_40,1,local_40,local_48 + 1)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001b2990(1,local_40,1,local_40,local_48 + 1)" identifier (argument_list "(1,local_40,1,local_40,local_48 + 1)" ( number_literal , identifier , number_literal , identifier , (binary_expression "local_48 + 1" identifier + number_literal) ))))) ;) (if_statement "if (puVar11 == (undefined8 *)0x0) {\n        uVar10 = gettext("unknown -z option");\n        FUN_001b06b0(uVar10,pbVar3);\n        uVar1 = local_48[0];\nLAB_001baedd:\n        local_48[0] = uVar1;\n        uVar10 = gettext("missing argument");\n        FUN_001b06b0(uVar10,pcVar13);\n                    \n        uVar12 = FUN_0014340a();\n        return uVar12;\n      }" if (parenthesized_expression "(puVar11 == (undefined8 *)0x0)" ( (binary_expression "puVar11 == (undefined8 *)0x0" identifier == (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        uVar10 = gettext("unknown -z option");\n        FUN_001b06b0(uVar10,pbVar3);\n        uVar1 = local_48[0];\nLAB_001baedd:\n        local_48[0] = uVar1;\n        uVar10 = gettext("missing argument");\n        FUN_001b06b0(uVar10,pcVar13);\n                    \n        uVar12 = FUN_0014340a();\n        return uVar12;\n      }" { (expression_statement "uVar10 = gettext("unknown -z option");" (assignment_expression "uVar10 = gettext("unknown -z option")" identifier = (call_expression "gettext("unknown -z option")" identifier (argument_list "("unknown -z option")" ( (string_literal ""unknown -z option"" " string_content ") )))) ;) (expression_statement "FUN_001b06b0(uVar10,pbVar3);" (call_expression "FUN_001b06b0(uVar10,pbVar3)" identifier (argument_list "(uVar10,pbVar3)" ( identifier , identifier ))) ;) (expression_statement "uVar1 = local_48[0];" (assignment_expression "uVar1 = local_48[0]" identifier = (subscript_expression "local_48[0]" identifier [ number_literal ])) ;) (labeled_statement "LAB_001baedd:\n        local_48[0] = uVar1;" statement_identifier : (expression_statement "local_48[0] = uVar1;" (assignment_expression "local_48[0] = uVar1" (subscript_expression "local_48[0]" identifier [ number_literal ]) = identifier) ;)) (expression_statement "uVar10 = gettext("missing argument");" (assignment_expression "uVar10 = gettext("missing argument")" identifier = (call_expression "gettext("missing argument")" identifier (argument_list "("missing argument")" ( (string_literal ""missing argument"" " string_content ") )))) ;) (expression_statement "FUN_001b06b0(uVar10,pcVar13);" (call_expression "FUN_001b06b0(uVar10,pcVar13)" identifier (argument_list "(uVar10,pcVar13)" ( identifier , identifier ))) ;) (expression_statement "uVar12 = FUN_0014340a();" (assignment_expression "uVar12 = FUN_0014340a()" identifier = (call_expression "FUN_0014340a()" identifier (argument_list "()" ( )))) ;) (return_statement "return uVar12;" return identifier ;) })) })) (expression_statement "(*(code *)**(undefined8 **)puVar11[9])\n              ((undefined8 *)puVar11[9],*puVar2,local_40[0],param_1,param_1 + 8);" (call_expression "(*(code *)**(undefined8 **)puVar11[9])\n              ((undefined8 *)puVar11[9],*puVar2,local_40[0],param_1,param_1 + 8)" (parenthesized_expression "(*(code *)**(undefined8 **)puVar11[9])" ( (pointer_expression "*(code *)**(undefined8 **)puVar11[9]" * (cast_expression "(code *)**(undefined8 **)puVar11[9]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined8 **)puVar11[9]" * (pointer_expression "*(undefined8 **)puVar11[9]" * (cast_expression "(undefined8 **)puVar11[9]" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "puVar11[9]" identifier [ number_literal ])))))) )) (argument_list "((undefined8 *)puVar11[9],*puVar2,local_40[0],param_1,param_1 + 8)" ( (cast_expression "(undefined8 *)puVar11[9]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar11[9]" identifier [ number_literal ])) , (pointer_expression "*puVar2" * identifier) , (subscript_expression "local_40[0]" identifier [ number_literal ]) , identifier , (binary_expression "param_1 + 8" identifier + number_literal) ))) ;) (if_statement "if (local_48[0] != uVar6) goto LAB_001baba8;" if (parenthesized_expression "(local_48[0] != uVar6)" ( (binary_expression "local_48[0] != uVar6" (subscript_expression "local_48[0]" identifier [ number_literal ]) != identifier) )) (goto_statement "goto LAB_001baba8;" goto statement_identifier ;)) (expression_statement "pcVar13 = *(char **)(param_3 + unaff_R15 * 8);" (assignment_expression "pcVar13 = *(char **)(param_3 + unaff_R15 * 8)" identifier = (pointer_expression "*(char **)(param_3 + unaff_R15 * 8)" * (cast_expression "(char **)(param_3 + unaff_R15 * 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_3 + unaff_R15 * 8)" ( (binary_expression "param_3 + unaff_R15 * 8" identifier + (binary_expression "unaff_R15 * 8" identifier * number_literal)) ))))) ;) (if_statement "if (*pcVar13 == '-') goto LAB_001babe8;" if (parenthesized_expression "(*pcVar13 == '-')" ( (binary_expression "*pcVar13 == '-'" (pointer_expression "*pcVar13" * identifier) == (char_literal "'-'" ' character ')) )) (goto_statement "goto LAB_001babe8;" goto statement_identifier ;)) (labeled_statement "LAB_001bac94:\n    pcVar13 = (char *)*puVar2;" statement_identifier : (expression_statement "pcVar13 = (char *)*puVar2;" (assignment_expression "pcVar13 = (char *)*puVar2" identifier = (cast_expression "(char *)*puVar2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar2" * identifier))) ;)) (expression_statement "uVar10 = gettext("unknown option");" (assignment_expression "uVar10 = gettext("unknown option")" identifier = (call_expression "gettext("unknown option")" identifier (argument_list "("unknown option")" ( (string_literal ""unknown option"" " string_content ") )))) ;) (expression_statement "FUN_001b06b0(uVar10,pcVar13);" (call_expression "FUN_001b06b0(uVar10,pcVar13)" identifier (argument_list "(uVar10,pcVar13)" ( identifier , identifier ))) ;) (labeled_statement "LAB_001bacb0:\n    puVar11 = &DAT_003c7ca0;" statement_identifier : (expression_statement "puVar11 = &DAT_003c7ca0;" (assignment_expression "puVar11 = &DAT_003c7ca0" identifier = (pointer_expression "&DAT_003c7ca0" & identifier)) ;)) }) while (parenthesized_expression "( true )" ( true )) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE 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 (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (pointer_declarator * (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 (sized_type_specifier long)) ) (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 ") ))) ;) })) (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 (pointer_expression * IDENT) = (char_literal ' escape_sequence ')) ;) (return_statement return (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) ))) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (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) , (subscript_expression IDENT [ LIT ]) , IDENT , (binary_expression IDENT + LIT) ))) ;) (labeled_statement statement_identifier : (return_statement return (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) ;)) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (subscript_expression IDENT [ LIT ])) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (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 IDENT * LIT)) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (char_literal ' character ')) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (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 " ") ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (string_literal " ")) ;) (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 ( (pointer_expression & IDENT) ))) ;) })) })) (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 ')) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression LIT < (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (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 (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (cast_expression ( (type_descriptor TYPE) ) IDENT)) * LIT)) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (compound_statement { (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 { (if_statement if (parenthesized_expression ( (binary_expression IDENT <= (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;) (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 (sized_type_specifier long)) ) (cast_expression ( (type_descriptor TYPE) ) IDENT)) * LIT)) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) }))) })) }))) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT) == (pointer_expression & IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT) == (pointer_expression & IDENT))) ;) (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 = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (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 ( LIT , IDENT , LIT , IDENT , (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (return_statement return IDENT ;) })) })) (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) , (subscript_expression IDENT [ LIT ]) , IDENT , (binary_expression IDENT + LIT) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != IDENT) )) (goto_statement goto statement_identifier ;)) (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 IDENT * LIT)) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' character ')) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;)) }) while (parenthesized_expression ( BOOL )) ;) })))
(function_definition "ulong FUN_001bab10(long param_1,int param_2,long param_3,uint param_4,char *param_5)\n\n{\n  uint uVar1;\n  undefined8 *puVar2;\n  byte *pbVar3;\n  char cVar4;\n  byte bVar5;\n  uint uVar6;\n  uint uVar7;\n  int iVar8;\n  long lVar9;\n  undefined8 uVar10;\n  undefined8 *puVar11;\n  char *__s;\n  ulong uVar12;\n  char *pcVar13;\n  byte *pbVar14;\n  byte *pbVar15;\n  long unaff_R13;\n  long unaff_R15;\n  bool bVar16;\n  bool bVar17;\n  byte bVar18;\n  uint local_48 [2];\n  byte *local_40 [2];\n  \n  bVar18 = 0;\n  puVar2 = (undefined8 *)(param_3 + (long)(int)param_4 * 8);\n  pcVar13 = (char *)*puVar2;\n  if ((*pcVar13 != '-') || (*param_5 != '\0')) {\n                    \n    FUN_0016cdf0("../../gold/options.cc",0x5f0,"process_one_option");\n  }\n  if ((pcVar13[1] == '-') && (pcVar13[2] == '\0')) {\n    *param_5 = '\x01';\n    return (ulong)(param_4 + 1);\n  }\n  local_40[0] = (byte *)0x0;\n  local_48[0] = param_4;\n  lVar9 = FUN_001b2990(param_2,param_3,0,local_40,local_48);\n  uVar6 = local_48[0];\n  if (lVar9 != 0) {\n    (**(code **)**(undefined8 **)(lVar9 + 0x48))\n              (*(undefined8 **)(lVar9 + 0x48),*puVar2,local_40[0],param_1,param_1 + 8);\nLAB_001baba8:\n    return (ulong)local_48[0];\n  }\n  if (param_4 != local_48[0]) goto LAB_001bac94;\n  unaff_R15 = (long)(int)local_48[0];\n  unaff_R13 = 1;\n  pcVar13 = *(char **)(param_3 + unaff_R15 * 8);\n  if (*pcVar13 != '-') goto LAB_001bac94;\nLAB_001babe8:\n  if ((DAT_003c7c90 == '\0') && (iVar8 = FUN_002756c0(&DAT_003c7c90), iVar8 != 0)) {\n    DAT_003c7ca0 = &DAT_003c7cb0;\n                    \n    FUN_0015cbe0(&DAT_003c7ca0,"");\n    _DAT_003c7cc0 = 4;\n    DAT_003c7cc4 = 0x7a;\n    _DAT_003c7cc8 = "";\n    DAT_003c7cd0 = 0;\n    DAT_003c7cd8 = "Z-OPTION";\n    DAT_003c7ce0 = 0;\n    _DAT_003c7ce8 = 0;\n    DAT_003c7cf0 = 0;\n    __s = strchr(DAT_003c7ca0,0x5f);\n    if (__s != (char *)0x0) {\n      do {\n        *__s = '-';\n        __s = strchr(__s,0x5f);\n      } while (__s != (char *)0x0);\n      if ((DAT_003c7cd0 != 0) && (DAT_003c8128 != '\0')) {\n                    \n        FUN_001b2b90(&DAT_003c7ca0);\n      }\n    }\n    FUN_002757f0(&DAT_003c7c90);\n    __cxa_atexit(FUN_001bc860,&DAT_003c7ca0,&PTR_LOOP_003be5a8);\n  }\n  cVar4 = pcVar13[unaff_R13];\n  if (cVar4 == 'z') goto LAB_001bacb0;\n  if (0x7e < (int)cVar4 - 1U) goto LAB_001bac94;\n  puVar11 = *(undefined8 **)(&DAT_003c7d00 + (long)(int)cVar4 * 8);\n  if (puVar11 == (undefined8 *)0x0) goto LAB_001bac94;\n  do {\n    unaff_R13 = unaff_R13 + 1;\n    pbVar3 = (byte *)(pcVar13 + unaff_R13);\n    if (puVar11[7] == 0) {\n      local_40[0] = (byte *)0x0;\n      bVar5 = *pbVar3;\n      uVar7 = local_48[0];\n      pbVar3 = local_40[0];\n      if (bVar5 == 0) {\n        uVar7 = local_48[0] + 1;\n      }\n    }\n    else {\n      uVar1 = local_48[0] + 1;\n      uVar7 = uVar1;\n      if (*pbVar3 == 0) {\n        if (*(char *)(puVar11 + 8) == '\0') {\n          if (param_2 <= (int)uVar1) goto LAB_001baedd;\n          uVar7 = local_48[0] + 2;\n          pbVar3 = *(byte **)(param_3 + (long)(int)uVar1 * 8);\n        }\n        else {\n          pbVar3 = (byte *)puVar11[5];\n        }\n      }\n    }\n    local_48[0] = uVar7;\n    local_40[0] = pbVar3;\n    if ((char **)puVar11 == &DAT_003c7ca0) {\n      bVar17 = (char **)puVar11 == &DAT_003c7ca0;\n      bVar16 = puVar11 < &DAT_003c7ca0;\n      local_48[1] = 0;\n      lVar9 = 6;\n      pbVar14 = pbVar3;\n      pbVar15 = (byte *)0x314883;\n      do {\n        if (lVar9 == 0) break;\n        lVar9 = lVar9 + -1;\n        bVar16 = *pbVar14 < *pbVar15;\n        bVar17 = *pbVar14 == *pbVar15;\n        pbVar14 = pbVar14 + (ulong)bVar18 * -2 + 1;\n        pbVar15 = pbVar15 + (ulong)bVar18 * -2 + 1;\n      } while (bVar17);\n      if ((!bVar16 && !bVar17) == bVar16) {\n        local_40[0] = (byte *)0x314883;\n      }\n      puVar11 = (undefined8 *)FUN_001b2990(1,local_40,1,local_40,local_48 + 1);\n      if (puVar11 == (undefined8 *)0x0) {\n        uVar10 = gettext("unknown -z option");\n        FUN_001b06b0(uVar10,pbVar3);\n        uVar1 = local_48[0];\nLAB_001baedd:\n        local_48[0] = uVar1;\n        uVar10 = gettext("missing argument");\n        FUN_001b06b0(uVar10,pcVar13);\n                    \n        uVar12 = FUN_0014340a();\n        return uVar12;\n      }\n    }\n    (*(code *)**(undefined8 **)puVar11[9])\n              ((undefined8 *)puVar11[9],*puVar2,local_40[0],param_1,param_1 + 8);\n    if (local_48[0] != uVar6) goto LAB_001baba8;\n    pcVar13 = *(char **)(param_3 + unaff_R15 * 8);\n    if (*pcVar13 == '-') goto LAB_001babe8;\nLAB_001bac94:\n    pcVar13 = (char *)*puVar2;\n    uVar10 = gettext("unknown option");\n    FUN_001b06b0(uVar10,pcVar13);\nLAB_001bacb0:\n    puVar11 = &DAT_003c7ca0;\n  } while( true );\n}" (type_identifier "ulong") (function_declarator "FUN_001bab10(long param_1,int param_2,long param_3,uint param_4,char *param_5)" (identifier "FUN_001bab10") (parameter_list "(long param_1,int param_2,long param_3,uint param_4,char *param_5)" (( "(") (parameter_declaration "long param_1" (sized_type_specifier "long" (long "long")) (identifier "param_1")) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) (, ",") (parameter_declaration "long param_3" (sized_type_specifier "long" (long "long")) (identifier "param_3")) (, ",") (parameter_declaration "uint param_4" (type_identifier "uint") (identifier "param_4")) (, ",") (parameter_declaration "char *param_5" (primitive_type "char") (pointer_declarator "*param_5" (* "*") (identifier "param_5"))) () ")"))) (compound_statement "{\n  uint uVar1;\n  undefined8 *puVar2;\n  byte *pbVar3;\n  char cVar4;\n  byte bVar5;\n  uint uVar6;\n  uint uVar7;\n  int iVar8;\n  long lVar9;\n  undefined8 uVar10;\n  undefined8 *puVar11;\n  char *__s;\n  ulong uVar12;\n  char *pcVar13;\n  byte *pbVar14;\n  byte *pbVar15;\n  long unaff_R13;\n  long unaff_R15;\n  bool bVar16;\n  bool bVar17;\n  byte bVar18;\n  uint local_48 [2];\n  byte *local_40 [2];\n  \n  bVar18 = 0;\n  puVar2 = (undefined8 *)(param_3 + (long)(int)param_4 * 8);\n  pcVar13 = (char *)*puVar2;\n  if ((*pcVar13 != '-') || (*param_5 != '\0')) {\n                    \n    FUN_0016cdf0("../../gold/options.cc",0x5f0,"process_one_option");\n  }\n  if ((pcVar13[1] == '-') && (pcVar13[2] == '\0')) {\n    *param_5 = '\x01';\n    return (ulong)(param_4 + 1);\n  }\n  local_40[0] = (byte *)0x0;\n  local_48[0] = param_4;\n  lVar9 = FUN_001b2990(param_2,param_3,0,local_40,local_48);\n  uVar6 = local_48[0];\n  if (lVar9 != 0) {\n    (**(code **)**(undefined8 **)(lVar9 + 0x48))\n              (*(undefined8 **)(lVar9 + 0x48),*puVar2,local_40[0],param_1,param_1 + 8);\nLAB_001baba8:\n    return (ulong)local_48[0];\n  }\n  if (param_4 != local_48[0]) goto LAB_001bac94;\n  unaff_R15 = (long)(int)local_48[0];\n  unaff_R13 = 1;\n  pcVar13 = *(char **)(param_3 + unaff_R15 * 8);\n  if (*pcVar13 != '-') goto LAB_001bac94;\nLAB_001babe8:\n  if ((DAT_003c7c90 == '\0') && (iVar8 = FUN_002756c0(&DAT_003c7c90), iVar8 != 0)) {\n    DAT_003c7ca0 = &DAT_003c7cb0;\n                    \n    FUN_0015cbe0(&DAT_003c7ca0,"");\n    _DAT_003c7cc0 = 4;\n    DAT_003c7cc4 = 0x7a;\n    _DAT_003c7cc8 = "";\n    DAT_003c7cd0 = 0;\n    DAT_003c7cd8 = "Z-OPTION";\n    DAT_003c7ce0 = 0;\n    _DAT_003c7ce8 = 0;\n    DAT_003c7cf0 = 0;\n    __s = strchr(DAT_003c7ca0,0x5f);\n    if (__s != (char *)0x0) {\n      do {\n        *__s = '-';\n        __s = strchr(__s,0x5f);\n      } while (__s != (char *)0x0);\n      if ((DAT_003c7cd0 != 0) && (DAT_003c8128 != '\0')) {\n                    \n        FUN_001b2b90(&DAT_003c7ca0);\n      }\n    }\n    FUN_002757f0(&DAT_003c7c90);\n    __cxa_atexit(FUN_001bc860,&DAT_003c7ca0,&PTR_LOOP_003be5a8);\n  }\n  cVar4 = pcVar13[unaff_R13];\n  if (cVar4 == 'z') goto LAB_001bacb0;\n  if (0x7e < (int)cVar4 - 1U) goto LAB_001bac94;\n  puVar11 = *(undefined8 **)(&DAT_003c7d00 + (long)(int)cVar4 * 8);\n  if (puVar11 == (undefined8 *)0x0) goto LAB_001bac94;\n  do {\n    unaff_R13 = unaff_R13 + 1;\n    pbVar3 = (byte *)(pcVar13 + unaff_R13);\n    if (puVar11[7] == 0) {\n      local_40[0] = (byte *)0x0;\n      bVar5 = *pbVar3;\n      uVar7 = local_48[0];\n      pbVar3 = local_40[0];\n      if (bVar5 == 0) {\n        uVar7 = local_48[0] + 1;\n      }\n    }\n    else {\n      uVar1 = local_48[0] + 1;\n      uVar7 = uVar1;\n      if (*pbVar3 == 0) {\n        if (*(char *)(puVar11 + 8) == '\0') {\n          if (param_2 <= (int)uVar1) goto LAB_001baedd;\n          uVar7 = local_48[0] + 2;\n          pbVar3 = *(byte **)(param_3 + (long)(int)uVar1 * 8);\n        }\n        else {\n          pbVar3 = (byte *)puVar11[5];\n        }\n      }\n    }\n    local_48[0] = uVar7;\n    local_40[0] = pbVar3;\n    if ((char **)puVar11 == &DAT_003c7ca0) {\n      bVar17 = (char **)puVar11 == &DAT_003c7ca0;\n      bVar16 = puVar11 < &DAT_003c7ca0;\n      local_48[1] = 0;\n      lVar9 = 6;\n      pbVar14 = pbVar3;\n      pbVar15 = (byte *)0x314883;\n      do {\n        if (lVar9 == 0) break;\n        lVar9 = lVar9 + -1;\n        bVar16 = *pbVar14 < *pbVar15;\n        bVar17 = *pbVar14 == *pbVar15;\n        pbVar14 = pbVar14 + (ulong)bVar18 * -2 + 1;\n        pbVar15 = pbVar15 + (ulong)bVar18 * -2 + 1;\n      } while (bVar17);\n      if ((!bVar16 && !bVar17) == bVar16) {\n        local_40[0] = (byte *)0x314883;\n      }\n      puVar11 = (undefined8 *)FUN_001b2990(1,local_40,1,local_40,local_48 + 1);\n      if (puVar11 == (undefined8 *)0x0) {\n        uVar10 = gettext("unknown -z option");\n        FUN_001b06b0(uVar10,pbVar3);\n        uVar1 = local_48[0];\nLAB_001baedd:\n        local_48[0] = uVar1;\n        uVar10 = gettext("missing argument");\n        FUN_001b06b0(uVar10,pcVar13);\n                    \n        uVar12 = FUN_0014340a();\n        return uVar12;\n      }\n    }\n    (*(code *)**(undefined8 **)puVar11[9])\n              ((undefined8 *)puVar11[9],*puVar2,local_40[0],param_1,param_1 + 8);\n    if (local_48[0] != uVar6) goto LAB_001baba8;\n    pcVar13 = *(char **)(param_3 + unaff_R15 * 8);\n    if (*pcVar13 == '-') goto LAB_001babe8;\nLAB_001bac94:\n    pcVar13 = (char *)*puVar2;\n    uVar10 = gettext("unknown option");\n    FUN_001b06b0(uVar10,pcVar13);\nLAB_001bacb0:\n    puVar11 = &DAT_003c7ca0;\n  } while( true );\n}" ({ "{") (declaration "uint uVar1;" (type_identifier "uint") (identifier "uVar1") (; ";")) (declaration "undefined8 *puVar2;" (type_identifier "undefined8") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "byte *pbVar3;" (type_identifier "byte") (pointer_declarator "*pbVar3" (* "*") (identifier "pbVar3")) (; ";")) (declaration "char cVar4;" (primitive_type "char") (identifier "cVar4") (; ";")) (declaration "byte bVar5;" (type_identifier "byte") (identifier "bVar5") (; ";")) (declaration "uint uVar6;" (type_identifier "uint") (identifier "uVar6") (; ";")) (declaration "uint uVar7;" (type_identifier "uint") (identifier "uVar7") (; ";")) (declaration "int iVar8;" (primitive_type "int") (identifier "iVar8") (; ";")) (declaration "long lVar9;" (sized_type_specifier "long" (long "long")) (identifier "lVar9") (; ";")) (declaration "undefined8 uVar10;" (type_identifier "undefined8") (identifier "uVar10") (; ";")) (declaration "undefined8 *puVar11;" (type_identifier "undefined8") (pointer_declarator "*puVar11" (* "*") (identifier "puVar11")) (; ";")) (declaration "char *__s;" (primitive_type "char") (pointer_declarator "*__s" (* "*") (identifier "__s")) (; ";")) (declaration "ulong uVar12;" (type_identifier "ulong") (identifier "uVar12") (; ";")) (declaration "char *pcVar13;" (primitive_type "char") (pointer_declarator "*pcVar13" (* "*") (identifier "pcVar13")) (; ";")) (declaration "byte *pbVar14;" (type_identifier "byte") (pointer_declarator "*pbVar14" (* "*") (identifier "pbVar14")) (; ";")) (declaration "byte *pbVar15;" (type_identifier "byte") (pointer_declarator "*pbVar15" (* "*") (identifier "pbVar15")) (; ";")) (declaration "long unaff_R13;" (sized_type_specifier "long" (long "long")) (identifier "unaff_R13") (; ";")) (declaration "long unaff_R15;" (sized_type_specifier "long" (long "long")) (identifier "unaff_R15") (; ";")) (declaration "bool bVar16;" (primitive_type "bool") (identifier "bVar16") (; ";")) (declaration "bool bVar17;" (primitive_type "bool") (identifier "bVar17") (; ";")) (declaration "byte bVar18;" (type_identifier "byte") (identifier "bVar18") (; ";")) (declaration "uint local_48 [2];" (type_identifier "uint") (array_declarator "local_48 [2]" (identifier "local_48") ([ "[") (number_literal "2") (] "]")) (; ";")) (declaration "byte *local_40 [2];" (type_identifier "byte") (pointer_declarator "*local_40 [2]" (* "*") (array_declarator "local_40 [2]" (identifier "local_40") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "bVar18 = 0;" (assignment_expression "bVar18 = 0" (identifier "bVar18") (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar2 = (undefined8 *)(param_3 + (long)(int)param_4 * 8);" (assignment_expression "puVar2 = (undefined8 *)(param_3 + (long)(int)param_4 * 8)" (identifier "puVar2") (= "=") (cast_expression "(undefined8 *)(param_3 + (long)(int)param_4 * 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + (long)(int)param_4 * 8)" (( "(") (binary_expression "param_3 + (long)(int)param_4 * 8" (identifier "param_3") (+ "+") (binary_expression "(long)(int)param_4 * 8" (cast_expression "(long)(int)param_4" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (cast_expression "(int)param_4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_4"))) (* "*") (number_literal "8"))) () ")")))) (; ";")) (expression_statement "pcVar13 = (char *)*puVar2;" (assignment_expression "pcVar13 = (char *)*puVar2" (identifier "pcVar13") (= "=") (cast_expression "(char *)*puVar2" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar2" (* "*") (identifier "puVar2")))) (; ";")) (if_statement "if ((*pcVar13 != '-') || (*param_5 != '\0')) {\n                    \n    FUN_0016cdf0("../../gold/options.cc",0x5f0,"process_one_option");\n  }" (if "if") (parenthesized_expression "((*pcVar13 != '-') || (*param_5 != '\0'))" (( "(") (binary_expression "(*pcVar13 != '-') || (*param_5 != '\0')" (parenthesized_expression "(*pcVar13 != '-')" (( "(") (binary_expression "*pcVar13 != '-'" (pointer_expression "*pcVar13" (* "*") (identifier "pcVar13")) (!= "!=") (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_0016cdf0("../../gold/options.cc",0x5f0,"process_one_option");\n  }" ({ "{") (expression_statement "FUN_0016cdf0("../../gold/options.cc",0x5f0,"process_one_option");" (call_expression "FUN_0016cdf0("../../gold/options.cc",0x5f0,"process_one_option")" (identifier "FUN_0016cdf0") (argument_list "("../../gold/options.cc",0x5f0,"process_one_option")" (( "(") (string_literal ""../../gold/options.cc"" (" """) (string_content "../../gold/options.cc") (" """)) (, ",") (number_literal "0x5f0") (, ",") (string_literal ""process_one_option"" (" """) (string_content "process_one_option") (" """)) () ")"))) (; ";")) (} "}"))) (if_statement "if ((pcVar13[1] == '-') && (pcVar13[2] == '\0')) {\n    *param_5 = '\x01';\n    return (ulong)(param_4 + 1);\n  }" (if "if") (parenthesized_expression "((pcVar13[1] == '-') && (pcVar13[2] == '\0'))" (( "(") (binary_expression "(pcVar13[1] == '-') && (pcVar13[2] == '\0')" (parenthesized_expression "(pcVar13[1] == '-')" (( "(") (binary_expression "pcVar13[1] == '-'" (subscript_expression "pcVar13[1]" (identifier "pcVar13") ([ "[") (number_literal "1") (] "]")) (== "==") (char_literal "'-'" (' "'") (character "-") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(pcVar13[2] == '\0')" (( "(") (binary_expression "pcVar13[2] == '\0'" (subscript_expression "pcVar13[2]" (identifier "pcVar13") ([ "[") (number_literal "2") (] "]")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\n    *param_5 = '\x01';\n    return (ulong)(param_4 + 1);\n  }" ({ "{") (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 (ulong)(param_4 + 1);" (return "return") (call_expression "(ulong)(param_4 + 1)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(param_4 + 1)" (( "(") (binary_expression "param_4 + 1" (identifier "param_4") (+ "+") (number_literal "1")) () ")"))) (; ";")) (} "}"))) (expression_statement "local_40[0] = (byte *)0x0;" (assignment_expression "local_40[0] = (byte *)0x0" (subscript_expression "local_40[0]" (identifier "local_40") ([ "[") (number_literal "0") (] "]")) (= "=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_48[0] = param_4;" (assignment_expression "local_48[0] = param_4" (subscript_expression "local_48[0]" (identifier "local_48") ([ "[") (number_literal "0") (] "]")) (= "=") (identifier "param_4")) (; ";")) (expression_statement "lVar9 = FUN_001b2990(param_2,param_3,0,local_40,local_48);" (assignment_expression "lVar9 = FUN_001b2990(param_2,param_3,0,local_40,local_48)" (identifier "lVar9") (= "=") (call_expression "FUN_001b2990(param_2,param_3,0,local_40,local_48)" (identifier "FUN_001b2990") (argument_list "(param_2,param_3,0,local_40,local_48)" (( "(") (identifier "param_2") (, ",") (identifier "param_3") (, ",") (number_literal "0") (, ",") (identifier "local_40") (, ",") (identifier "local_48") () ")")))) (; ";")) (expression_statement "uVar6 = local_48[0];" (assignment_expression "uVar6 = local_48[0]" (identifier "uVar6") (= "=") (subscript_expression "local_48[0]" (identifier "local_48") ([ "[") (number_literal "0") (] "]"))) (; ";")) (if_statement "if (lVar9 != 0) {\n    (**(code **)**(undefined8 **)(lVar9 + 0x48))\n              (*(undefined8 **)(lVar9 + 0x48),*puVar2,local_40[0],param_1,param_1 + 8);\nLAB_001baba8:\n    return (ulong)local_48[0];\n  }" (if "if") (parenthesized_expression "(lVar9 != 0)" (( "(") (binary_expression "lVar9 != 0" (identifier "lVar9") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    (**(code **)**(undefined8 **)(lVar9 + 0x48))\n              (*(undefined8 **)(lVar9 + 0x48),*puVar2,local_40[0],param_1,param_1 + 8);\nLAB_001baba8:\n    return (ulong)local_48[0];\n  }" ({ "{") (expression_statement "(**(code **)**(undefined8 **)(lVar9 + 0x48))\n              (*(undefined8 **)(lVar9 + 0x48),*puVar2,local_40[0],param_1,param_1 + 8);" (call_expression "(**(code **)**(undefined8 **)(lVar9 + 0x48))\n              (*(undefined8 **)(lVar9 + 0x48),*puVar2,local_40[0],param_1,param_1 + 8)" (parenthesized_expression "(**(code **)**(undefined8 **)(lVar9 + 0x48))" (( "(") (pointer_expression "**(code **)**(undefined8 **)(lVar9 + 0x48)" (* "*") (pointer_expression "*(code **)**(undefined8 **)(lVar9 + 0x48)" (* "*") (cast_expression "(code **)**(undefined8 **)(lVar9 + 0x48)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (pointer_expression "**(undefined8 **)(lVar9 + 0x48)" (* "*") (pointer_expression "*(undefined8 **)(lVar9 + 0x48)" (* "*") (cast_expression "(undefined8 **)(lVar9 + 0x48)" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar9 + 0x48)" (( "(") (binary_expression "lVar9 + 0x48" (identifier "lVar9") (+ "+") (number_literal "0x48")) () ")")))))))) () ")")) (argument_list "(*(undefined8 **)(lVar9 + 0x48),*puVar2,local_40[0],param_1,param_1 + 8)" (( "(") (pointer_expression "*(undefined8 **)(lVar9 + 0x48)" (* "*") (cast_expression "(undefined8 **)(lVar9 + 0x48)" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar9 + 0x48)" (( "(") (binary_expression "lVar9 + 0x48" (identifier "lVar9") (+ "+") (number_literal "0x48")) () ")")))) (, ",") (pointer_expression "*puVar2" (* "*") (identifier "puVar2")) (, ",") (subscript_expression "local_40[0]" (identifier "local_40") ([ "[") (number_literal "0") (] "]")) (, ",") (identifier "param_1") (, ",") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")"))) (; ";")) (labeled_statement "LAB_001baba8:\n    return (ulong)local_48[0];" (statement_identifier "LAB_001baba8") (: ":") (return_statement "return (ulong)local_48[0];" (return "return") (cast_expression "(ulong)local_48[0]" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (subscript_expression "local_48[0]" (identifier "local_48") ([ "[") (number_literal "0") (] "]"))) (; ";"))) (} "}"))) (if_statement "if (param_4 != local_48[0]) goto LAB_001bac94;" (if "if") (parenthesized_expression "(param_4 != local_48[0])" (( "(") (binary_expression "param_4 != local_48[0]" (identifier "param_4") (!= "!=") (subscript_expression "local_48[0]" (identifier "local_48") ([ "[") (number_literal "0") (] "]"))) () ")")) (goto_statement "goto LAB_001bac94;" (goto "goto") (statement_identifier "LAB_001bac94") (; ";"))) (expression_statement "unaff_R15 = (long)(int)local_48[0];" (assignment_expression "unaff_R15 = (long)(int)local_48[0]" (identifier "unaff_R15") (= "=") (cast_expression "(long)(int)local_48[0]" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (cast_expression "(int)local_48[0]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "local_48[0]" (identifier "local_48") ([ "[") (number_literal "0") (] "]"))))) (; ";")) (expression_statement "unaff_R13 = 1;" (assignment_expression "unaff_R13 = 1" (identifier "unaff_R13") (= "=") (number_literal "1")) (; ";")) (expression_statement "pcVar13 = *(char **)(param_3 + unaff_R15 * 8);" (assignment_expression "pcVar13 = *(char **)(param_3 + unaff_R15 * 8)" (identifier "pcVar13") (= "=") (pointer_expression "*(char **)(param_3 + unaff_R15 * 8)" (* "*") (cast_expression "(char **)(param_3 + unaff_R15 * 8)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_3 + unaff_R15 * 8)" (( "(") (binary_expression "param_3 + unaff_R15 * 8" (identifier "param_3") (+ "+") (binary_expression "unaff_R15 * 8" (identifier "unaff_R15") (* "*") (number_literal "8"))) () ")"))))) (; ";")) (if_statement "if (*pcVar13 != '-') goto LAB_001bac94;" (if "if") (parenthesized_expression "(*pcVar13 != '-')" (( "(") (binary_expression "*pcVar13 != '-'" (pointer_expression "*pcVar13" (* "*") (identifier "pcVar13")) (!= "!=") (char_literal "'-'" (' "'") (character "-") (' "'"))) () ")")) (goto_statement "goto LAB_001bac94;" (goto "goto") (statement_identifier "LAB_001bac94") (; ";"))) (labeled_statement "LAB_001babe8:\n  if ((DAT_003c7c90 == '\0') && (iVar8 = FUN_002756c0(&DAT_003c7c90), iVar8 != 0)) {\n    DAT_003c7ca0 = &DAT_003c7cb0;\n                    \n    FUN_0015cbe0(&DAT_003c7ca0,"");\n    _DAT_003c7cc0 = 4;\n    DAT_003c7cc4 = 0x7a;\n    _DAT_003c7cc8 = "";\n    DAT_003c7cd0 = 0;\n    DAT_003c7cd8 = "Z-OPTION";\n    DAT_003c7ce0 = 0;\n    _DAT_003c7ce8 = 0;\n    DAT_003c7cf0 = 0;\n    __s = strchr(DAT_003c7ca0,0x5f);\n    if (__s != (char *)0x0) {\n      do {\n        *__s = '-';\n        __s = strchr(__s,0x5f);\n      } while (__s != (char *)0x0);\n      if ((DAT_003c7cd0 != 0) && (DAT_003c8128 != '\0')) {\n                    \n        FUN_001b2b90(&DAT_003c7ca0);\n      }\n    }\n    FUN_002757f0(&DAT_003c7c90);\n    __cxa_atexit(FUN_001bc860,&DAT_003c7ca0,&PTR_LOOP_003be5a8);\n  }" (statement_identifier "LAB_001babe8") (: ":") (if_statement "if ((DAT_003c7c90 == '\0') && (iVar8 = FUN_002756c0(&DAT_003c7c90), iVar8 != 0)) {\n    DAT_003c7ca0 = &DAT_003c7cb0;\n                    \n    FUN_0015cbe0(&DAT_003c7ca0,"");\n    _DAT_003c7cc0 = 4;\n    DAT_003c7cc4 = 0x7a;\n    _DAT_003c7cc8 = "";\n    DAT_003c7cd0 = 0;\n    DAT_003c7cd8 = "Z-OPTION";\n    DAT_003c7ce0 = 0;\n    _DAT_003c7ce8 = 0;\n    DAT_003c7cf0 = 0;\n    __s = strchr(DAT_003c7ca0,0x5f);\n    if (__s != (char *)0x0) {\n      do {\n        *__s = '-';\n        __s = strchr(__s,0x5f);\n      } while (__s != (char *)0x0);\n      if ((DAT_003c7cd0 != 0) && (DAT_003c8128 != '\0')) {\n                    \n        FUN_001b2b90(&DAT_003c7ca0);\n      }\n    }\n    FUN_002757f0(&DAT_003c7c90);\n    __cxa_atexit(FUN_001bc860,&DAT_003c7ca0,&PTR_LOOP_003be5a8);\n  }" (if "if") (parenthesized_expression "((DAT_003c7c90 == '\0') && (iVar8 = FUN_002756c0(&DAT_003c7c90), iVar8 != 0))" (( "(") (binary_expression "(DAT_003c7c90 == '\0') && (iVar8 = FUN_002756c0(&DAT_003c7c90), iVar8 != 0)" (parenthesized_expression "(DAT_003c7c90 == '\0')" (( "(") (binary_expression "DAT_003c7c90 == '\0'" (identifier "DAT_003c7c90") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(iVar8 = FUN_002756c0(&DAT_003c7c90), iVar8 != 0)" (( "(") (comma_expression "iVar8 = FUN_002756c0(&DAT_003c7c90), iVar8 != 0" (assignment_expression "iVar8 = FUN_002756c0(&DAT_003c7c90)" (identifier "iVar8") (= "=") (call_expression "FUN_002756c0(&DAT_003c7c90)" (identifier "FUN_002756c0") (argument_list "(&DAT_003c7c90)" (( "(") (pointer_expression "&DAT_003c7c90" (& "&") (identifier "DAT_003c7c90")) () ")")))) (, ",") (binary_expression "iVar8 != 0" (identifier "iVar8") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n    DAT_003c7ca0 = &DAT_003c7cb0;\n                    \n    FUN_0015cbe0(&DAT_003c7ca0,"");\n    _DAT_003c7cc0 = 4;\n    DAT_003c7cc4 = 0x7a;\n    _DAT_003c7cc8 = "";\n    DAT_003c7cd0 = 0;\n    DAT_003c7cd8 = "Z-OPTION";\n    DAT_003c7ce0 = 0;\n    _DAT_003c7ce8 = 0;\n    DAT_003c7cf0 = 0;\n    __s = strchr(DAT_003c7ca0,0x5f);\n    if (__s != (char *)0x0) {\n      do {\n        *__s = '-';\n        __s = strchr(__s,0x5f);\n      } while (__s != (char *)0x0);\n      if ((DAT_003c7cd0 != 0) && (DAT_003c8128 != '\0')) {\n                    \n        FUN_001b2b90(&DAT_003c7ca0);\n      }\n    }\n    FUN_002757f0(&DAT_003c7c90);\n    __cxa_atexit(FUN_001bc860,&DAT_003c7ca0,&PTR_LOOP_003be5a8);\n  }" ({ "{") (expression_statement "DAT_003c7ca0 = &DAT_003c7cb0;" (assignment_expression "DAT_003c7ca0 = &DAT_003c7cb0" (identifier "DAT_003c7ca0") (= "=") (pointer_expression "&DAT_003c7cb0" (& "&") (identifier "DAT_003c7cb0"))) (; ";")) (expression_statement "FUN_0015cbe0(&DAT_003c7ca0,"");" (call_expression "FUN_0015cbe0(&DAT_003c7ca0,"")" (identifier "FUN_0015cbe0") (argument_list "(&DAT_003c7ca0,"")" (( "(") (pointer_expression "&DAT_003c7ca0" (& "&") (identifier "DAT_003c7ca0")) (, ",") (string_literal """" (" """) (" """)) () ")"))) (; ";")) (expression_statement "_DAT_003c7cc0 = 4;" (assignment_expression "_DAT_003c7cc0 = 4" (identifier "_DAT_003c7cc0") (= "=") (number_literal "4")) (; ";")) (expression_statement "DAT_003c7cc4 = 0x7a;" (assignment_expression "DAT_003c7cc4 = 0x7a" (identifier "DAT_003c7cc4") (= "=") (number_literal "0x7a")) (; ";")) (expression_statement "_DAT_003c7cc8 = "";" (assignment_expression "_DAT_003c7cc8 = """ (identifier "_DAT_003c7cc8") (= "=") (string_literal """" (" """) (" """))) (; ";")) (expression_statement "DAT_003c7cd0 = 0;" (assignment_expression "DAT_003c7cd0 = 0" (identifier "DAT_003c7cd0") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_003c7cd8 = "Z-OPTION";" (assignment_expression "DAT_003c7cd8 = "Z-OPTION"" (identifier "DAT_003c7cd8") (= "=") (string_literal ""Z-OPTION"" (" """) (string_content "Z-OPTION") (" """))) (; ";")) (expression_statement "DAT_003c7ce0 = 0;" (assignment_expression "DAT_003c7ce0 = 0" (identifier "DAT_003c7ce0") (= "=") (number_literal "0")) (; ";")) (expression_statement "_DAT_003c7ce8 = 0;" (assignment_expression "_DAT_003c7ce8 = 0" (identifier "_DAT_003c7ce8") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_003c7cf0 = 0;" (assignment_expression "DAT_003c7cf0 = 0" (identifier "DAT_003c7cf0") (= "=") (number_literal "0")) (; ";")) (expression_statement "__s = strchr(DAT_003c7ca0,0x5f);" (assignment_expression "__s = strchr(DAT_003c7ca0,0x5f)" (identifier "__s") (= "=") (call_expression "strchr(DAT_003c7ca0,0x5f)" (identifier "strchr") (argument_list "(DAT_003c7ca0,0x5f)" (( "(") (identifier "DAT_003c7ca0") (, ",") (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_003c7cd0 != 0) && (DAT_003c8128 != '\0')) {\n                    \n        FUN_001b2b90(&DAT_003c7ca0);\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_003c7cd0 != 0) && (DAT_003c8128 != '\0')) {\n                    \n        FUN_001b2b90(&DAT_003c7ca0);\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_003c7cd0 != 0) && (DAT_003c8128 != '\0')) {\n                    \n        FUN_001b2b90(&DAT_003c7ca0);\n      }" (if "if") (parenthesized_expression "((DAT_003c7cd0 != 0) && (DAT_003c8128 != '\0'))" (( "(") (binary_expression "(DAT_003c7cd0 != 0) && (DAT_003c8128 != '\0')" (parenthesized_expression "(DAT_003c7cd0 != 0)" (( "(") (binary_expression "DAT_003c7cd0 != 0" (identifier "DAT_003c7cd0") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(DAT_003c8128 != '\0')" (( "(") (binary_expression "DAT_003c8128 != '\0'" (identifier "DAT_003c8128") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\n                    \n        FUN_001b2b90(&DAT_003c7ca0);\n      }" ({ "{") (expression_statement "FUN_001b2b90(&DAT_003c7ca0);" (call_expression "FUN_001b2b90(&DAT_003c7ca0)" (identifier "FUN_001b2b90") (argument_list "(&DAT_003c7ca0)" (( "(") (pointer_expression "&DAT_003c7ca0" (& "&") (identifier "DAT_003c7ca0")) () ")"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "FUN_002757f0(&DAT_003c7c90);" (call_expression "FUN_002757f0(&DAT_003c7c90)" (identifier "FUN_002757f0") (argument_list "(&DAT_003c7c90)" (( "(") (pointer_expression "&DAT_003c7c90" (& "&") (identifier "DAT_003c7c90")) () ")"))) (; ";")) (expression_statement "__cxa_atexit(FUN_001bc860,&DAT_003c7ca0,&PTR_LOOP_003be5a8);" (call_expression "__cxa_atexit(FUN_001bc860,&DAT_003c7ca0,&PTR_LOOP_003be5a8)" (identifier "__cxa_atexit") (argument_list "(FUN_001bc860,&DAT_003c7ca0,&PTR_LOOP_003be5a8)" (( "(") (identifier "FUN_001bc860") (, ",") (pointer_expression "&DAT_003c7ca0" (& "&") (identifier "DAT_003c7ca0")) (, ",") (pointer_expression "&PTR_LOOP_003be5a8" (& "&") (identifier "PTR_LOOP_003be5a8")) () ")"))) (; ";")) (} "}")))) (expression_statement "cVar4 = pcVar13[unaff_R13];" (assignment_expression "cVar4 = pcVar13[unaff_R13]" (identifier "cVar4") (= "=") (subscript_expression "pcVar13[unaff_R13]" (identifier "pcVar13") ([ "[") (identifier "unaff_R13") (] "]"))) (; ";")) (if_statement "if (cVar4 == 'z') goto LAB_001bacb0;" (if "if") (parenthesized_expression "(cVar4 == 'z')" (( "(") (binary_expression "cVar4 == 'z'" (identifier "cVar4") (== "==") (char_literal "'z'" (' "'") (character "z") (' "'"))) () ")")) (goto_statement "goto LAB_001bacb0;" (goto "goto") (statement_identifier "LAB_001bacb0") (; ";"))) (if_statement "if (0x7e < (int)cVar4 - 1U) goto LAB_001bac94;" (if "if") (parenthesized_expression "(0x7e < (int)cVar4 - 1U)" (( "(") (binary_expression "0x7e < (int)cVar4 - 1U" (number_literal "0x7e") (< "<") (binary_expression "(int)cVar4 - 1U" (cast_expression "(int)cVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "cVar4")) (- "-") (number_literal "1U"))) () ")")) (goto_statement "goto LAB_001bac94;" (goto "goto") (statement_identifier "LAB_001bac94") (; ";"))) (expression_statement "puVar11 = *(undefined8 **)(&DAT_003c7d00 + (long)(int)cVar4 * 8);" (assignment_expression "puVar11 = *(undefined8 **)(&DAT_003c7d00 + (long)(int)cVar4 * 8)" (identifier "puVar11") (= "=") (pointer_expression "*(undefined8 **)(&DAT_003c7d00 + (long)(int)cVar4 * 8)" (* "*") (cast_expression "(undefined8 **)(&DAT_003c7d00 + (long)(int)cVar4 * 8)" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(&DAT_003c7d00 + (long)(int)cVar4 * 8)" (( "(") (binary_expression "&DAT_003c7d00 + (long)(int)cVar4 * 8" (pointer_expression "&DAT_003c7d00" (& "&") (identifier "DAT_003c7d00")) (+ "+") (binary_expression "(long)(int)cVar4 * 8" (cast_expression "(long)(int)cVar4" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (cast_expression "(int)cVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "cVar4"))) (* "*") (number_literal "8"))) () ")"))))) (; ";")) (if_statement "if (puVar11 == (undefined8 *)0x0) goto LAB_001bac94;" (if "if") (parenthesized_expression "(puVar11 == (undefined8 *)0x0)" (( "(") (binary_expression "puVar11 == (undefined8 *)0x0" (identifier "puVar11") (== "==") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_001bac94;" (goto "goto") (statement_identifier "LAB_001bac94") (; ";"))) (do_statement "do {\n    unaff_R13 = unaff_R13 + 1;\n    pbVar3 = (byte *)(pcVar13 + unaff_R13);\n    if (puVar11[7] == 0) {\n      local_40[0] = (byte *)0x0;\n      bVar5 = *pbVar3;\n      uVar7 = local_48[0];\n      pbVar3 = local_40[0];\n      if (bVar5 == 0) {\n        uVar7 = local_48[0] + 1;\n      }\n    }\n    else {\n      uVar1 = local_48[0] + 1;\n      uVar7 = uVar1;\n      if (*pbVar3 == 0) {\n        if (*(char *)(puVar11 + 8) == '\0') {\n          if (param_2 <= (int)uVar1) goto LAB_001baedd;\n          uVar7 = local_48[0] + 2;\n          pbVar3 = *(byte **)(param_3 + (long)(int)uVar1 * 8);\n        }\n        else {\n          pbVar3 = (byte *)puVar11[5];\n        }\n      }\n    }\n    local_48[0] = uVar7;\n    local_40[0] = pbVar3;\n    if ((char **)puVar11 == &DAT_003c7ca0) {\n      bVar17 = (char **)puVar11 == &DAT_003c7ca0;\n      bVar16 = puVar11 < &DAT_003c7ca0;\n      local_48[1] = 0;\n      lVar9 = 6;\n      pbVar14 = pbVar3;\n      pbVar15 = (byte *)0x314883;\n      do {\n        if (lVar9 == 0) break;\n        lVar9 = lVar9 + -1;\n        bVar16 = *pbVar14 < *pbVar15;\n        bVar17 = *pbVar14 == *pbVar15;\n        pbVar14 = pbVar14 + (ulong)bVar18 * -2 + 1;\n        pbVar15 = pbVar15 + (ulong)bVar18 * -2 + 1;\n      } while (bVar17);\n      if ((!bVar16 && !bVar17) == bVar16) {\n        local_40[0] = (byte *)0x314883;\n      }\n      puVar11 = (undefined8 *)FUN_001b2990(1,local_40,1,local_40,local_48 + 1);\n      if (puVar11 == (undefined8 *)0x0) {\n        uVar10 = gettext("unknown -z option");\n        FUN_001b06b0(uVar10,pbVar3);\n        uVar1 = local_48[0];\nLAB_001baedd:\n        local_48[0] = uVar1;\n        uVar10 = gettext("missing argument");\n        FUN_001b06b0(uVar10,pcVar13);\n                    \n        uVar12 = FUN_0014340a();\n        return uVar12;\n      }\n    }\n    (*(code *)**(undefined8 **)puVar11[9])\n              ((undefined8 *)puVar11[9],*puVar2,local_40[0],param_1,param_1 + 8);\n    if (local_48[0] != uVar6) goto LAB_001baba8;\n    pcVar13 = *(char **)(param_3 + unaff_R15 * 8);\n    if (*pcVar13 == '-') goto LAB_001babe8;\nLAB_001bac94:\n    pcVar13 = (char *)*puVar2;\n    uVar10 = gettext("unknown option");\n    FUN_001b06b0(uVar10,pcVar13);\nLAB_001bacb0:\n    puVar11 = &DAT_003c7ca0;\n  } while( true );" (do "do") (compound_statement "{\n    unaff_R13 = unaff_R13 + 1;\n    pbVar3 = (byte *)(pcVar13 + unaff_R13);\n    if (puVar11[7] == 0) {\n      local_40[0] = (byte *)0x0;\n      bVar5 = *pbVar3;\n      uVar7 = local_48[0];\n      pbVar3 = local_40[0];\n      if (bVar5 == 0) {\n        uVar7 = local_48[0] + 1;\n      }\n    }\n    else {\n      uVar1 = local_48[0] + 1;\n      uVar7 = uVar1;\n      if (*pbVar3 == 0) {\n        if (*(char *)(puVar11 + 8) == '\0') {\n          if (param_2 <= (int)uVar1) goto LAB_001baedd;\n          uVar7 = local_48[0] + 2;\n          pbVar3 = *(byte **)(param_3 + (long)(int)uVar1 * 8);\n        }\n        else {\n          pbVar3 = (byte *)puVar11[5];\n        }\n      }\n    }\n    local_48[0] = uVar7;\n    local_40[0] = pbVar3;\n    if ((char **)puVar11 == &DAT_003c7ca0) {\n      bVar17 = (char **)puVar11 == &DAT_003c7ca0;\n      bVar16 = puVar11 < &DAT_003c7ca0;\n      local_48[1] = 0;\n      lVar9 = 6;\n      pbVar14 = pbVar3;\n      pbVar15 = (byte *)0x314883;\n      do {\n        if (lVar9 == 0) break;\n        lVar9 = lVar9 + -1;\n        bVar16 = *pbVar14 < *pbVar15;\n        bVar17 = *pbVar14 == *pbVar15;\n        pbVar14 = pbVar14 + (ulong)bVar18 * -2 + 1;\n        pbVar15 = pbVar15 + (ulong)bVar18 * -2 + 1;\n      } while (bVar17);\n      if ((!bVar16 && !bVar17) == bVar16) {\n        local_40[0] = (byte *)0x314883;\n      }\n      puVar11 = (undefined8 *)FUN_001b2990(1,local_40,1,local_40,local_48 + 1);\n      if (puVar11 == (undefined8 *)0x0) {\n        uVar10 = gettext("unknown -z option");\n        FUN_001b06b0(uVar10,pbVar3);\n        uVar1 = local_48[0];\nLAB_001baedd:\n        local_48[0] = uVar1;\n        uVar10 = gettext("missing argument");\n        FUN_001b06b0(uVar10,pcVar13);\n                    \n        uVar12 = FUN_0014340a();\n        return uVar12;\n      }\n    }\n    (*(code *)**(undefined8 **)puVar11[9])\n              ((undefined8 *)puVar11[9],*puVar2,local_40[0],param_1,param_1 + 8);\n    if (local_48[0] != uVar6) goto LAB_001baba8;\n    pcVar13 = *(char **)(param_3 + unaff_R15 * 8);\n    if (*pcVar13 == '-') goto LAB_001babe8;\nLAB_001bac94:\n    pcVar13 = (char *)*puVar2;\n    uVar10 = gettext("unknown option");\n    FUN_001b06b0(uVar10,pcVar13);\nLAB_001bacb0:\n    puVar11 = &DAT_003c7ca0;\n  }" ({ "{") (expression_statement "unaff_R13 = unaff_R13 + 1;" (assignment_expression "unaff_R13 = unaff_R13 + 1" (identifier "unaff_R13") (= "=") (binary_expression "unaff_R13 + 1" (identifier "unaff_R13") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar3 = (byte *)(pcVar13 + unaff_R13);" (assignment_expression "pbVar3 = (byte *)(pcVar13 + unaff_R13)" (identifier "pbVar3") (= "=") (cast_expression "(byte *)(pcVar13 + unaff_R13)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar13 + unaff_R13)" (( "(") (binary_expression "pcVar13 + unaff_R13" (identifier "pcVar13") (+ "+") (identifier "unaff_R13")) () ")")))) (; ";")) (if_statement "if (puVar11[7] == 0) {\n      local_40[0] = (byte *)0x0;\n      bVar5 = *pbVar3;\n      uVar7 = local_48[0];\n      pbVar3 = local_40[0];\n      if (bVar5 == 0) {\n        uVar7 = local_48[0] + 1;\n      }\n    }\n    else {\n      uVar1 = local_48[0] + 1;\n      uVar7 = uVar1;\n      if (*pbVar3 == 0) {\n        if (*(char *)(puVar11 + 8) == '\0') {\n          if (param_2 <= (int)uVar1) goto LAB_001baedd;\n          uVar7 = local_48[0] + 2;\n          pbVar3 = *(byte **)(param_3 + (long)(int)uVar1 * 8);\n        }\n        else {\n          pbVar3 = (byte *)puVar11[5];\n        }\n      }\n    }" (if "if") (parenthesized_expression "(puVar11[7] == 0)" (( "(") (binary_expression "puVar11[7] == 0" (subscript_expression "puVar11[7]" (identifier "puVar11") ([ "[") (number_literal "7") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      local_40[0] = (byte *)0x0;\n      bVar5 = *pbVar3;\n      uVar7 = local_48[0];\n      pbVar3 = local_40[0];\n      if (bVar5 == 0) {\n        uVar7 = local_48[0] + 1;\n      }\n    }" ({ "{") (expression_statement "local_40[0] = (byte *)0x0;" (assignment_expression "local_40[0] = (byte *)0x0" (subscript_expression "local_40[0]" (identifier "local_40") ([ "[") (number_literal "0") (] "]")) (= "=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "bVar5 = *pbVar3;" (assignment_expression "bVar5 = *pbVar3" (identifier "bVar5") (= "=") (pointer_expression "*pbVar3" (* "*") (identifier "pbVar3"))) (; ";")) (expression_statement "uVar7 = local_48[0];" (assignment_expression "uVar7 = local_48[0]" (identifier "uVar7") (= "=") (subscript_expression "local_48[0]" (identifier "local_48") ([ "[") (number_literal "0") (] "]"))) (; ";")) (expression_statement "pbVar3 = local_40[0];" (assignment_expression "pbVar3 = local_40[0]" (identifier "pbVar3") (= "=") (subscript_expression "local_40[0]" (identifier "local_40") ([ "[") (number_literal "0") (] "]"))) (; ";")) (if_statement "if (bVar5 == 0) {\n        uVar7 = local_48[0] + 1;\n      }" (if "if") (parenthesized_expression "(bVar5 == 0)" (( "(") (binary_expression "bVar5 == 0" (identifier "bVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        uVar7 = local_48[0] + 1;\n      }" ({ "{") (expression_statement "uVar7 = local_48[0] + 1;" (assignment_expression "uVar7 = local_48[0] + 1" (identifier "uVar7") (= "=") (binary_expression "local_48[0] + 1" (subscript_expression "local_48[0]" (identifier "local_48") ([ "[") (number_literal "0") (] "]")) (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n      uVar1 = local_48[0] + 1;\n      uVar7 = uVar1;\n      if (*pbVar3 == 0) {\n        if (*(char *)(puVar11 + 8) == '\0') {\n          if (param_2 <= (int)uVar1) goto LAB_001baedd;\n          uVar7 = local_48[0] + 2;\n          pbVar3 = *(byte **)(param_3 + (long)(int)uVar1 * 8);\n        }\n        else {\n          pbVar3 = (byte *)puVar11[5];\n        }\n      }\n    }" (else "else") (compound_statement "{\n      uVar1 = local_48[0] + 1;\n      uVar7 = uVar1;\n      if (*pbVar3 == 0) {\n        if (*(char *)(puVar11 + 8) == '\0') {\n          if (param_2 <= (int)uVar1) goto LAB_001baedd;\n          uVar7 = local_48[0] + 2;\n          pbVar3 = *(byte **)(param_3 + (long)(int)uVar1 * 8);\n        }\n        else {\n          pbVar3 = (byte *)puVar11[5];\n        }\n      }\n    }" ({ "{") (expression_statement "uVar1 = local_48[0] + 1;" (assignment_expression "uVar1 = local_48[0] + 1" (identifier "uVar1") (= "=") (binary_expression "local_48[0] + 1" (subscript_expression "local_48[0]" (identifier "local_48") ([ "[") (number_literal "0") (] "]")) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar7 = uVar1;" (assignment_expression "uVar7 = uVar1" (identifier "uVar7") (= "=") (identifier "uVar1")) (; ";")) (if_statement "if (*pbVar3 == 0) {\n        if (*(char *)(puVar11 + 8) == '\0') {\n          if (param_2 <= (int)uVar1) goto LAB_001baedd;\n          uVar7 = local_48[0] + 2;\n          pbVar3 = *(byte **)(param_3 + (long)(int)uVar1 * 8);\n        }\n        else {\n          pbVar3 = (byte *)puVar11[5];\n        }\n      }" (if "if") (parenthesized_expression "(*pbVar3 == 0)" (( "(") (binary_expression "*pbVar3 == 0" (pointer_expression "*pbVar3" (* "*") (identifier "pbVar3")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        if (*(char *)(puVar11 + 8) == '\0') {\n          if (param_2 <= (int)uVar1) goto LAB_001baedd;\n          uVar7 = local_48[0] + 2;\n          pbVar3 = *(byte **)(param_3 + (long)(int)uVar1 * 8);\n        }\n        else {\n          pbVar3 = (byte *)puVar11[5];\n        }\n      }" ({ "{") (if_statement "if (*(char *)(puVar11 + 8) == '\0') {\n          if (param_2 <= (int)uVar1) goto LAB_001baedd;\n          uVar7 = local_48[0] + 2;\n          pbVar3 = *(byte **)(param_3 + (long)(int)uVar1 * 8);\n        }\n        else {\n          pbVar3 = (byte *)puVar11[5];\n        }" (if "if") (parenthesized_expression "(*(char *)(puVar11 + 8) == '\0')" (( "(") (binary_expression "*(char *)(puVar11 + 8) == '\0'" (pointer_expression "*(char *)(puVar11 + 8)" (* "*") (cast_expression "(char *)(puVar11 + 8)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 8)" (( "(") (binary_expression "puVar11 + 8" (identifier "puVar11") (+ "+") (number_literal "8")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n          if (param_2 <= (int)uVar1) goto LAB_001baedd;\n          uVar7 = local_48[0] + 2;\n          pbVar3 = *(byte **)(param_3 + (long)(int)uVar1 * 8);\n        }" ({ "{") (if_statement "if (param_2 <= (int)uVar1) goto LAB_001baedd;" (if "if") (parenthesized_expression "(param_2 <= (int)uVar1)" (( "(") (binary_expression "param_2 <= (int)uVar1" (identifier "param_2") (<= "<=") (cast_expression "(int)uVar1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar1"))) () ")")) (goto_statement "goto LAB_001baedd;" (goto "goto") (statement_identifier "LAB_001baedd") (; ";"))) (expression_statement "uVar7 = local_48[0] + 2;" (assignment_expression "uVar7 = local_48[0] + 2" (identifier "uVar7") (= "=") (binary_expression "local_48[0] + 2" (subscript_expression "local_48[0]" (identifier "local_48") ([ "[") (number_literal "0") (] "]")) (+ "+") (number_literal "2"))) (; ";")) (expression_statement "pbVar3 = *(byte **)(param_3 + (long)(int)uVar1 * 8);" (assignment_expression "pbVar3 = *(byte **)(param_3 + (long)(int)uVar1 * 8)" (identifier "pbVar3") (= "=") (pointer_expression "*(byte **)(param_3 + (long)(int)uVar1 * 8)" (* "*") (cast_expression "(byte **)(param_3 + (long)(int)uVar1 * 8)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_3 + (long)(int)uVar1 * 8)" (( "(") (binary_expression "param_3 + (long)(int)uVar1 * 8" (identifier "param_3") (+ "+") (binary_expression "(long)(int)uVar1 * 8" (cast_expression "(long)(int)uVar1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (cast_expression "(int)uVar1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar1"))) (* "*") (number_literal "8"))) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n          pbVar3 = (byte *)puVar11[5];\n        }" (else "else") (compound_statement "{\n          pbVar3 = (byte *)puVar11[5];\n        }" ({ "{") (expression_statement "pbVar3 = (byte *)puVar11[5];" (assignment_expression "pbVar3 = (byte *)puVar11[5]" (identifier "pbVar3") (= "=") (cast_expression "(byte *)puVar11[5]" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar11[5]" (identifier "puVar11") ([ "[") (number_literal "5") (] "]")))) (; ";")) (} "}")))) (} "}"))) (} "}")))) (expression_statement "local_48[0] = uVar7;" (assignment_expression "local_48[0] = uVar7" (subscript_expression "local_48[0]" (identifier "local_48") ([ "[") (number_literal "0") (] "]")) (= "=") (identifier "uVar7")) (; ";")) (expression_statement "local_40[0] = pbVar3;" (assignment_expression "local_40[0] = pbVar3" (subscript_expression "local_40[0]" (identifier "local_40") ([ "[") (number_literal "0") (] "]")) (= "=") (identifier "pbVar3")) (; ";")) (if_statement "if ((char **)puVar11 == &DAT_003c7ca0) {\n      bVar17 = (char **)puVar11 == &DAT_003c7ca0;\n      bVar16 = puVar11 < &DAT_003c7ca0;\n      local_48[1] = 0;\n      lVar9 = 6;\n      pbVar14 = pbVar3;\n      pbVar15 = (byte *)0x314883;\n      do {\n        if (lVar9 == 0) break;\n        lVar9 = lVar9 + -1;\n        bVar16 = *pbVar14 < *pbVar15;\n        bVar17 = *pbVar14 == *pbVar15;\n        pbVar14 = pbVar14 + (ulong)bVar18 * -2 + 1;\n        pbVar15 = pbVar15 + (ulong)bVar18 * -2 + 1;\n      } while (bVar17);\n      if ((!bVar16 && !bVar17) == bVar16) {\n        local_40[0] = (byte *)0x314883;\n      }\n      puVar11 = (undefined8 *)FUN_001b2990(1,local_40,1,local_40,local_48 + 1);\n      if (puVar11 == (undefined8 *)0x0) {\n        uVar10 = gettext("unknown -z option");\n        FUN_001b06b0(uVar10,pbVar3);\n        uVar1 = local_48[0];\nLAB_001baedd:\n        local_48[0] = uVar1;\n        uVar10 = gettext("missing argument");\n        FUN_001b06b0(uVar10,pcVar13);\n                    \n        uVar12 = FUN_0014340a();\n        return uVar12;\n      }\n    }" (if "if") (parenthesized_expression "((char **)puVar11 == &DAT_003c7ca0)" (( "(") (binary_expression "(char **)puVar11 == &DAT_003c7ca0" (cast_expression "(char **)puVar11" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "puVar11")) (== "==") (pointer_expression "&DAT_003c7ca0" (& "&") (identifier "DAT_003c7ca0"))) () ")")) (compound_statement "{\n      bVar17 = (char **)puVar11 == &DAT_003c7ca0;\n      bVar16 = puVar11 < &DAT_003c7ca0;\n      local_48[1] = 0;\n      lVar9 = 6;\n      pbVar14 = pbVar3;\n      pbVar15 = (byte *)0x314883;\n      do {\n        if (lVar9 == 0) break;\n        lVar9 = lVar9 + -1;\n        bVar16 = *pbVar14 < *pbVar15;\n        bVar17 = *pbVar14 == *pbVar15;\n        pbVar14 = pbVar14 + (ulong)bVar18 * -2 + 1;\n        pbVar15 = pbVar15 + (ulong)bVar18 * -2 + 1;\n      } while (bVar17);\n      if ((!bVar16 && !bVar17) == bVar16) {\n        local_40[0] = (byte *)0x314883;\n      }\n      puVar11 = (undefined8 *)FUN_001b2990(1,local_40,1,local_40,local_48 + 1);\n      if (puVar11 == (undefined8 *)0x0) {\n        uVar10 = gettext("unknown -z option");\n        FUN_001b06b0(uVar10,pbVar3);\n        uVar1 = local_48[0];\nLAB_001baedd:\n        local_48[0] = uVar1;\n        uVar10 = gettext("missing argument");\n        FUN_001b06b0(uVar10,pcVar13);\n                    \n        uVar12 = FUN_0014340a();\n        return uVar12;\n      }\n    }" ({ "{") (expression_statement "bVar17 = (char **)puVar11 == &DAT_003c7ca0;" (assignment_expression "bVar17 = (char **)puVar11 == &DAT_003c7ca0" (identifier "bVar17") (= "=") (binary_expression "(char **)puVar11 == &DAT_003c7ca0" (cast_expression "(char **)puVar11" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "puVar11")) (== "==") (pointer_expression "&DAT_003c7ca0" (& "&") (identifier "DAT_003c7ca0")))) (; ";")) (expression_statement "bVar16 = puVar11 < &DAT_003c7ca0;" (assignment_expression "bVar16 = puVar11 < &DAT_003c7ca0" (identifier "bVar16") (= "=") (binary_expression "puVar11 < &DAT_003c7ca0" (identifier "puVar11") (< "<") (pointer_expression "&DAT_003c7ca0" (& "&") (identifier "DAT_003c7ca0")))) (; ";")) (expression_statement "local_48[1] = 0;" (assignment_expression "local_48[1] = 0" (subscript_expression "local_48[1]" (identifier "local_48") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "lVar9 = 6;" (assignment_expression "lVar9 = 6" (identifier "lVar9") (= "=") (number_literal "6")) (; ";")) (expression_statement "pbVar14 = pbVar3;" (assignment_expression "pbVar14 = pbVar3" (identifier "pbVar14") (= "=") (identifier "pbVar3")) (; ";")) (expression_statement "pbVar15 = (byte *)0x314883;" (assignment_expression "pbVar15 = (byte *)0x314883" (identifier "pbVar15") (= "=") (cast_expression "(byte *)0x314883" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x314883"))) (; ";")) (do_statement "do {\n        if (lVar9 == 0) break;\n        lVar9 = lVar9 + -1;\n        bVar16 = *pbVar14 < *pbVar15;\n        bVar17 = *pbVar14 == *pbVar15;\n        pbVar14 = pbVar14 + (ulong)bVar18 * -2 + 1;\n        pbVar15 = pbVar15 + (ulong)bVar18 * -2 + 1;\n      } while (bVar17);" (do "do") (compound_statement "{\n        if (lVar9 == 0) break;\n        lVar9 = lVar9 + -1;\n        bVar16 = *pbVar14 < *pbVar15;\n        bVar17 = *pbVar14 == *pbVar15;\n        pbVar14 = pbVar14 + (ulong)bVar18 * -2 + 1;\n        pbVar15 = pbVar15 + (ulong)bVar18 * -2 + 1;\n      }" ({ "{") (if_statement "if (lVar9 == 0) break;" (if "if") (parenthesized_expression "(lVar9 == 0)" (( "(") (binary_expression "lVar9 == 0" (identifier "lVar9") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar9 = lVar9 + -1;" (assignment_expression "lVar9 = lVar9 + -1" (identifier "lVar9") (= "=") (binary_expression "lVar9 + -1" (identifier "lVar9") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar16 = *pbVar14 < *pbVar15;" (assignment_expression "bVar16 = *pbVar14 < *pbVar15" (identifier "bVar16") (= "=") (binary_expression "*pbVar14 < *pbVar15" (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")) (< "<") (pointer_expression "*pbVar15" (* "*") (identifier "pbVar15")))) (; ";")) (expression_statement "bVar17 = *pbVar14 == *pbVar15;" (assignment_expression "bVar17 = *pbVar14 == *pbVar15" (identifier "bVar17") (= "=") (binary_expression "*pbVar14 == *pbVar15" (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")) (== "==") (pointer_expression "*pbVar15" (* "*") (identifier "pbVar15")))) (; ";")) (expression_statement "pbVar14 = pbVar14 + (ulong)bVar18 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (ulong)bVar18 * -2 + 1" (identifier "pbVar14") (= "=") (binary_expression "pbVar14 + (ulong)bVar18 * -2 + 1" (binary_expression "pbVar14 + (ulong)bVar18 * -2" (identifier "pbVar14") (+ "+") (binary_expression "(ulong)bVar18 * -2" (cast_expression "(ulong)bVar18" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar18")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar15 = pbVar15 + (ulong)bVar18 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (ulong)bVar18 * -2 + 1" (identifier "pbVar15") (= "=") (binary_expression "pbVar15 + (ulong)bVar18 * -2 + 1" (binary_expression "pbVar15 + (ulong)bVar18 * -2" (identifier "pbVar15") (+ "+") (binary_expression "(ulong)bVar18 * -2" (cast_expression "(ulong)bVar18" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar18")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar17)" (( "(") (identifier "bVar17") () ")")) (; ";")) (if_statement "if ((!bVar16 && !bVar17) == bVar16) {\n        local_40[0] = (byte *)0x314883;\n      }" (if "if") (parenthesized_expression "((!bVar16 && !bVar17) == bVar16)" (( "(") (binary_expression "(!bVar16 && !bVar17) == bVar16" (parenthesized_expression "(!bVar16 && !bVar17)" (( "(") (binary_expression "!bVar16 && !bVar17" (unary_expression "!bVar16" (! "!") (identifier "bVar16")) (&& "&&") (unary_expression "!bVar17" (! "!") (identifier "bVar17"))) () ")")) (== "==") (identifier "bVar16")) () ")")) (compound_statement "{\n        local_40[0] = (byte *)0x314883;\n      }" ({ "{") (expression_statement "local_40[0] = (byte *)0x314883;" (assignment_expression "local_40[0] = (byte *)0x314883" (subscript_expression "local_40[0]" (identifier "local_40") ([ "[") (number_literal "0") (] "]")) (= "=") (cast_expression "(byte *)0x314883" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x314883"))) (; ";")) (} "}"))) (expression_statement "puVar11 = (undefined8 *)FUN_001b2990(1,local_40,1,local_40,local_48 + 1);" (assignment_expression "puVar11 = (undefined8 *)FUN_001b2990(1,local_40,1,local_40,local_48 + 1)" (identifier "puVar11") (= "=") (cast_expression "(undefined8 *)FUN_001b2990(1,local_40,1,local_40,local_48 + 1)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_001b2990(1,local_40,1,local_40,local_48 + 1)" (identifier "FUN_001b2990") (argument_list "(1,local_40,1,local_40,local_48 + 1)" (( "(") (number_literal "1") (, ",") (identifier "local_40") (, ",") (number_literal "1") (, ",") (identifier "local_40") (, ",") (binary_expression "local_48 + 1" (identifier "local_48") (+ "+") (number_literal "1")) () ")"))))) (; ";")) (if_statement "if (puVar11 == (undefined8 *)0x0) {\n        uVar10 = gettext("unknown -z option");\n        FUN_001b06b0(uVar10,pbVar3);\n        uVar1 = local_48[0];\nLAB_001baedd:\n        local_48[0] = uVar1;\n        uVar10 = gettext("missing argument");\n        FUN_001b06b0(uVar10,pcVar13);\n                    \n        uVar12 = FUN_0014340a();\n        return uVar12;\n      }" (if "if") (parenthesized_expression "(puVar11 == (undefined8 *)0x0)" (( "(") (binary_expression "puVar11 == (undefined8 *)0x0" (identifier "puVar11") (== "==") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        uVar10 = gettext("unknown -z option");\n        FUN_001b06b0(uVar10,pbVar3);\n        uVar1 = local_48[0];\nLAB_001baedd:\n        local_48[0] = uVar1;\n        uVar10 = gettext("missing argument");\n        FUN_001b06b0(uVar10,pcVar13);\n                    \n        uVar12 = FUN_0014340a();\n        return uVar12;\n      }" ({ "{") (expression_statement "uVar10 = gettext("unknown -z option");" (assignment_expression "uVar10 = gettext("unknown -z option")" (identifier "uVar10") (= "=") (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_001b06b0(uVar10,pbVar3);" (call_expression "FUN_001b06b0(uVar10,pbVar3)" (identifier "FUN_001b06b0") (argument_list "(uVar10,pbVar3)" (( "(") (identifier "uVar10") (, ",") (identifier "pbVar3") () ")"))) (; ";")) (expression_statement "uVar1 = local_48[0];" (assignment_expression "uVar1 = local_48[0]" (identifier "uVar1") (= "=") (subscript_expression "local_48[0]" (identifier "local_48") ([ "[") (number_literal "0") (] "]"))) (; ";")) (labeled_statement "LAB_001baedd:\n        local_48[0] = uVar1;" (statement_identifier "LAB_001baedd") (: ":") (expression_statement "local_48[0] = uVar1;" (assignment_expression "local_48[0] = uVar1" (subscript_expression "local_48[0]" (identifier "local_48") ([ "[") (number_literal "0") (] "]")) (= "=") (identifier "uVar1")) (; ";"))) (expression_statement "uVar10 = gettext("missing argument");" (assignment_expression "uVar10 = gettext("missing argument")" (identifier "uVar10") (= "=") (call_expression "gettext("missing argument")" (identifier "gettext") (argument_list "("missing argument")" (( "(") (string_literal ""missing argument"" (" """) (string_content "missing argument") (" """)) () ")")))) (; ";")) (expression_statement "FUN_001b06b0(uVar10,pcVar13);" (call_expression "FUN_001b06b0(uVar10,pcVar13)" (identifier "FUN_001b06b0") (argument_list "(uVar10,pcVar13)" (( "(") (identifier "uVar10") (, ",") (identifier "pcVar13") () ")"))) (; ";")) (expression_statement "uVar12 = FUN_0014340a();" (assignment_expression "uVar12 = FUN_0014340a()" (identifier "uVar12") (= "=") (call_expression "FUN_0014340a()" (identifier "FUN_0014340a") (argument_list "()" (( "(") () ")")))) (; ";")) (return_statement "return uVar12;" (return "return") (identifier "uVar12") (; ";")) (} "}"))) (} "}"))) (expression_statement "(*(code *)**(undefined8 **)puVar11[9])\n              ((undefined8 *)puVar11[9],*puVar2,local_40[0],param_1,param_1 + 8);" (call_expression "(*(code *)**(undefined8 **)puVar11[9])\n              ((undefined8 *)puVar11[9],*puVar2,local_40[0],param_1,param_1 + 8)" (parenthesized_expression "(*(code *)**(undefined8 **)puVar11[9])" (( "(") (pointer_expression "*(code *)**(undefined8 **)puVar11[9]" (* "*") (cast_expression "(code *)**(undefined8 **)puVar11[9]" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "**(undefined8 **)puVar11[9]" (* "*") (pointer_expression "*(undefined8 **)puVar11[9]" (* "*") (cast_expression "(undefined8 **)puVar11[9]" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (subscript_expression "puVar11[9]" (identifier "puVar11") ([ "[") (number_literal "9") (] "]"))))))) () ")")) (argument_list "((undefined8 *)puVar11[9],*puVar2,local_40[0],param_1,param_1 + 8)" (( "(") (cast_expression "(undefined8 *)puVar11[9]" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar11[9]" (identifier "puVar11") ([ "[") (number_literal "9") (] "]"))) (, ",") (pointer_expression "*puVar2" (* "*") (identifier "puVar2")) (, ",") (subscript_expression "local_40[0]" (identifier "local_40") ([ "[") (number_literal "0") (] "]")) (, ",") (identifier "param_1") (, ",") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")"))) (; ";")) (if_statement "if (local_48[0] != uVar6) goto LAB_001baba8;" (if "if") (parenthesized_expression "(local_48[0] != uVar6)" (( "(") (binary_expression "local_48[0] != uVar6" (subscript_expression "local_48[0]" (identifier "local_48") ([ "[") (number_literal "0") (] "]")) (!= "!=") (identifier "uVar6")) () ")")) (goto_statement "goto LAB_001baba8;" (goto "goto") (statement_identifier "LAB_001baba8") (; ";"))) (expression_statement "pcVar13 = *(char **)(param_3 + unaff_R15 * 8);" (assignment_expression "pcVar13 = *(char **)(param_3 + unaff_R15 * 8)" (identifier "pcVar13") (= "=") (pointer_expression "*(char **)(param_3 + unaff_R15 * 8)" (* "*") (cast_expression "(char **)(param_3 + unaff_R15 * 8)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_3 + unaff_R15 * 8)" (( "(") (binary_expression "param_3 + unaff_R15 * 8" (identifier "param_3") (+ "+") (binary_expression "unaff_R15 * 8" (identifier "unaff_R15") (* "*") (number_literal "8"))) () ")"))))) (; ";")) (if_statement "if (*pcVar13 == '-') goto LAB_001babe8;" (if "if") (parenthesized_expression "(*pcVar13 == '-')" (( "(") (binary_expression "*pcVar13 == '-'" (pointer_expression "*pcVar13" (* "*") (identifier "pcVar13")) (== "==") (char_literal "'-'" (' "'") (character "-") (' "'"))) () ")")) (goto_statement "goto LAB_001babe8;" (goto "goto") (statement_identifier "LAB_001babe8") (; ";"))) (labeled_statement "LAB_001bac94:\n    pcVar13 = (char *)*puVar2;" (statement_identifier "LAB_001bac94") (: ":") (expression_statement "pcVar13 = (char *)*puVar2;" (assignment_expression "pcVar13 = (char *)*puVar2" (identifier "pcVar13") (= "=") (cast_expression "(char *)*puVar2" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar2" (* "*") (identifier "puVar2")))) (; ";"))) (expression_statement "uVar10 = gettext("unknown option");" (assignment_expression "uVar10 = gettext("unknown option")" (identifier "uVar10") (= "=") (call_expression "gettext("unknown option")" (identifier "gettext") (argument_list "("unknown option")" (( "(") (string_literal ""unknown option"" (" """) (string_content "unknown option") (" """)) () ")")))) (; ";")) (expression_statement "FUN_001b06b0(uVar10,pcVar13);" (call_expression "FUN_001b06b0(uVar10,pcVar13)" (identifier "FUN_001b06b0") (argument_list "(uVar10,pcVar13)" (( "(") (identifier "uVar10") (, ",") (identifier "pcVar13") () ")"))) (; ";")) (labeled_statement "LAB_001bacb0:\n    puVar11 = &DAT_003c7ca0;" (statement_identifier "LAB_001bacb0") (: ":") (expression_statement "puVar11 = &DAT_003c7ca0;" (assignment_expression "puVar11 = &DAT_003c7ca0" (identifier "puVar11") (= "=") (pointer_expression "&DAT_003c7ca0" (& "&") (identifier "DAT_003c7ca0"))) (; ";"))) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}")))

/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
/* 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 var_22,char **var_1,int var_2,bool *no_more_options)

{
  type_2 uVar1;
  char **ppcVar2;
  type_3 *opt;
  char cVar3;
  type_3 var_21;
  type_2 uVar5;
  int var_12;
  int var_29;
  type_4 *var_5;
  char *var_15;
  char **ppcVar10;
  char **ppcVar11;
  long var_23;
  int extraout_EDX;
  char **opt_00;
  type_3 *var_24;
  type_3 *var_25;
  long var_20;
  long unaff_R15;
  bool var_26;
  bool bVar16;
  type_3 bVar17;
  int var_6;
  int dummy_i;
  char *arg;
  
  bVar17 = 0;
  ppcVar2 = var_1 + var_2;
  var_15 = *ppcVar2;
  if ((*var_15 != '-') || (*no_more_options != false)) {
                    /* WARNING: Subroutine does not return */
    var_3("../../gold/options.cc",0x5f0,"process_one_option");
  }
  if ((var_15[1] == '-') && (var_15[2] == '\0')) {
    *no_more_options = true;
    return var_2 + 1;
  }
  arg = (char *)0x0;
  var_6 = var_2;
  var_5 = anon_unknown.dwarf_9fbd7f::var_4(var_22,var_1,false,&arg,&var_6);
  var_29 = var_6;
  if (var_5 != (type_4 *)0x0) {
    (**var_5->reader->_vptr_Struct_var)(var_5->reader,*ppcVar2,arg,this,&this->options_);
    return var_6;
  }
  if (var_2 != var_6) goto LAB_001bac94;
  unaff_R15 = (long)var_6;
  var_20 = 1;
  opt_00 = (char **)var_1[unaff_R15];
  if (*(char *)opt_00 != '-') goto LAB_001bac94;
LAB_001babe8:
  if (((anonymous_namespace)::var_9(int,var_10**,int,var_10**,int*)::var_7 ==
       '\0') &&
     (var_12 = var_8(&(anonymous_namespace)::
                                   var_9(var_11,var_10**,var_11,var_10**,var_11*)::
                                   var_7), var_12 != 0)) {
    (anonymous_namespace)::var_9(int,var_10**,var_11,var_10**,var_11*)::var_7 =
         &DAT_003c7cb0;
                    /* try { // try from 001bacef to 001bacf3 has its CatchHandler @ 001baefc */
    std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::
    var_13<var_10*>
              ((basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)
               &(anonymous_namespace)::var_9(int,var_10**,int,var_10**,int*)::
                var_7,"");
    _DAT_003c7cc0 = 4;
    DAT_003c7cc4 = 0x7a;
    _DAT_003c7cc8 = "";
    var_16 = 0;
    _DAT_003c7cd8 = "Z-OPTION";
    DAT_003c7ce0 = 0;
    _DAT_003c7ce8 = 0;
    DAT_003c7cf0 = 0;
    var_15 = var_14((anonymous_namespace)::
                    var_9(var_11,var_10**,var_11,var_10**,var_11*)::var_7,0x5f);
    if (var_15 != (char *)0x0) {
      do {
        *var_15 = '-';
        var_15 = var_14(var_15,0x5f);
      } while (var_15 != (char *)0x0);
      if ((var_16 != 0) && (gold::options::var_17 != false)) {
                    /* try { // try from 001bad8f to 001bad93 has its CatchHandler @ 001baef4 */
        gold::options::One_option::register_option
                  ((type_4 *)
                   &(anonymous_namespace)::
                    var_9(var_11,var_10**,var_11,var_10**,var_11*)::var_7);
      }
    }
    var_18(&(anonymous_namespace)::
                         var_9(var_11,var_10**,var_11,var_10**,var_11*)::var_7);
    var_19(gold::options::type_4::~type_4,
                 &(anonymous_namespace)::var_9(var_11,var_10**,var_11,var_10**,var_11*)
                  ::var_7,&__dso_handle);
  }
  cVar3 = *(char *)((long)opt_00 + var_20);
  if (cVar3 == 'z') goto LAB_001bacb0;
  if (0x7e < (int)cVar3 - 1U) goto LAB_001bac94;
  ppcVar10 = (char **)gold::options::short_options[(int)cVar3];
  if ((type_4 *)ppcVar10 == (type_4 *)0x0) goto LAB_001bac94;
  do {
    var_20 = var_20 + 1;
    opt = (type_3 *)((long)opt_00 + var_20);
    if (((type_4 *)ppcVar10)->helparg == (char *)0x0) {
      arg = (char *)0x0;
      var_21 = *opt;
      uVar5 = var_6;
      opt = (type_3 *)arg;
      if (var_21 == 0) {
        uVar5 = var_6 + 1;
      }
    }
    else {
      uVar1 = var_6 + 1;
      ppcVar11 = (char **)(type_5)uVar1;
      uVar5 = uVar1;
      if (*opt == 0) {
        if (((type_4 *)ppcVar10)->optional_arg == false) {
          if (var_22 <= (int)uVar1) goto LAB_001baedd;
          uVar5 = var_6 + 2;
          opt = (type_3 *)var_1[(int)uVar1];
        }
        else {
          opt = (type_3 *)((type_4 *)ppcVar10)->default_value;
        }
      }
    }
    var_6 = uVar5;
    arg = (char *)opt;
    if ((type_4 *)ppcVar10 ==
        (type_4 *)
        &(anonymous_namespace)::var_9(var_11,var_10**,var_11,var_10**,var_11*)::var_7)
    {
      bVar16 = ppcVar10 ==
               &(anonymous_namespace)::var_9(var_11,var_10**,var_11,var_10**,var_11*)::
                var_7;
      var_26 = ppcVar10 <
               &(anonymous_namespace)::var_9(var_11,var_10**,var_11,var_10**,var_11*)::
                var_7;
      dummy_i = 0;
      var_23 = 6;
      var_24 = opt;
      var_25 = (type_3 *)0x314883;
      do {
        if (var_23 == 0) break;
        var_23 = var_23 + -1;
        var_26 = *var_24 < *var_25;
        bVar16 = *var_24 == *var_25;
        var_24 = var_24 + (type_5)bVar17 * -2 + 1;
        var_25 = var_25 + (type_5)bVar17 * -2 + 1;
      } while (bVar16);
      if ((!var_26 && !bVar16) == var_26) {
        arg = "buildd";
      }
      ppcVar11 = &arg;
      ppcVar10 = (char **)anon_unknown.dwarf_9fbd7f::var_4(1,&arg,true,&arg,&dummy_i);
      if ((type_4 *)ppcVar10 == (type_4 *)0x0) {
        var_15 = (char *)var_27("unknown -z option");
        anon_unknown.dwarf_9fbd7f::var_28(var_15,(char *)opt);
        uVar1 = var_6;
LAB_001baedd:
        var_6 = uVar1;
        var_15 = (char *)var_27("missing argument");
        anon_unknown.dwarf_9fbd7f::var_28(var_15,(char *)opt_00);
                    /* catch() { ... } // from try @ 001bad8f with catch @ 001baef4 */
        var_29 = function_1((int)var_15,opt_00,extraout_EDX,(bool *)ppcVar11);
        return var_29;
      }
    }
    (**((type_4 *)ppcVar10)->reader->_vptr_Struct_var)
              (((type_4 *)ppcVar10)->reader,*ppcVar2,arg,this,&this->options_);
    if (var_6 != var_29) {
      return var_6;
    }
    opt_00 = (char **)var_1[unaff_R15];
    if (*(char *)opt_00 == '-') goto LAB_001babe8;
LAB_001bac94:
    opt_00 = (char **)*ppcVar2;
    var_15 = (char *)var_27("unknown option");
    anon_unknown.dwarf_9fbd7f::var_28(var_15,(char *)opt_00);
LAB_001bacb0:
    ppcVar10 = &(anonymous_namespace)::var_9(var_11,var_10**,var_11,var_10**,var_11*)::
                var_7;
  } while( true );
}


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

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

ulong MASKED(long param_1,int param_2,long param_3,uint param_4,char *param_5)

{
  uint uVar1;
  undefined8 *puVar2;
  byte *pbVar3;
  char cVar4;
  byte bVar5;
  uint uVar6;
  uint uVar7;
  int iVar8;
  long lVar9;
  undefined8 uVar10;
  undefined8 *puVar11;
  char *__s;
  ulong uVar12;
  char *pcVar13;
  byte *pbVar14;
  byte *pbVar15;
  long unaff_R13;
  long unaff_R15;
  bool bVar16;
  bool bVar17;
  byte bVar18;
  uint local_48 [2];
  byte *local_40 [2];
  
  bVar18 = 0;
  puVar2 = (undefined8 *)(param_3 + (long)(int)param_4 * 8);
  pcVar13 = (char *)*puVar2;
  if ((*pcVar13 != '-') || (*param_5 != '\0')) {
                    /* WARNING: Subroutine does not return */
    FUN_0016cdf0("../../gold/options.cc",0x5f0,"process_one_option");
  }
  if ((pcVar13[1] == '-') && (pcVar13[2] == '\0')) {
    *param_5 = '\x01';
    return (ulong)(param_4 + 1);
  }
  local_40[0] = (byte *)0x0;
  local_48[0] = param_4;
  lVar9 = FUN_001b2990(param_2,param_3,0,local_40,local_48);
  uVar6 = local_48[0];
  if (lVar9 != 0) {
    (**(code **)**(undefined8 **)(lVar9 + 0x48))
              (*(undefined8 **)(lVar9 + 0x48),*puVar2,local_40[0],param_1,param_1 + 8);
LAB_001baba8:
    return (ulong)local_48[0];
  }
  if (param_4 != local_48[0]) goto LAB_001bac94;
  unaff_R15 = (long)(int)local_48[0];
  unaff_R13 = 1;
  pcVar13 = *(char **)(param_3 + unaff_R15 * 8);
  if (*pcVar13 != '-') goto LAB_001bac94;
LAB_001babe8:
  if ((DAT_003c7c90 == '\0') && (iVar8 = FUN_002756c0(&DAT_003c7c90), iVar8 != 0)) {
    DAT_003c7ca0 = &DAT_003c7cb0;
                    /* try { // try from 001bacef to 001bacf3 has its CatchHandler @ 001baefc */
    FUN_0015cbe0(&DAT_003c7ca0,"");
    _DAT_003c7cc0 = 4;
    DAT_003c7cc4 = 0x7a;
    _DAT_003c7cc8 = "";
    DAT_003c7cd0 = 0;
    DAT_003c7cd8 = "Z-OPTION";
    DAT_003c7ce0 = 0;
    _DAT_003c7ce8 = 0;
    DAT_003c7cf0 = 0;
    __s = strchr(DAT_003c7ca0,0x5f);
    if (__s != (char *)0x0) {
      do {
        *__s = '-';
        __s = strchr(__s,0x5f);
      } while (__s != (char *)0x0);
      if ((DAT_003c7cd0 != 0) && (DAT_003c8128 != '\0')) {
                    /* try { // try from 001bad8f to 001bad93 has its CatchHandler @ 001baef4 */
        FUN_001b2b90(&DAT_003c7ca0);
      }
    }
    FUN_002757f0(&DAT_003c7c90);
    __cxa_atexit(FUN_001bc860,&DAT_003c7ca0,&PTR_LOOP_003be5a8);
  }
  cVar4 = pcVar13[unaff_R13];
  if (cVar4 == 'z') goto LAB_001bacb0;
  if (0x7e < (int)cVar4 - 1U) goto LAB_001bac94;
  puVar11 = *(undefined8 **)(&DAT_003c7d00 + (long)(int)cVar4 * 8);
  if (puVar11 == (undefined8 *)0x0) goto LAB_001bac94;
  do {
    unaff_R13 = unaff_R13 + 1;
    pbVar3 = (byte *)(pcVar13 + unaff_R13);
    if (puVar11[7] == 0) {
      local_40[0] = (byte *)0x0;
      bVar5 = *pbVar3;
      uVar7 = local_48[0];
      pbVar3 = local_40[0];
      if (bVar5 == 0) {
        uVar7 = local_48[0] + 1;
      }
    }
    else {
      uVar1 = local_48[0] + 1;
      uVar7 = uVar1;
      if (*pbVar3 == 0) {
        if (*(char *)(puVar11 + 8) == '\0') {
          if (param_2 <= (int)uVar1) goto LAB_001baedd;
          uVar7 = local_48[0] + 2;
          pbVar3 = *(byte **)(param_3 + (long)(int)uVar1 * 8);
        }
        else {
          pbVar3 = (byte *)puVar11[5];
        }
      }
    }
    local_48[0] = uVar7;
    local_40[0] = pbVar3;
    if ((char **)puVar11 == &DAT_003c7ca0) {
      bVar17 = (char **)puVar11 == &DAT_003c7ca0;
      bVar16 = puVar11 < &DAT_003c7ca0;
      local_48[1] = 0;
      lVar9 = 6;
      pbVar14 = pbVar3;
      pbVar15 = (byte *)0x314883;
      do {
        if (lVar9 == 0) break;
        lVar9 = lVar9 + -1;
        bVar16 = *pbVar14 < *pbVar15;
        bVar17 = *pbVar14 == *pbVar15;
        pbVar14 = pbVar14 + (ulong)bVar18 * -2 + 1;
        pbVar15 = pbVar15 + (ulong)bVar18 * -2 + 1;
      } while (bVar17);
      if ((!bVar16 && !bVar17) == bVar16) {
        local_40[0] = (byte *)0x314883;
      }
      puVar11 = (undefined8 *)FUN_001b2990(1,local_40,1,local_40,local_48 + 1);
      if (puVar11 == (undefined8 *)0x0) {
        uVar10 = gettext("unknown -z option");
        FUN_001b06b0(uVar10,pbVar3);
        uVar1 = local_48[0];
LAB_001baedd:
        local_48[0] = uVar1;
        uVar10 = gettext("missing argument");
        FUN_001b06b0(uVar10,pcVar13);
                    /* catch() { ... } // from try @ 001bad8f with catch @ 001baef4 */
        uVar12 = FUN_0014340a();
        return uVar12;
      }
    }
    (*(code *)**(undefined8 **)puVar11[9])
              ((undefined8 *)puVar11[9],*puVar2,local_40[0],param_1,param_1 + 8);
    if (local_48[0] != uVar6) goto LAB_001baba8;
    pcVar13 = *(char **)(param_3 + unaff_R15 * 8);
    if (*pcVar13 == '-') goto LAB_001babe8;
LAB_001bac94:
    pcVar13 = (char *)*puVar2;
    uVar10 = gettext("unknown option");
    FUN_001b06b0(uVar10,pcVar13);
LAB_001bacb0:
    puVar11 = &DAT_003c7ca0;
  } while( true );
}

