
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

int cd_builtin(WORD_LIST *list)

{
  char cVar1;
  bool bVar2;
  WORD_LIST *pWVar3;
  int iVar4;
  int iVar5;
  char *pcVar6;
  int *piVar7;
  char *pcVar8;
  char *pcVar9;
  char *newdir;
  int extraout_ECX;
  int xattr;
  int xattr_00;
  int xattr_01;
  int xattr_02;
  int extraout_ECX_00;
  int xattr_03;
  int extraout_ECX_01;
  int iVar10;
  int in_GS_OFFSET;
  bool bVar11;
  int local_40;
  int path_index;
  int local_20;
  undefined4 uStack_14;
  
  iVar10 = no_symbolic_links;
  uStack_14 = 0x9ab09;
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  if (restricted != 0) {
    sh_restricted((char *)0x0);
    local_40 = 1;
    goto LAB_0009ab97;
  }
  eflag = 0;
  reset_internal_getopt();
  while (iVar4 = internal_getopt(list,"eLP"), pWVar3 = loptend, iVar4 != -1) {
    if (iVar4 == 0x4c) {
      iVar10 = 0;
    }
    else {
      if (iVar4 < 0x4d) {
        if (iVar4 == -99) {
          builtin_help();
          local_40 = 0x102;
        }
        else {
LAB_0009abd8:
          builtin_usage();
          local_40 = 0x102;
        }
        goto LAB_0009ab97;
      }
      if (iVar4 == 0x50) {
        iVar10 = 1;
      }
      else {
        if (iVar4 != 0x65) goto LAB_0009abd8;
        eflag = 1;
      }
    }
  }
  bVar11 = cdable_vars != 0;
  bVar2 = false;
  if ((interactive != 0) && (cdspelling != 0)) {
    bVar2 = true;
  }
  if ((eflag != 0) && (iVar10 == 0)) {
    eflag = 0;
  }
  if (loptend == (WORD_LIST *)0x0) {
    pcVar9 = get_string_value("HOME");
    if (pcVar9 != (char *)0x0) {
      iVar4 = change_to_directory(pcVar9,iVar10,xattr_00);
      if (iVar4 != 0) goto LAB_0009ad5e;
      goto LAB_0009ace1;
    }
    pcVar9 = "HOME not set";
  }
  else {
    if (loptend->next == (word_list *)0x0) {
      pcVar9 = loptend->word->word;
      if ((*pcVar9 == '-') && (pcVar9[1] == '\0')) {
        pcVar9 = get_string_value("OLDPWD");
        if (pcVar9 == (char *)0x0) {
          pcVar9 = "OLDPWD not set";
          goto LAB_0009ad7b;
        }
        iVar4 = change_to_directory(pcVar9,iVar10,xattr_02);
        if (iVar4 != 0) {
          puts(pcVar9);
          goto LAB_0009ad5e;
        }
      }
      else {
        iVar5 = absolute_pathname(pcVar9);
        iVar4 = extraout_ECX;
        if ((iVar5 == 0) &&
           ((privileged_mode == 0 &&
            (pcVar6 = get_string_value("CDPATH"), iVar4 = extraout_ECX_00, pcVar6 != (char *)0x0))))
        {
          pcVar9 = pWVar3->word->word;
          path_index = 0;
          while (pcVar8 = extract_colon_unit(pcVar6,&path_index), iVar4 = extraout_ECX_01,
                pcVar8 != (char *)0x0) {
            cVar1 = *pcVar8;
            newdir = sh_makepath(pcVar8,pcVar9,1);
            free(pcVar8);
            iVar4 = change_to_directory(newdir,iVar10,xattr_03);
            if (iVar4 != 0) {
              if (cVar1 != '\0') {
                pcVar9 = newdir;
                if (iVar10 == 0) {
                  pcVar9 = the_current_working_directory;
                }
                if (pcVar9 != (char *)0x0) {
                  puts(pcVar9);
                }
              }
              free(newdir);
              local_40 = bindpwd(iVar10);
              goto LAB_0009ab97;
            }
            free(newdir);
          }
        }
        else {
          pcVar9 = pWVar3->word->word;
        }
        iVar4 = change_to_directory(pcVar9,iVar10,iVar4);
        if (iVar4 != 0) {
LAB_0009ad5e:
          local_40 = bindpwd(iVar10);
          goto LAB_0009ab97;
        }
        if (((bVar11) && (pcVar6 = get_string_value(pcVar9), pcVar6 != (char *)0x0)) &&
           (iVar4 = change_to_directory(pcVar6,iVar10,xattr_01), iVar4 != 0)) {
          puts(pcVar6);
          local_40 = bindpwd(iVar10);
          goto LAB_0009ab97;
        }
        if ((bVar2) && (pcVar6 = dirspell(pcVar9), pcVar6 != (char *)0x0)) {
          iVar4 = change_to_directory(pcVar6,iVar10,xattr);
          if (iVar4 != 0) {
            puts(pcVar6);
            free(pcVar6);
            local_40 = bindpwd(iVar10);
            goto LAB_0009ab97;
          }
          free(pcVar6);
        }
      }
LAB_0009ace1:
      piVar7 = __errno_location();
      iVar10 = *piVar7;
      pcVar6 = printable_filename(pcVar9,0);
      pcVar8 = strerror(iVar10);
      builtin_error("%s: %s",pcVar6,pcVar8);
      local_40 = 1;
      if (pcVar6 != pcVar9) {
        local_40 = 1;
        free(pcVar6);
      }
      goto LAB_0009ab97;
    }
    pcVar9 = "too many arguments";
  }
LAB_0009ad7b:
  pcVar9 = (char *)dcgettext(0,pcVar9,5);
  builtin_error(pcVar9);
  local_40 = 1;
LAB_0009ab97:
  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {
                    /* WARNING: Subroutine does not return */
    __stack_chk_fail_local();
  }
  return local_40;
}



/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

undefined4 cd_builtin(undefined4 param_1)

{
  char cVar1;
  bool bVar2;
  int iVar3;
  char *pcVar4;
  int *piVar5;
  char *pcVar6;
  undefined4 uVar7;
  char *pcVar8;
  int iVar9;
  int iVar10;
  int in_GS_OFFSET;
  bool bVar11;
  undefined4 local_40;
  undefined4 local_24;
  int local_20;
  undefined4 uStack_14;
  
  iVar10 = no_symbolic_links;
  uStack_14 = 0x9ab09;
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  if (restricted != 0) {
    sh_restricted(0);
    local_40 = 1;
    goto LAB_0009ab97;
  }
  DAT_00151658 = 0;
  reset_internal_getopt();
  while (iVar3 = internal_getopt(param_1,&DAT_001017d8), piVar5 = loptend, iVar3 != -1) {
    if (iVar3 == 0x4c) {
      iVar10 = 0;
    }
    else {
      if (iVar3 < 0x4d) {
        if (iVar3 == -99) {
          builtin_help();
          local_40 = 0x102;
        }
        else {
LAB_0009abd8:
          builtin_usage();
          local_40 = 0x102;
        }
        goto LAB_0009ab97;
      }
      if (iVar3 == 0x50) {
        iVar10 = 1;
      }
      else {
        if (iVar3 != 0x65) goto LAB_0009abd8;
        DAT_00151658 = 1;
      }
    }
  }
  bVar11 = cdable_vars != 0;
  bVar2 = false;
  if ((interactive != 0) && (cdspelling != 0)) {
    bVar2 = true;
  }
  if ((DAT_00151658 != 0) && (iVar10 == 0)) {
    DAT_00151658 = 0;
  }
  if (loptend == (int *)0x0) {
    pcVar8 = (char *)get_string_value(&DAT_000ed68b);
    if (pcVar8 != (char *)0x0) {
      iVar10 = FUN_0009a830();
      if (iVar10 != 0) goto LAB_0009ad5e;
      goto LAB_0009ace1;
    }
    pcVar8 = "HOME not set";
  }
  else {
    if (*loptend == 0) {
      pcVar8 = *(char **)loptend[1];
      if ((*pcVar8 == '-') && (pcVar8[1] == '\0')) {
        pcVar8 = (char *)get_string_value(&DAT_000ef147);
        if (pcVar8 == (char *)0x0) {
          pcVar8 = "OLDPWD not set";
          goto LAB_0009ad7b;
        }
        iVar10 = FUN_0009a830();
        if (iVar10 != 0) {
          puts(pcVar8);
          goto LAB_0009ad5e;
        }
      }
      else {
        iVar3 = absolute_pathname(pcVar8);
        if ((iVar3 == 0) &&
           ((privileged_mode == 0 && (iVar3 = get_string_value("CDPATH"), iVar3 != 0)))) {
          pcVar8 = *(char **)piVar5[1];
          local_24 = 0;
          while (pcVar4 = (char *)extract_colon_unit(iVar3,&local_24), pcVar4 != (char *)0x0) {
            cVar1 = *pcVar4;
            pcVar6 = (char *)sh_makepath(pcVar4,pcVar8,1);
            free(pcVar4);
            iVar9 = FUN_0009a830();
            if (iVar9 != 0) {
              if (cVar1 != '\0') {
                pcVar8 = pcVar6;
                if (iVar10 == 0) {
                  pcVar8 = the_current_working_directory;
                }
                if (pcVar8 != (char *)0x0) {
                  puts(pcVar8);
                }
              }
              free(pcVar6);
              local_40 = FUN_0009a6e0();
              goto LAB_0009ab97;
            }
            free(pcVar6);
          }
        }
        else {
          pcVar8 = *(char **)piVar5[1];
        }
        iVar10 = FUN_0009a830();
        if (iVar10 != 0) {
LAB_0009ad5e:
          local_40 = FUN_0009a6e0();
          goto LAB_0009ab97;
        }
        if (((bVar11) && (pcVar4 = (char *)get_string_value(pcVar8), pcVar4 != (char *)0x0)) &&
           (iVar10 = FUN_0009a830(), iVar10 != 0)) {
          puts(pcVar4);
          local_40 = FUN_0009a6e0();
          goto LAB_0009ab97;
        }
        if ((bVar2) && (pcVar4 = (char *)dirspell(pcVar8), pcVar4 != (char *)0x0)) {
          iVar10 = FUN_0009a830();
          if (iVar10 != 0) {
            puts(pcVar4);
            free(pcVar4);
            local_40 = FUN_0009a6e0();
            goto LAB_0009ab97;
          }
          free(pcVar4);
        }
      }
LAB_0009ace1:
      piVar5 = __errno_location();
      iVar10 = *piVar5;
      pcVar4 = (char *)printable_filename(pcVar8,0);
      pcVar6 = strerror(iVar10);
      builtin_error("%s: %s",pcVar4,pcVar6);
      local_40 = 1;
      if (pcVar4 != pcVar8) {
        local_40 = 1;
        free(pcVar4);
      }
      goto LAB_0009ab97;
    }
    pcVar8 = "too many arguments";
  }
LAB_0009ad7b:
  uVar7 = dcgettext(0,pcVar8,5);
  builtin_error(uVar7);
  local_40 = 1;
LAB_0009ab97:
  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {
                    /* WARNING: Subroutine does not return */
    FUN_000ecc40();
  }
  return local_40;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00031ed0
ADD EBX,0xaf4f7
SUB ESP,0x3c
MOV EAX,GS:[0x14]
MOV dword ptr [ESP + 0x2c],EAX
XOR EAX,EAX
MOV ESI,dword ptr [ESP + 0x50]
LEA EAX,[EBX + 0x5e78]
MOV EAX,dword ptr [EAX]
TEST EAX,EAX
JNZ 0x0009abc0
LEA EAX,[EBX + 0x5e84]
LEA EDI,[EBX + 0xfffb77d8]
MOV dword ptr [EBX + 0x7658],0x0
MOV EBP,dword ptr [EAX]
CALL 0x000b3030
SUB ESP,0x8
PUSH EDI
PUSH ESI
CALL 0x000b2be0
ADD ESP,0x10
CMP EAX,-0x1
JZ 0x0009abf0
CMP EAX,0x4c
JZ 0x0009abe8
JLE 0x0009ab88
CMP EAX,0x50
JZ 0x0009abb0
CMP EAX,0x65
JNZ 0x0009abd8
MOV dword ptr [EBX + 0x7658],0x1
JMP 0x0009ab4f
CMP EAX,-0x63
JNZ 0x0009abd8
CALL 0x000a3450
MOV EAX,0x102
MOV EDX,dword ptr [ESP + 0x2c]
XOR EDX,dword ptr GS:[0x14]
JNZ 0x0009af2b
ADD ESP,0x3c
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV EBP,0x1
JMP 0x0009ab4f
SUB ESP,0xc
PUSH 0x0
CALL 0x0009b9d0
ADD ESP,0x10
MOV EAX,0x1
JMP 0x0009ab97
CALL 0x0009b510
MOV EAX,0x102
JMP 0x0009ab97
XOR EBP,EBP
JMP 0x0009ab4f
LEA EAX,[EBX + 0xd8a4]
MOV ESI,dword ptr [EAX]
LEA EAX,[EBX + 0xd6fc]
MOV EAX,dword ptr [EAX]
TEST EAX,EAX
SETNZ AL
MOVZX EAX,AL
MOV ECX,EAX
MOV dword ptr [ESP + 0xc],EAX
LEA EAX,[EBX + 0x484c]
MOV EAX,dword ptr [EAX]
TEST EAX,EAX
JZ 0x0009ac2b
MOV EAX,dword ptr [EBX + 0x7650]
TEST EAX,EAX
JZ 0x0009ac2b
OR ECX,0x2
MOV dword ptr [ESP + 0xc],ECX
MOV EDI,dword ptr [EBX + 0x7658]
TEST EDI,EDI
JZ 0x0009ac43
TEST EBP,EBP
JNZ 0x0009ac43
MOV dword ptr [EBX + 0x7658],0x0
TEST ESI,ESI
JZ 0x0009ad37
MOV ECX,dword ptr [ESI]
TEST ECX,ECX
JNZ 0x0009ad70
MOV EAX,dword ptr [ESI + 0x4]
MOV EAX,dword ptr [EAX]
CMP byte ptr [EAX],0x2d
JNZ 0x0009ac69
CMP byte ptr [EAX + 0x1],0x0
JZ 0x0009addb
SUB ESP,0xc
PUSH EAX
CALL 0x00041c90
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x0009ac89
LEA EAX,[EBX + 0x5e70]
MOV EAX,dword ptr [EAX]
TEST EAX,EAX
JZ 0x0009ae17
MOV EAX,dword ptr [ESI + 0x4]
MOV ESI,dword ptr [EAX]
MOV EDX,EBP
MOV EAX,ESI
CALL 0x0009a830
TEST EAX,EAX
JNZ 0x0009ad5e
MOV EAX,dword ptr [ESP + 0xc]
MOV EDI,EAX
AND EDI,0x2
TEST AL,0x1
JNZ 0x0009ad98
TEST EDI,EDI
JZ 0x0009ace1
SUB ESP,0xc
PUSH ESI
CALL 0x000bf960
ADD ESP,0x10
MOV EDI,EAX
TEST EAX,EAX
JZ 0x0009ace1
MOV EDX,EBP
CALL 0x0009a830
TEST EAX,EAX
JNZ 0x0009aeef
SUB ESP,0xc
PUSH EDI
CALL 0x0002f200
ADD ESP,0x10
CALL 0x0002f8b0
SUB ESP,0x8
MOV EBP,dword ptr [EAX]
PUSH 0x0
PUSH ESI
CALL 0x00042070
MOV dword ptr [ESP],EBP
MOV EDI,EAX
CALL 0x0002f670
ADD ESP,0xc
PUSH EAX
LEA EAX,[EBX + 0xfffb8ce2]
PUSH EDI
PUSH EAX
CALL 0x0009b430
ADD ESP,0x10
MOV EAX,0x1
CMP EDI,ESI
JZ 0x0009ab97
MOV dword ptr [ESP + 0xc],EAX
SUB ESP,0xc
PUSH EDI
CALL 0x0002f200
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0xc]
JMP 0x0009ab97
SUB ESP,0xc
LEA EAX,[EBX + 0xfffa368b]
PUSH EAX
CALL 0x00052a60
ADD ESP,0x10
MOV ESI,EAX
TEST EAX,EAX
JZ 0x0009af0f
MOV EDX,EBP
CALL 0x0009a830
TEST EAX,EAX
JZ 0x0009ace1
MOV EAX,EBP
CALL 0x0009a6e0
JMP 0x0009ab97
SUB ESP,0x4
LEA EAX,[EBX + 0xfffa78c7]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x0002f380
MOV dword ptr [ESP],EAX
CALL 0x0009b430
ADD ESP,0x10
MOV EAX,0x1
JMP 0x0009ab97
SUB ESP,0xc
PUSH ESI
CALL 0x00052a60
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0009acb0
MOV EDX,EBP
MOV dword ptr [ESP + 0xc],EAX
CALL 0x0009a830
MOV ECX,dword ptr [ESP + 0xc]
TEST EAX,EAX
JZ 0x0009acb0
SUB ESP,0xc
PUSH ECX
CALL 0x0002f650
MOV EAX,EBP
CALL 0x0009a6e0
ADD ESP,0x10
JMP 0x0009ab97
SUB ESP,0xc
LEA EAX,[EBX + 0xfffa5147]
PUSH EAX
CALL 0x00052a60
ADD ESP,0x10
MOV ESI,EAX
TEST EAX,EAX
JZ 0x0009af1d
MOV EDX,EBP
CALL 0x0009a830
TEST EAX,EAX
JZ 0x0009ace1
SUB ESP,0xc
PUSH ESI
CALL 0x0002f650
ADD ESP,0x10
JMP 0x0009ad5e
SUB ESP,0xc
LEA EAX,[EBX + 0xfffb77f8]
PUSH EAX
CALL 0x00052a60
MOV dword ptr [ESP + 0x20],EAX
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0009ac89
MOV EAX,dword ptr [ESI + 0x4]
MOV ESI,dword ptr [EAX]
LEA EAX,[ESP + 0x28]
MOV dword ptr [ESP + 0x28],0x0
MOV dword ptr [ESP + 0x18],EAX
MOV dword ptr [ESP + 0x14],EBP
JMP 0x0009ae8c
MOVZX EAX,byte ptr [EBP]
SUB ESP,0x4
MOV byte ptr [ESP + 0x23],AL
PUSH 0x1
PUSH ESI
PUSH EBP
CALL 0x000bd760
MOV dword ptr [ESP],EBP
MOV EDI,EAX
CALL 0x0002f200
MOV EDX,dword ptr [ESP + 0x24]
MOV EAX,EDI
CALL 0x0009a830
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x0009aeae
SUB ESP,0xc
PUSH EDI
CALL 0x0002f200
ADD ESP,0x10
SUB ESP,0x8
PUSH dword ptr [ESP + 0x20]
PUSH dword ptr [ESP + 0x1c]
CALL 0x000420f0
ADD ESP,0x10
MOV EBP,EAX
TEST EAX,EAX
JNZ 0x0009ae50
MOV EBP,dword ptr [ESP + 0x14]
JMP 0x0009ac8e
CMP byte ptr [ESP + 0x1f],0x0
MOV EBP,dword ptr [ESP + 0x14]
JZ 0x0009aed7
MOV EAX,EDI
TEST EBP,EBP
JNZ 0x0009aec7
LEA EAX,[EBX + 0x765c]
MOV EAX,dword ptr [EAX]
TEST EAX,EAX
JZ 0x0009aed7
SUB ESP,0xc
PUSH EAX
CALL 0x0002f650
ADD ESP,0x10
SUB ESP,0xc
PUSH EDI
CALL 0x0002f200
MOV EAX,EBP
CALL 0x0009a6e0
ADD ESP,0x10
JMP 0x0009ab97
SUB ESP,0xc
PUSH EDI
CALL 0x0002f650
MOV dword ptr [ESP],EDI
CALL 0x0002f200
MOV EAX,EBP
CALL 0x0009a6e0
ADD ESP,0x10
JMP 0x0009ab97
LEA EAX,[EBX + 0xfffb77dc]
PUSH ESI
PUSH 0x5
JMP 0x0009ad7b
LEA EAX,[EBX + 0xfffb77e9]
PUSH EDX
PUSH 0x5
JMP 0x0009ad7b
CALL 0x000ecc40
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nundefined4 cd_builtin(undefined4 param_1)\n\n{\n  char cVar1;\n  bool bVar2;\n  int iVar3;\n  char *pcVar4;\n  int *piVar5;\n  char *pcVar6;\n  undefined4 uVar7;\n  char *pcVar8;\n  int iVar9;\n  int iVar10;\n  int in_GS_OFFSET;\n  bool bVar11;\n  undefined4 local_40;\n  undefined4 local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  iVar10 = no_symbolic_links;\n  uStack_14 = 0x9ab09;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (restricted != 0) {\n    sh_restricted(0);\n    local_40 = 1;\n    goto LAB_0009ab97;\n  }\n  DAT_00151658 = 0;\n  reset_internal_getopt();\n  while (iVar3 = internal_getopt(param_1,&DAT_001017d8), piVar5 = loptend, iVar3 != -1) {\n    if (iVar3 == 0x4c) {\n      iVar10 = 0;\n    }\n    else {\n      if (iVar3 < 0x4d) {\n        if (iVar3 == -99) {\n          builtin_help();\n          local_40 = 0x102;\n        }\n        else {\nLAB_0009abd8:\n          builtin_usage();\n          local_40 = 0x102;\n        }\n        goto LAB_0009ab97;\n      }\n      if (iVar3 == 0x50) {\n        iVar10 = 1;\n      }\n      else {\n        if (iVar3 != 0x65) goto LAB_0009abd8;\n        DAT_00151658 = 1;\n      }\n    }\n  }\n  bVar11 = cdable_vars != 0;\n  bVar2 = false;\n  if ((interactive != 0) && (cdspelling != 0)) {\n    bVar2 = true;\n  }\n  if ((DAT_00151658 != 0) && (iVar10 == 0)) {\n    DAT_00151658 = 0;\n  }\n  if (loptend == (int *)0x0) {\n    pcVar8 = (char *)get_string_value(&DAT_000ed68b);\n    if (pcVar8 != (char *)0x0) {\n      iVar10 = FUN_0009a830();\n      if (iVar10 != 0) goto LAB_0009ad5e;\n      goto LAB_0009ace1;\n    }\n    pcVar8 = "HOME not set";\n  }\n  else {\n    if (*loptend == 0) {\n      pcVar8 = *(char **)loptend[1];\n      if ((*pcVar8 == '-') && (pcVar8[1] == '\0')) {\n        pcVar8 = (char *)get_string_value(&DAT_000ef147);\n        if (pcVar8 == (char *)0x0) {\n          pcVar8 = "OLDPWD not set";\n          goto LAB_0009ad7b;\n        }\n        iVar10 = FUN_0009a830();\n        if (iVar10 != 0) {\n          puts(pcVar8);\n          goto LAB_0009ad5e;\n        }\n      }\n      else {\n        iVar3 = absolute_pathname(pcVar8);\n        if ((iVar3 == 0) &&\n           ((privileged_mode == 0 && (iVar3 = get_string_value("CDPATH"), iVar3 != 0)))) {\n          pcVar8 = *(char **)piVar5[1];\n          local_24 = 0;\n          while (pcVar4 = (char *)extract_colon_unit(iVar3,&local_24), pcVar4 != (char *)0x0) {\n            cVar1 = *pcVar4;\n            pcVar6 = (char *)sh_makepath(pcVar4,pcVar8,1);\n            free(pcVar4);\n            iVar9 = FUN_0009a830();\n            if (iVar9 != 0) {\n              if (cVar1 != '\0') {\n                pcVar8 = pcVar6;\n                if (iVar10 == 0) {\n                  pcVar8 = the_current_working_directory;\n                }\n                if (pcVar8 != (char *)0x0) {\n                  puts(pcVar8);\n                }\n              }\n              free(pcVar6);\n              local_40 = FUN_0009a6e0();\n              goto LAB_0009ab97;\n            }\n            free(pcVar6);\n          }\n        }\n        else {\n          pcVar8 = *(char **)piVar5[1];\n        }\n        iVar10 = FUN_0009a830();\n        if (iVar10 != 0) {\nLAB_0009ad5e:\n          local_40 = FUN_0009a6e0();\n          goto LAB_0009ab97;\n        }\n        if (((bVar11) && (pcVar4 = (char *)get_string_value(pcVar8), pcVar4 != (char *)0x0)) &&\n           (iVar10 = FUN_0009a830(), iVar10 != 0)) {\n          puts(pcVar4);\n          local_40 = FUN_0009a6e0();\n          goto LAB_0009ab97;\n        }\n        if ((bVar2) && (pcVar4 = (char *)dirspell(pcVar8), pcVar4 != (char *)0x0)) {\n          iVar10 = FUN_0009a830();\n          if (iVar10 != 0) {\n            puts(pcVar4);\n            free(pcVar4);\n            local_40 = FUN_0009a6e0();\n            goto LAB_0009ab97;\n          }\n          free(pcVar4);\n        }\n      }\nLAB_0009ace1:\n      piVar5 = __errno_location();\n      iVar10 = *piVar5;\n      pcVar4 = (char *)printable_filename(pcVar8,0);\n      pcVar6 = strerror(iVar10);\n      builtin_error("%s: %s",pcVar4,pcVar6);\n      local_40 = 1;\n      if (pcVar4 != pcVar8) {\n        local_40 = 1;\n        free(pcVar4);\n      }\n      goto LAB_0009ab97;\n    }\n    pcVar8 = "too many arguments";\n  }\nLAB_0009ad7b:\n  uVar7 = dcgettext(0,pcVar8,5);\n  builtin_error(uVar7);\n  local_40 = 1;\nLAB_0009ab97:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_000ecc40();\n  }\n  return local_40;\n}\n\n" comment (function_definition "undefined4 cd_builtin(undefined4 param_1)\n\n{\n  char cVar1;\n  bool bVar2;\n  int iVar3;\n  char *pcVar4;\n  int *piVar5;\n  char *pcVar6;\n  undefined4 uVar7;\n  char *pcVar8;\n  int iVar9;\n  int iVar10;\n  int in_GS_OFFSET;\n  bool bVar11;\n  undefined4 local_40;\n  undefined4 local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  iVar10 = no_symbolic_links;\n  uStack_14 = 0x9ab09;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (restricted != 0) {\n    sh_restricted(0);\n    local_40 = 1;\n    goto LAB_0009ab97;\n  }\n  DAT_00151658 = 0;\n  reset_internal_getopt();\n  while (iVar3 = internal_getopt(param_1,&DAT_001017d8), piVar5 = loptend, iVar3 != -1) {\n    if (iVar3 == 0x4c) {\n      iVar10 = 0;\n    }\n    else {\n      if (iVar3 < 0x4d) {\n        if (iVar3 == -99) {\n          builtin_help();\n          local_40 = 0x102;\n        }\n        else {\nLAB_0009abd8:\n          builtin_usage();\n          local_40 = 0x102;\n        }\n        goto LAB_0009ab97;\n      }\n      if (iVar3 == 0x50) {\n        iVar10 = 1;\n      }\n      else {\n        if (iVar3 != 0x65) goto LAB_0009abd8;\n        DAT_00151658 = 1;\n      }\n    }\n  }\n  bVar11 = cdable_vars != 0;\n  bVar2 = false;\n  if ((interactive != 0) && (cdspelling != 0)) {\n    bVar2 = true;\n  }\n  if ((DAT_00151658 != 0) && (iVar10 == 0)) {\n    DAT_00151658 = 0;\n  }\n  if (loptend == (int *)0x0) {\n    pcVar8 = (char *)get_string_value(&DAT_000ed68b);\n    if (pcVar8 != (char *)0x0) {\n      iVar10 = FUN_0009a830();\n      if (iVar10 != 0) goto LAB_0009ad5e;\n      goto LAB_0009ace1;\n    }\n    pcVar8 = "HOME not set";\n  }\n  else {\n    if (*loptend == 0) {\n      pcVar8 = *(char **)loptend[1];\n      if ((*pcVar8 == '-') && (pcVar8[1] == '\0')) {\n        pcVar8 = (char *)get_string_value(&DAT_000ef147);\n        if (pcVar8 == (char *)0x0) {\n          pcVar8 = "OLDPWD not set";\n          goto LAB_0009ad7b;\n        }\n        iVar10 = FUN_0009a830();\n        if (iVar10 != 0) {\n          puts(pcVar8);\n          goto LAB_0009ad5e;\n        }\n      }\n      else {\n        iVar3 = absolute_pathname(pcVar8);\n        if ((iVar3 == 0) &&\n           ((privileged_mode == 0 && (iVar3 = get_string_value("CDPATH"), iVar3 != 0)))) {\n          pcVar8 = *(char **)piVar5[1];\n          local_24 = 0;\n          while (pcVar4 = (char *)extract_colon_unit(iVar3,&local_24), pcVar4 != (char *)0x0) {\n            cVar1 = *pcVar4;\n            pcVar6 = (char *)sh_makepath(pcVar4,pcVar8,1);\n            free(pcVar4);\n            iVar9 = FUN_0009a830();\n            if (iVar9 != 0) {\n              if (cVar1 != '\0') {\n                pcVar8 = pcVar6;\n                if (iVar10 == 0) {\n                  pcVar8 = the_current_working_directory;\n                }\n                if (pcVar8 != (char *)0x0) {\n                  puts(pcVar8);\n                }\n              }\n              free(pcVar6);\n              local_40 = FUN_0009a6e0();\n              goto LAB_0009ab97;\n            }\n            free(pcVar6);\n          }\n        }\n        else {\n          pcVar8 = *(char **)piVar5[1];\n        }\n        iVar10 = FUN_0009a830();\n        if (iVar10 != 0) {\nLAB_0009ad5e:\n          local_40 = FUN_0009a6e0();\n          goto LAB_0009ab97;\n        }\n        if (((bVar11) && (pcVar4 = (char *)get_string_value(pcVar8), pcVar4 != (char *)0x0)) &&\n           (iVar10 = FUN_0009a830(), iVar10 != 0)) {\n          puts(pcVar4);\n          local_40 = FUN_0009a6e0();\n          goto LAB_0009ab97;\n        }\n        if ((bVar2) && (pcVar4 = (char *)dirspell(pcVar8), pcVar4 != (char *)0x0)) {\n          iVar10 = FUN_0009a830();\n          if (iVar10 != 0) {\n            puts(pcVar4);\n            free(pcVar4);\n            local_40 = FUN_0009a6e0();\n            goto LAB_0009ab97;\n          }\n          free(pcVar4);\n        }\n      }\nLAB_0009ace1:\n      piVar5 = __errno_location();\n      iVar10 = *piVar5;\n      pcVar4 = (char *)printable_filename(pcVar8,0);\n      pcVar6 = strerror(iVar10);\n      builtin_error("%s: %s",pcVar4,pcVar6);\n      local_40 = 1;\n      if (pcVar4 != pcVar8) {\n        local_40 = 1;\n        free(pcVar4);\n      }\n      goto LAB_0009ab97;\n    }\n    pcVar8 = "too many arguments";\n  }\nLAB_0009ad7b:\n  uVar7 = dcgettext(0,pcVar8,5);\n  builtin_error(uVar7);\n  local_40 = 1;\nLAB_0009ab97:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_000ecc40();\n  }\n  return local_40;\n}" type_identifier (function_declarator "cd_builtin(undefined4 param_1)" identifier (parameter_list "(undefined4 param_1)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) ))) (compound_statement "{\n  char cVar1;\n  bool bVar2;\n  int iVar3;\n  char *pcVar4;\n  int *piVar5;\n  char *pcVar6;\n  undefined4 uVar7;\n  char *pcVar8;\n  int iVar9;\n  int iVar10;\n  int in_GS_OFFSET;\n  bool bVar11;\n  undefined4 local_40;\n  undefined4 local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  iVar10 = no_symbolic_links;\n  uStack_14 = 0x9ab09;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (restricted != 0) {\n    sh_restricted(0);\n    local_40 = 1;\n    goto LAB_0009ab97;\n  }\n  DAT_00151658 = 0;\n  reset_internal_getopt();\n  while (iVar3 = internal_getopt(param_1,&DAT_001017d8), piVar5 = loptend, iVar3 != -1) {\n    if (iVar3 == 0x4c) {\n      iVar10 = 0;\n    }\n    else {\n      if (iVar3 < 0x4d) {\n        if (iVar3 == -99) {\n          builtin_help();\n          local_40 = 0x102;\n        }\n        else {\nLAB_0009abd8:\n          builtin_usage();\n          local_40 = 0x102;\n        }\n        goto LAB_0009ab97;\n      }\n      if (iVar3 == 0x50) {\n        iVar10 = 1;\n      }\n      else {\n        if (iVar3 != 0x65) goto LAB_0009abd8;\n        DAT_00151658 = 1;\n      }\n    }\n  }\n  bVar11 = cdable_vars != 0;\n  bVar2 = false;\n  if ((interactive != 0) && (cdspelling != 0)) {\n    bVar2 = true;\n  }\n  if ((DAT_00151658 != 0) && (iVar10 == 0)) {\n    DAT_00151658 = 0;\n  }\n  if (loptend == (int *)0x0) {\n    pcVar8 = (char *)get_string_value(&DAT_000ed68b);\n    if (pcVar8 != (char *)0x0) {\n      iVar10 = FUN_0009a830();\n      if (iVar10 != 0) goto LAB_0009ad5e;\n      goto LAB_0009ace1;\n    }\n    pcVar8 = "HOME not set";\n  }\n  else {\n    if (*loptend == 0) {\n      pcVar8 = *(char **)loptend[1];\n      if ((*pcVar8 == '-') && (pcVar8[1] == '\0')) {\n        pcVar8 = (char *)get_string_value(&DAT_000ef147);\n        if (pcVar8 == (char *)0x0) {\n          pcVar8 = "OLDPWD not set";\n          goto LAB_0009ad7b;\n        }\n        iVar10 = FUN_0009a830();\n        if (iVar10 != 0) {\n          puts(pcVar8);\n          goto LAB_0009ad5e;\n        }\n      }\n      else {\n        iVar3 = absolute_pathname(pcVar8);\n        if ((iVar3 == 0) &&\n           ((privileged_mode == 0 && (iVar3 = get_string_value("CDPATH"), iVar3 != 0)))) {\n          pcVar8 = *(char **)piVar5[1];\n          local_24 = 0;\n          while (pcVar4 = (char *)extract_colon_unit(iVar3,&local_24), pcVar4 != (char *)0x0) {\n            cVar1 = *pcVar4;\n            pcVar6 = (char *)sh_makepath(pcVar4,pcVar8,1);\n            free(pcVar4);\n            iVar9 = FUN_0009a830();\n            if (iVar9 != 0) {\n              if (cVar1 != '\0') {\n                pcVar8 = pcVar6;\n                if (iVar10 == 0) {\n                  pcVar8 = the_current_working_directory;\n                }\n                if (pcVar8 != (char *)0x0) {\n                  puts(pcVar8);\n                }\n              }\n              free(pcVar6);\n              local_40 = FUN_0009a6e0();\n              goto LAB_0009ab97;\n            }\n            free(pcVar6);\n          }\n        }\n        else {\n          pcVar8 = *(char **)piVar5[1];\n        }\n        iVar10 = FUN_0009a830();\n        if (iVar10 != 0) {\nLAB_0009ad5e:\n          local_40 = FUN_0009a6e0();\n          goto LAB_0009ab97;\n        }\n        if (((bVar11) && (pcVar4 = (char *)get_string_value(pcVar8), pcVar4 != (char *)0x0)) &&\n           (iVar10 = FUN_0009a830(), iVar10 != 0)) {\n          puts(pcVar4);\n          local_40 = FUN_0009a6e0();\n          goto LAB_0009ab97;\n        }\n        if ((bVar2) && (pcVar4 = (char *)dirspell(pcVar8), pcVar4 != (char *)0x0)) {\n          iVar10 = FUN_0009a830();\n          if (iVar10 != 0) {\n            puts(pcVar4);\n            free(pcVar4);\n            local_40 = FUN_0009a6e0();\n            goto LAB_0009ab97;\n          }\n          free(pcVar4);\n        }\n      }\nLAB_0009ace1:\n      piVar5 = __errno_location();\n      iVar10 = *piVar5;\n      pcVar4 = (char *)printable_filename(pcVar8,0);\n      pcVar6 = strerror(iVar10);\n      builtin_error("%s: %s",pcVar4,pcVar6);\n      local_40 = 1;\n      if (pcVar4 != pcVar8) {\n        local_40 = 1;\n        free(pcVar4);\n      }\n      goto LAB_0009ab97;\n    }\n    pcVar8 = "too many arguments";\n  }\nLAB_0009ad7b:\n  uVar7 = dcgettext(0,pcVar8,5);\n  builtin_error(uVar7);\n  local_40 = 1;\nLAB_0009ab97:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_000ecc40();\n  }\n  return local_40;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "bool bVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "char *pcVar4;" primitive_type (pointer_declarator "*pcVar4" * identifier) ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "char *pcVar8;" primitive_type (pointer_declarator "*pcVar8" * identifier) ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "bool bVar11;" primitive_type identifier ;) (declaration "undefined4 local_40;" type_identifier identifier ;) (declaration "undefined4 local_24;" type_identifier identifier ;) (declaration "int local_20;" primitive_type identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "iVar10 = no_symbolic_links;" (assignment_expression "iVar10 = no_symbolic_links" identifier = identifier) ;) (expression_statement "uStack_14 = 0x9ab09;" (assignment_expression "uStack_14 = 0x9ab09" identifier = number_literal) ;) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (restricted != 0) {\n    sh_restricted(0);\n    local_40 = 1;\n    goto LAB_0009ab97;\n  }" if (parenthesized_expression "(restricted != 0)" ( (binary_expression "restricted != 0" identifier != number_literal) )) (compound_statement "{\n    sh_restricted(0);\n    local_40 = 1;\n    goto LAB_0009ab97;\n  }" { (expression_statement "sh_restricted(0);" (call_expression "sh_restricted(0)" identifier (argument_list "(0)" ( number_literal ))) ;) (expression_statement "local_40 = 1;" (assignment_expression "local_40 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_0009ab97;" goto statement_identifier ;) })) (expression_statement "DAT_00151658 = 0;" (assignment_expression "DAT_00151658 = 0" identifier = number_literal) ;) (expression_statement "reset_internal_getopt();" (call_expression "reset_internal_getopt()" identifier (argument_list "()" ( ))) ;) (while_statement "while (iVar3 = internal_getopt(param_1,&DAT_001017d8), piVar5 = loptend, iVar3 != -1) {\n    if (iVar3 == 0x4c) {\n      iVar10 = 0;\n    }\n    else {\n      if (iVar3 < 0x4d) {\n        if (iVar3 == -99) {\n          builtin_help();\n          local_40 = 0x102;\n        }\n        else {\nLAB_0009abd8:\n          builtin_usage();\n          local_40 = 0x102;\n        }\n        goto LAB_0009ab97;\n      }\n      if (iVar3 == 0x50) {\n        iVar10 = 1;\n      }\n      else {\n        if (iVar3 != 0x65) goto LAB_0009abd8;\n        DAT_00151658 = 1;\n      }\n    }\n  }" while (parenthesized_expression "(iVar3 = internal_getopt(param_1,&DAT_001017d8), piVar5 = loptend, iVar3 != -1)" ( (comma_expression "iVar3 = internal_getopt(param_1,&DAT_001017d8), piVar5 = loptend, iVar3 != -1" (assignment_expression "iVar3 = internal_getopt(param_1,&DAT_001017d8)" identifier = (call_expression "internal_getopt(param_1,&DAT_001017d8)" identifier (argument_list "(param_1,&DAT_001017d8)" ( identifier , (pointer_expression "&DAT_001017d8" & identifier) )))) , (comma_expression "piVar5 = loptend, iVar3 != -1" (assignment_expression "piVar5 = loptend" identifier = identifier) , (binary_expression "iVar3 != -1" identifier != number_literal))) )) (compound_statement "{\n    if (iVar3 == 0x4c) {\n      iVar10 = 0;\n    }\n    else {\n      if (iVar3 < 0x4d) {\n        if (iVar3 == -99) {\n          builtin_help();\n          local_40 = 0x102;\n        }\n        else {\nLAB_0009abd8:\n          builtin_usage();\n          local_40 = 0x102;\n        }\n        goto LAB_0009ab97;\n      }\n      if (iVar3 == 0x50) {\n        iVar10 = 1;\n      }\n      else {\n        if (iVar3 != 0x65) goto LAB_0009abd8;\n        DAT_00151658 = 1;\n      }\n    }\n  }" { (if_statement "if (iVar3 == 0x4c) {\n      iVar10 = 0;\n    }\n    else {\n      if (iVar3 < 0x4d) {\n        if (iVar3 == -99) {\n          builtin_help();\n          local_40 = 0x102;\n        }\n        else {\nLAB_0009abd8:\n          builtin_usage();\n          local_40 = 0x102;\n        }\n        goto LAB_0009ab97;\n      }\n      if (iVar3 == 0x50) {\n        iVar10 = 1;\n      }\n      else {\n        if (iVar3 != 0x65) goto LAB_0009abd8;\n        DAT_00151658 = 1;\n      }\n    }" if (parenthesized_expression "(iVar3 == 0x4c)" ( (binary_expression "iVar3 == 0x4c" identifier == number_literal) )) (compound_statement "{\n      iVar10 = 0;\n    }" { (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      if (iVar3 < 0x4d) {\n        if (iVar3 == -99) {\n          builtin_help();\n          local_40 = 0x102;\n        }\n        else {\nLAB_0009abd8:\n          builtin_usage();\n          local_40 = 0x102;\n        }\n        goto LAB_0009ab97;\n      }\n      if (iVar3 == 0x50) {\n        iVar10 = 1;\n      }\n      else {\n        if (iVar3 != 0x65) goto LAB_0009abd8;\n        DAT_00151658 = 1;\n      }\n    }" else (compound_statement "{\n      if (iVar3 < 0x4d) {\n        if (iVar3 == -99) {\n          builtin_help();\n          local_40 = 0x102;\n        }\n        else {\nLAB_0009abd8:\n          builtin_usage();\n          local_40 = 0x102;\n        }\n        goto LAB_0009ab97;\n      }\n      if (iVar3 == 0x50) {\n        iVar10 = 1;\n      }\n      else {\n        if (iVar3 != 0x65) goto LAB_0009abd8;\n        DAT_00151658 = 1;\n      }\n    }" { (if_statement "if (iVar3 < 0x4d) {\n        if (iVar3 == -99) {\n          builtin_help();\n          local_40 = 0x102;\n        }\n        else {\nLAB_0009abd8:\n          builtin_usage();\n          local_40 = 0x102;\n        }\n        goto LAB_0009ab97;\n      }" if (parenthesized_expression "(iVar3 < 0x4d)" ( (binary_expression "iVar3 < 0x4d" identifier < number_literal) )) (compound_statement "{\n        if (iVar3 == -99) {\n          builtin_help();\n          local_40 = 0x102;\n        }\n        else {\nLAB_0009abd8:\n          builtin_usage();\n          local_40 = 0x102;\n        }\n        goto LAB_0009ab97;\n      }" { (if_statement "if (iVar3 == -99) {\n          builtin_help();\n          local_40 = 0x102;\n        }\n        else {\nLAB_0009abd8:\n          builtin_usage();\n          local_40 = 0x102;\n        }" if (parenthesized_expression "(iVar3 == -99)" ( (binary_expression "iVar3 == -99" identifier == number_literal) )) (compound_statement "{\n          builtin_help();\n          local_40 = 0x102;\n        }" { (expression_statement "builtin_help();" (call_expression "builtin_help()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_40 = 0x102;" (assignment_expression "local_40 = 0x102" identifier = number_literal) ;) }) (else_clause "else {\nLAB_0009abd8:\n          builtin_usage();\n          local_40 = 0x102;\n        }" else (compound_statement "{\nLAB_0009abd8:\n          builtin_usage();\n          local_40 = 0x102;\n        }" { (labeled_statement "LAB_0009abd8:\n          builtin_usage();" statement_identifier : (expression_statement "builtin_usage();" (call_expression "builtin_usage()" identifier (argument_list "()" ( ))) ;)) (expression_statement "local_40 = 0x102;" (assignment_expression "local_40 = 0x102" identifier = number_literal) ;) }))) (goto_statement "goto LAB_0009ab97;" goto statement_identifier ;) })) (if_statement "if (iVar3 == 0x50) {\n        iVar10 = 1;\n      }\n      else {\n        if (iVar3 != 0x65) goto LAB_0009abd8;\n        DAT_00151658 = 1;\n      }" if (parenthesized_expression "(iVar3 == 0x50)" ( (binary_expression "iVar3 == 0x50" identifier == number_literal) )) (compound_statement "{\n        iVar10 = 1;\n      }" { (expression_statement "iVar10 = 1;" (assignment_expression "iVar10 = 1" identifier = number_literal) ;) }) (else_clause "else {\n        if (iVar3 != 0x65) goto LAB_0009abd8;\n        DAT_00151658 = 1;\n      }" else (compound_statement "{\n        if (iVar3 != 0x65) goto LAB_0009abd8;\n        DAT_00151658 = 1;\n      }" { (if_statement "if (iVar3 != 0x65) goto LAB_0009abd8;" if (parenthesized_expression "(iVar3 != 0x65)" ( (binary_expression "iVar3 != 0x65" identifier != number_literal) )) (goto_statement "goto LAB_0009abd8;" goto statement_identifier ;)) (expression_statement "DAT_00151658 = 1;" (assignment_expression "DAT_00151658 = 1" identifier = number_literal) ;) }))) }))) })) (expression_statement "bVar11 = cdable_vars != 0;" (assignment_expression "bVar11 = cdable_vars != 0" identifier = (binary_expression "cdable_vars != 0" identifier != number_literal)) ;) (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" identifier = false) ;) (if_statement "if ((interactive != 0) && (cdspelling != 0)) {\n    bVar2 = true;\n  }" if (parenthesized_expression "((interactive != 0) && (cdspelling != 0))" ( (binary_expression "(interactive != 0) && (cdspelling != 0)" (parenthesized_expression "(interactive != 0)" ( (binary_expression "interactive != 0" identifier != number_literal) )) && (parenthesized_expression "(cdspelling != 0)" ( (binary_expression "cdspelling != 0" identifier != number_literal) ))) )) (compound_statement "{\n    bVar2 = true;\n  }" { (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" identifier = true) ;) })) (if_statement "if ((DAT_00151658 != 0) && (iVar10 == 0)) {\n    DAT_00151658 = 0;\n  }" if (parenthesized_expression "((DAT_00151658 != 0) && (iVar10 == 0))" ( (binary_expression "(DAT_00151658 != 0) && (iVar10 == 0)" (parenthesized_expression "(DAT_00151658 != 0)" ( (binary_expression "DAT_00151658 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) ))) )) (compound_statement "{\n    DAT_00151658 = 0;\n  }" { (expression_statement "DAT_00151658 = 0;" (assignment_expression "DAT_00151658 = 0" identifier = number_literal) ;) })) (if_statement "if (loptend == (int *)0x0) {\n    pcVar8 = (char *)get_string_value(&DAT_000ed68b);\n    if (pcVar8 != (char *)0x0) {\n      iVar10 = FUN_0009a830();\n      if (iVar10 != 0) goto LAB_0009ad5e;\n      goto LAB_0009ace1;\n    }\n    pcVar8 = "HOME not set";\n  }\n  else {\n    if (*loptend == 0) {\n      pcVar8 = *(char **)loptend[1];\n      if ((*pcVar8 == '-') && (pcVar8[1] == '\0')) {\n        pcVar8 = (char *)get_string_value(&DAT_000ef147);\n        if (pcVar8 == (char *)0x0) {\n          pcVar8 = "OLDPWD not set";\n          goto LAB_0009ad7b;\n        }\n        iVar10 = FUN_0009a830();\n        if (iVar10 != 0) {\n          puts(pcVar8);\n          goto LAB_0009ad5e;\n        }\n      }\n      else {\n        iVar3 = absolute_pathname(pcVar8);\n        if ((iVar3 == 0) &&\n           ((privileged_mode == 0 && (iVar3 = get_string_value("CDPATH"), iVar3 != 0)))) {\n          pcVar8 = *(char **)piVar5[1];\n          local_24 = 0;\n          while (pcVar4 = (char *)extract_colon_unit(iVar3,&local_24), pcVar4 != (char *)0x0) {\n            cVar1 = *pcVar4;\n            pcVar6 = (char *)sh_makepath(pcVar4,pcVar8,1);\n            free(pcVar4);\n            iVar9 = FUN_0009a830();\n            if (iVar9 != 0) {\n              if (cVar1 != '\0') {\n                pcVar8 = pcVar6;\n                if (iVar10 == 0) {\n                  pcVar8 = the_current_working_directory;\n                }\n                if (pcVar8 != (char *)0x0) {\n                  puts(pcVar8);\n                }\n              }\n              free(pcVar6);\n              local_40 = FUN_0009a6e0();\n              goto LAB_0009ab97;\n            }\n            free(pcVar6);\n          }\n        }\n        else {\n          pcVar8 = *(char **)piVar5[1];\n        }\n        iVar10 = FUN_0009a830();\n        if (iVar10 != 0) {\nLAB_0009ad5e:\n          local_40 = FUN_0009a6e0();\n          goto LAB_0009ab97;\n        }\n        if (((bVar11) && (pcVar4 = (char *)get_string_value(pcVar8), pcVar4 != (char *)0x0)) &&\n           (iVar10 = FUN_0009a830(), iVar10 != 0)) {\n          puts(pcVar4);\n          local_40 = FUN_0009a6e0();\n          goto LAB_0009ab97;\n        }\n        if ((bVar2) && (pcVar4 = (char *)dirspell(pcVar8), pcVar4 != (char *)0x0)) {\n          iVar10 = FUN_0009a830();\n          if (iVar10 != 0) {\n            puts(pcVar4);\n            free(pcVar4);\n            local_40 = FUN_0009a6e0();\n            goto LAB_0009ab97;\n          }\n          free(pcVar4);\n        }\n      }\nLAB_0009ace1:\n      piVar5 = __errno_location();\n      iVar10 = *piVar5;\n      pcVar4 = (char *)printable_filename(pcVar8,0);\n      pcVar6 = strerror(iVar10);\n      builtin_error("%s: %s",pcVar4,pcVar6);\n      local_40 = 1;\n      if (pcVar4 != pcVar8) {\n        local_40 = 1;\n        free(pcVar4);\n      }\n      goto LAB_0009ab97;\n    }\n    pcVar8 = "too many arguments";\n  }" if (parenthesized_expression "(loptend == (int *)0x0)" ( (binary_expression "loptend == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pcVar8 = (char *)get_string_value(&DAT_000ed68b);\n    if (pcVar8 != (char *)0x0) {\n      iVar10 = FUN_0009a830();\n      if (iVar10 != 0) goto LAB_0009ad5e;\n      goto LAB_0009ace1;\n    }\n    pcVar8 = "HOME not set";\n  }" { (expression_statement "pcVar8 = (char *)get_string_value(&DAT_000ed68b);" (assignment_expression "pcVar8 = (char *)get_string_value(&DAT_000ed68b)" identifier = (cast_expression "(char *)get_string_value(&DAT_000ed68b)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "get_string_value(&DAT_000ed68b)" identifier (argument_list "(&DAT_000ed68b)" ( (pointer_expression "&DAT_000ed68b" & identifier) ))))) ;) (if_statement "if (pcVar8 != (char *)0x0) {\n      iVar10 = FUN_0009a830();\n      if (iVar10 != 0) goto LAB_0009ad5e;\n      goto LAB_0009ace1;\n    }" if (parenthesized_expression "(pcVar8 != (char *)0x0)" ( (binary_expression "pcVar8 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      iVar10 = FUN_0009a830();\n      if (iVar10 != 0) goto LAB_0009ad5e;\n      goto LAB_0009ace1;\n    }" { (expression_statement "iVar10 = FUN_0009a830();" (assignment_expression "iVar10 = FUN_0009a830()" identifier = (call_expression "FUN_0009a830()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar10 != 0) goto LAB_0009ad5e;" if (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0009ad5e;" goto statement_identifier ;)) (goto_statement "goto LAB_0009ace1;" goto statement_identifier ;) })) (expression_statement "pcVar8 = "HOME not set";" (assignment_expression "pcVar8 = "HOME not set"" identifier = (string_literal ""HOME not set"" " string_content ")) ;) }) (else_clause "else {\n    if (*loptend == 0) {\n      pcVar8 = *(char **)loptend[1];\n      if ((*pcVar8 == '-') && (pcVar8[1] == '\0')) {\n        pcVar8 = (char *)get_string_value(&DAT_000ef147);\n        if (pcVar8 == (char *)0x0) {\n          pcVar8 = "OLDPWD not set";\n          goto LAB_0009ad7b;\n        }\n        iVar10 = FUN_0009a830();\n        if (iVar10 != 0) {\n          puts(pcVar8);\n          goto LAB_0009ad5e;\n        }\n      }\n      else {\n        iVar3 = absolute_pathname(pcVar8);\n        if ((iVar3 == 0) &&\n           ((privileged_mode == 0 && (iVar3 = get_string_value("CDPATH"), iVar3 != 0)))) {\n          pcVar8 = *(char **)piVar5[1];\n          local_24 = 0;\n          while (pcVar4 = (char *)extract_colon_unit(iVar3,&local_24), pcVar4 != (char *)0x0) {\n            cVar1 = *pcVar4;\n            pcVar6 = (char *)sh_makepath(pcVar4,pcVar8,1);\n            free(pcVar4);\n            iVar9 = FUN_0009a830();\n            if (iVar9 != 0) {\n              if (cVar1 != '\0') {\n                pcVar8 = pcVar6;\n                if (iVar10 == 0) {\n                  pcVar8 = the_current_working_directory;\n                }\n                if (pcVar8 != (char *)0x0) {\n                  puts(pcVar8);\n                }\n              }\n              free(pcVar6);\n              local_40 = FUN_0009a6e0();\n              goto LAB_0009ab97;\n            }\n            free(pcVar6);\n          }\n        }\n        else {\n          pcVar8 = *(char **)piVar5[1];\n        }\n        iVar10 = FUN_0009a830();\n        if (iVar10 != 0) {\nLAB_0009ad5e:\n          local_40 = FUN_0009a6e0();\n          goto LAB_0009ab97;\n        }\n        if (((bVar11) && (pcVar4 = (char *)get_string_value(pcVar8), pcVar4 != (char *)0x0)) &&\n           (iVar10 = FUN_0009a830(), iVar10 != 0)) {\n          puts(pcVar4);\n          local_40 = FUN_0009a6e0();\n          goto LAB_0009ab97;\n        }\n        if ((bVar2) && (pcVar4 = (char *)dirspell(pcVar8), pcVar4 != (char *)0x0)) {\n          iVar10 = FUN_0009a830();\n          if (iVar10 != 0) {\n            puts(pcVar4);\n            free(pcVar4);\n            local_40 = FUN_0009a6e0();\n            goto LAB_0009ab97;\n          }\n          free(pcVar4);\n        }\n      }\nLAB_0009ace1:\n      piVar5 = __errno_location();\n      iVar10 = *piVar5;\n      pcVar4 = (char *)printable_filename(pcVar8,0);\n      pcVar6 = strerror(iVar10);\n      builtin_error("%s: %s",pcVar4,pcVar6);\n      local_40 = 1;\n      if (pcVar4 != pcVar8) {\n        local_40 = 1;\n        free(pcVar4);\n      }\n      goto LAB_0009ab97;\n    }\n    pcVar8 = "too many arguments";\n  }" else (compound_statement "{\n    if (*loptend == 0) {\n      pcVar8 = *(char **)loptend[1];\n      if ((*pcVar8 == '-') && (pcVar8[1] == '\0')) {\n        pcVar8 = (char *)get_string_value(&DAT_000ef147);\n        if (pcVar8 == (char *)0x0) {\n          pcVar8 = "OLDPWD not set";\n          goto LAB_0009ad7b;\n        }\n        iVar10 = FUN_0009a830();\n        if (iVar10 != 0) {\n          puts(pcVar8);\n          goto LAB_0009ad5e;\n        }\n      }\n      else {\n        iVar3 = absolute_pathname(pcVar8);\n        if ((iVar3 == 0) &&\n           ((privileged_mode == 0 && (iVar3 = get_string_value("CDPATH"), iVar3 != 0)))) {\n          pcVar8 = *(char **)piVar5[1];\n          local_24 = 0;\n          while (pcVar4 = (char *)extract_colon_unit(iVar3,&local_24), pcVar4 != (char *)0x0) {\n            cVar1 = *pcVar4;\n            pcVar6 = (char *)sh_makepath(pcVar4,pcVar8,1);\n            free(pcVar4);\n            iVar9 = FUN_0009a830();\n            if (iVar9 != 0) {\n              if (cVar1 != '\0') {\n                pcVar8 = pcVar6;\n                if (iVar10 == 0) {\n                  pcVar8 = the_current_working_directory;\n                }\n                if (pcVar8 != (char *)0x0) {\n                  puts(pcVar8);\n                }\n              }\n              free(pcVar6);\n              local_40 = FUN_0009a6e0();\n              goto LAB_0009ab97;\n            }\n            free(pcVar6);\n          }\n        }\n        else {\n          pcVar8 = *(char **)piVar5[1];\n        }\n        iVar10 = FUN_0009a830();\n        if (iVar10 != 0) {\nLAB_0009ad5e:\n          local_40 = FUN_0009a6e0();\n          goto LAB_0009ab97;\n        }\n        if (((bVar11) && (pcVar4 = (char *)get_string_value(pcVar8), pcVar4 != (char *)0x0)) &&\n           (iVar10 = FUN_0009a830(), iVar10 != 0)) {\n          puts(pcVar4);\n          local_40 = FUN_0009a6e0();\n          goto LAB_0009ab97;\n        }\n        if ((bVar2) && (pcVar4 = (char *)dirspell(pcVar8), pcVar4 != (char *)0x0)) {\n          iVar10 = FUN_0009a830();\n          if (iVar10 != 0) {\n            puts(pcVar4);\n            free(pcVar4);\n            local_40 = FUN_0009a6e0();\n            goto LAB_0009ab97;\n          }\n          free(pcVar4);\n        }\n      }\nLAB_0009ace1:\n      piVar5 = __errno_location();\n      iVar10 = *piVar5;\n      pcVar4 = (char *)printable_filename(pcVar8,0);\n      pcVar6 = strerror(iVar10);\n      builtin_error("%s: %s",pcVar4,pcVar6);\n      local_40 = 1;\n      if (pcVar4 != pcVar8) {\n        local_40 = 1;\n        free(pcVar4);\n      }\n      goto LAB_0009ab97;\n    }\n    pcVar8 = "too many arguments";\n  }" { (if_statement "if (*loptend == 0) {\n      pcVar8 = *(char **)loptend[1];\n      if ((*pcVar8 == '-') && (pcVar8[1] == '\0')) {\n        pcVar8 = (char *)get_string_value(&DAT_000ef147);\n        if (pcVar8 == (char *)0x0) {\n          pcVar8 = "OLDPWD not set";\n          goto LAB_0009ad7b;\n        }\n        iVar10 = FUN_0009a830();\n        if (iVar10 != 0) {\n          puts(pcVar8);\n          goto LAB_0009ad5e;\n        }\n      }\n      else {\n        iVar3 = absolute_pathname(pcVar8);\n        if ((iVar3 == 0) &&\n           ((privileged_mode == 0 && (iVar3 = get_string_value("CDPATH"), iVar3 != 0)))) {\n          pcVar8 = *(char **)piVar5[1];\n          local_24 = 0;\n          while (pcVar4 = (char *)extract_colon_unit(iVar3,&local_24), pcVar4 != (char *)0x0) {\n            cVar1 = *pcVar4;\n            pcVar6 = (char *)sh_makepath(pcVar4,pcVar8,1);\n            free(pcVar4);\n            iVar9 = FUN_0009a830();\n            if (iVar9 != 0) {\n              if (cVar1 != '\0') {\n                pcVar8 = pcVar6;\n                if (iVar10 == 0) {\n                  pcVar8 = the_current_working_directory;\n                }\n                if (pcVar8 != (char *)0x0) {\n                  puts(pcVar8);\n                }\n              }\n              free(pcVar6);\n              local_40 = FUN_0009a6e0();\n              goto LAB_0009ab97;\n            }\n            free(pcVar6);\n          }\n        }\n        else {\n          pcVar8 = *(char **)piVar5[1];\n        }\n        iVar10 = FUN_0009a830();\n        if (iVar10 != 0) {\nLAB_0009ad5e:\n          local_40 = FUN_0009a6e0();\n          goto LAB_0009ab97;\n        }\n        if (((bVar11) && (pcVar4 = (char *)get_string_value(pcVar8), pcVar4 != (char *)0x0)) &&\n           (iVar10 = FUN_0009a830(), iVar10 != 0)) {\n          puts(pcVar4);\n          local_40 = FUN_0009a6e0();\n          goto LAB_0009ab97;\n        }\n        if ((bVar2) && (pcVar4 = (char *)dirspell(pcVar8), pcVar4 != (char *)0x0)) {\n          iVar10 = FUN_0009a830();\n          if (iVar10 != 0) {\n            puts(pcVar4);\n            free(pcVar4);\n            local_40 = FUN_0009a6e0();\n            goto LAB_0009ab97;\n          }\n          free(pcVar4);\n        }\n      }\nLAB_0009ace1:\n      piVar5 = __errno_location();\n      iVar10 = *piVar5;\n      pcVar4 = (char *)printable_filename(pcVar8,0);\n      pcVar6 = strerror(iVar10);\n      builtin_error("%s: %s",pcVar4,pcVar6);\n      local_40 = 1;\n      if (pcVar4 != pcVar8) {\n        local_40 = 1;\n        free(pcVar4);\n      }\n      goto LAB_0009ab97;\n    }" if (parenthesized_expression "(*loptend == 0)" ( (binary_expression "*loptend == 0" (pointer_expression "*loptend" * identifier) == number_literal) )) (compound_statement "{\n      pcVar8 = *(char **)loptend[1];\n      if ((*pcVar8 == '-') && (pcVar8[1] == '\0')) {\n        pcVar8 = (char *)get_string_value(&DAT_000ef147);\n        if (pcVar8 == (char *)0x0) {\n          pcVar8 = "OLDPWD not set";\n          goto LAB_0009ad7b;\n        }\n        iVar10 = FUN_0009a830();\n        if (iVar10 != 0) {\n          puts(pcVar8);\n          goto LAB_0009ad5e;\n        }\n      }\n      else {\n        iVar3 = absolute_pathname(pcVar8);\n        if ((iVar3 == 0) &&\n           ((privileged_mode == 0 && (iVar3 = get_string_value("CDPATH"), iVar3 != 0)))) {\n          pcVar8 = *(char **)piVar5[1];\n          local_24 = 0;\n          while (pcVar4 = (char *)extract_colon_unit(iVar3,&local_24), pcVar4 != (char *)0x0) {\n            cVar1 = *pcVar4;\n            pcVar6 = (char *)sh_makepath(pcVar4,pcVar8,1);\n            free(pcVar4);\n            iVar9 = FUN_0009a830();\n            if (iVar9 != 0) {\n              if (cVar1 != '\0') {\n                pcVar8 = pcVar6;\n                if (iVar10 == 0) {\n                  pcVar8 = the_current_working_directory;\n                }\n                if (pcVar8 != (char *)0x0) {\n                  puts(pcVar8);\n                }\n              }\n              free(pcVar6);\n              local_40 = FUN_0009a6e0();\n              goto LAB_0009ab97;\n            }\n            free(pcVar6);\n          }\n        }\n        else {\n          pcVar8 = *(char **)piVar5[1];\n        }\n        iVar10 = FUN_0009a830();\n        if (iVar10 != 0) {\nLAB_0009ad5e:\n          local_40 = FUN_0009a6e0();\n          goto LAB_0009ab97;\n        }\n        if (((bVar11) && (pcVar4 = (char *)get_string_value(pcVar8), pcVar4 != (char *)0x0)) &&\n           (iVar10 = FUN_0009a830(), iVar10 != 0)) {\n          puts(pcVar4);\n          local_40 = FUN_0009a6e0();\n          goto LAB_0009ab97;\n        }\n        if ((bVar2) && (pcVar4 = (char *)dirspell(pcVar8), pcVar4 != (char *)0x0)) {\n          iVar10 = FUN_0009a830();\n          if (iVar10 != 0) {\n            puts(pcVar4);\n            free(pcVar4);\n            local_40 = FUN_0009a6e0();\n            goto LAB_0009ab97;\n          }\n          free(pcVar4);\n        }\n      }\nLAB_0009ace1:\n      piVar5 = __errno_location();\n      iVar10 = *piVar5;\n      pcVar4 = (char *)printable_filename(pcVar8,0);\n      pcVar6 = strerror(iVar10);\n      builtin_error("%s: %s",pcVar4,pcVar6);\n      local_40 = 1;\n      if (pcVar4 != pcVar8) {\n        local_40 = 1;\n        free(pcVar4);\n      }\n      goto LAB_0009ab97;\n    }" { (expression_statement "pcVar8 = *(char **)loptend[1];" (assignment_expression "pcVar8 = *(char **)loptend[1]" identifier = (pointer_expression "*(char **)loptend[1]" * (cast_expression "(char **)loptend[1]" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "loptend[1]" identifier [ number_literal ])))) ;) (if_statement "if ((*pcVar8 == '-') && (pcVar8[1] == '\0')) {\n        pcVar8 = (char *)get_string_value(&DAT_000ef147);\n        if (pcVar8 == (char *)0x0) {\n          pcVar8 = "OLDPWD not set";\n          goto LAB_0009ad7b;\n        }\n        iVar10 = FUN_0009a830();\n        if (iVar10 != 0) {\n          puts(pcVar8);\n          goto LAB_0009ad5e;\n        }\n      }\n      else {\n        iVar3 = absolute_pathname(pcVar8);\n        if ((iVar3 == 0) &&\n           ((privileged_mode == 0 && (iVar3 = get_string_value("CDPATH"), iVar3 != 0)))) {\n          pcVar8 = *(char **)piVar5[1];\n          local_24 = 0;\n          while (pcVar4 = (char *)extract_colon_unit(iVar3,&local_24), pcVar4 != (char *)0x0) {\n            cVar1 = *pcVar4;\n            pcVar6 = (char *)sh_makepath(pcVar4,pcVar8,1);\n            free(pcVar4);\n            iVar9 = FUN_0009a830();\n            if (iVar9 != 0) {\n              if (cVar1 != '\0') {\n                pcVar8 = pcVar6;\n                if (iVar10 == 0) {\n                  pcVar8 = the_current_working_directory;\n                }\n                if (pcVar8 != (char *)0x0) {\n                  puts(pcVar8);\n                }\n              }\n              free(pcVar6);\n              local_40 = FUN_0009a6e0();\n              goto LAB_0009ab97;\n            }\n            free(pcVar6);\n          }\n        }\n        else {\n          pcVar8 = *(char **)piVar5[1];\n        }\n        iVar10 = FUN_0009a830();\n        if (iVar10 != 0) {\nLAB_0009ad5e:\n          local_40 = FUN_0009a6e0();\n          goto LAB_0009ab97;\n        }\n        if (((bVar11) && (pcVar4 = (char *)get_string_value(pcVar8), pcVar4 != (char *)0x0)) &&\n           (iVar10 = FUN_0009a830(), iVar10 != 0)) {\n          puts(pcVar4);\n          local_40 = FUN_0009a6e0();\n          goto LAB_0009ab97;\n        }\n        if ((bVar2) && (pcVar4 = (char *)dirspell(pcVar8), pcVar4 != (char *)0x0)) {\n          iVar10 = FUN_0009a830();\n          if (iVar10 != 0) {\n            puts(pcVar4);\n            free(pcVar4);\n            local_40 = FUN_0009a6e0();\n            goto LAB_0009ab97;\n          }\n          free(pcVar4);\n        }\n      }" if (parenthesized_expression "((*pcVar8 == '-') && (pcVar8[1] == '\0'))" ( (binary_expression "(*pcVar8 == '-') && (pcVar8[1] == '\0')" (parenthesized_expression "(*pcVar8 == '-')" ( (binary_expression "*pcVar8 == '-'" (pointer_expression "*pcVar8" * identifier) == (char_literal "'-'" ' character ')) )) && (parenthesized_expression "(pcVar8[1] == '\0')" ( (binary_expression "pcVar8[1] == '\0'" (subscript_expression "pcVar8[1]" identifier [ number_literal ]) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n        pcVar8 = (char *)get_string_value(&DAT_000ef147);\n        if (pcVar8 == (char *)0x0) {\n          pcVar8 = "OLDPWD not set";\n          goto LAB_0009ad7b;\n        }\n        iVar10 = FUN_0009a830();\n        if (iVar10 != 0) {\n          puts(pcVar8);\n          goto LAB_0009ad5e;\n        }\n      }" { (expression_statement "pcVar8 = (char *)get_string_value(&DAT_000ef147);" (assignment_expression "pcVar8 = (char *)get_string_value(&DAT_000ef147)" identifier = (cast_expression "(char *)get_string_value(&DAT_000ef147)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "get_string_value(&DAT_000ef147)" identifier (argument_list "(&DAT_000ef147)" ( (pointer_expression "&DAT_000ef147" & identifier) ))))) ;) (if_statement "if (pcVar8 == (char *)0x0) {\n          pcVar8 = "OLDPWD not set";\n          goto LAB_0009ad7b;\n        }" if (parenthesized_expression "(pcVar8 == (char *)0x0)" ( (binary_expression "pcVar8 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          pcVar8 = "OLDPWD not set";\n          goto LAB_0009ad7b;\n        }" { (expression_statement "pcVar8 = "OLDPWD not set";" (assignment_expression "pcVar8 = "OLDPWD not set"" identifier = (string_literal ""OLDPWD not set"" " string_content ")) ;) (goto_statement "goto LAB_0009ad7b;" goto statement_identifier ;) })) (expression_statement "iVar10 = FUN_0009a830();" (assignment_expression "iVar10 = FUN_0009a830()" identifier = (call_expression "FUN_0009a830()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar10 != 0) {\n          puts(pcVar8);\n          goto LAB_0009ad5e;\n        }" if (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) (compound_statement "{\n          puts(pcVar8);\n          goto LAB_0009ad5e;\n        }" { (expression_statement "puts(pcVar8);" (call_expression "puts(pcVar8)" identifier (argument_list "(pcVar8)" ( identifier ))) ;) (goto_statement "goto LAB_0009ad5e;" goto statement_identifier ;) })) }) (else_clause "else {\n        iVar3 = absolute_pathname(pcVar8);\n        if ((iVar3 == 0) &&\n           ((privileged_mode == 0 && (iVar3 = get_string_value("CDPATH"), iVar3 != 0)))) {\n          pcVar8 = *(char **)piVar5[1];\n          local_24 = 0;\n          while (pcVar4 = (char *)extract_colon_unit(iVar3,&local_24), pcVar4 != (char *)0x0) {\n            cVar1 = *pcVar4;\n            pcVar6 = (char *)sh_makepath(pcVar4,pcVar8,1);\n            free(pcVar4);\n            iVar9 = FUN_0009a830();\n            if (iVar9 != 0) {\n              if (cVar1 != '\0') {\n                pcVar8 = pcVar6;\n                if (iVar10 == 0) {\n                  pcVar8 = the_current_working_directory;\n                }\n                if (pcVar8 != (char *)0x0) {\n                  puts(pcVar8);\n                }\n              }\n              free(pcVar6);\n              local_40 = FUN_0009a6e0();\n              goto LAB_0009ab97;\n            }\n            free(pcVar6);\n          }\n        }\n        else {\n          pcVar8 = *(char **)piVar5[1];\n        }\n        iVar10 = FUN_0009a830();\n        if (iVar10 != 0) {\nLAB_0009ad5e:\n          local_40 = FUN_0009a6e0();\n          goto LAB_0009ab97;\n        }\n        if (((bVar11) && (pcVar4 = (char *)get_string_value(pcVar8), pcVar4 != (char *)0x0)) &&\n           (iVar10 = FUN_0009a830(), iVar10 != 0)) {\n          puts(pcVar4);\n          local_40 = FUN_0009a6e0();\n          goto LAB_0009ab97;\n        }\n        if ((bVar2) && (pcVar4 = (char *)dirspell(pcVar8), pcVar4 != (char *)0x0)) {\n          iVar10 = FUN_0009a830();\n          if (iVar10 != 0) {\n            puts(pcVar4);\n            free(pcVar4);\n            local_40 = FUN_0009a6e0();\n            goto LAB_0009ab97;\n          }\n          free(pcVar4);\n        }\n      }" else (compound_statement "{\n        iVar3 = absolute_pathname(pcVar8);\n        if ((iVar3 == 0) &&\n           ((privileged_mode == 0 && (iVar3 = get_string_value("CDPATH"), iVar3 != 0)))) {\n          pcVar8 = *(char **)piVar5[1];\n          local_24 = 0;\n          while (pcVar4 = (char *)extract_colon_unit(iVar3,&local_24), pcVar4 != (char *)0x0) {\n            cVar1 = *pcVar4;\n            pcVar6 = (char *)sh_makepath(pcVar4,pcVar8,1);\n            free(pcVar4);\n            iVar9 = FUN_0009a830();\n            if (iVar9 != 0) {\n              if (cVar1 != '\0') {\n                pcVar8 = pcVar6;\n                if (iVar10 == 0) {\n                  pcVar8 = the_current_working_directory;\n                }\n                if (pcVar8 != (char *)0x0) {\n                  puts(pcVar8);\n                }\n              }\n              free(pcVar6);\n              local_40 = FUN_0009a6e0();\n              goto LAB_0009ab97;\n            }\n            free(pcVar6);\n          }\n        }\n        else {\n          pcVar8 = *(char **)piVar5[1];\n        }\n        iVar10 = FUN_0009a830();\n        if (iVar10 != 0) {\nLAB_0009ad5e:\n          local_40 = FUN_0009a6e0();\n          goto LAB_0009ab97;\n        }\n        if (((bVar11) && (pcVar4 = (char *)get_string_value(pcVar8), pcVar4 != (char *)0x0)) &&\n           (iVar10 = FUN_0009a830(), iVar10 != 0)) {\n          puts(pcVar4);\n          local_40 = FUN_0009a6e0();\n          goto LAB_0009ab97;\n        }\n        if ((bVar2) && (pcVar4 = (char *)dirspell(pcVar8), pcVar4 != (char *)0x0)) {\n          iVar10 = FUN_0009a830();\n          if (iVar10 != 0) {\n            puts(pcVar4);\n            free(pcVar4);\n            local_40 = FUN_0009a6e0();\n            goto LAB_0009ab97;\n          }\n          free(pcVar4);\n        }\n      }" { (expression_statement "iVar3 = absolute_pathname(pcVar8);" (assignment_expression "iVar3 = absolute_pathname(pcVar8)" identifier = (call_expression "absolute_pathname(pcVar8)" identifier (argument_list "(pcVar8)" ( identifier )))) ;) (if_statement "if ((iVar3 == 0) &&\n           ((privileged_mode == 0 && (iVar3 = get_string_value("CDPATH"), iVar3 != 0)))) {\n          pcVar8 = *(char **)piVar5[1];\n          local_24 = 0;\n          while (pcVar4 = (char *)extract_colon_unit(iVar3,&local_24), pcVar4 != (char *)0x0) {\n            cVar1 = *pcVar4;\n            pcVar6 = (char *)sh_makepath(pcVar4,pcVar8,1);\n            free(pcVar4);\n            iVar9 = FUN_0009a830();\n            if (iVar9 != 0) {\n              if (cVar1 != '\0') {\n                pcVar8 = pcVar6;\n                if (iVar10 == 0) {\n                  pcVar8 = the_current_working_directory;\n                }\n                if (pcVar8 != (char *)0x0) {\n                  puts(pcVar8);\n                }\n              }\n              free(pcVar6);\n              local_40 = FUN_0009a6e0();\n              goto LAB_0009ab97;\n            }\n            free(pcVar6);\n          }\n        }\n        else {\n          pcVar8 = *(char **)piVar5[1];\n        }" if (parenthesized_expression "((iVar3 == 0) &&\n           ((privileged_mode == 0 && (iVar3 = get_string_value("CDPATH"), iVar3 != 0))))" ( (binary_expression "(iVar3 == 0) &&\n           ((privileged_mode == 0 && (iVar3 = get_string_value("CDPATH"), iVar3 != 0)))" (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) && (parenthesized_expression "((privileged_mode == 0 && (iVar3 = get_string_value("CDPATH"), iVar3 != 0)))" ( (parenthesized_expression "(privileged_mode == 0 && (iVar3 = get_string_value("CDPATH"), iVar3 != 0))" ( (binary_expression "privileged_mode == 0 && (iVar3 = get_string_value("CDPATH"), iVar3 != 0)" (binary_expression "privileged_mode == 0" identifier == number_literal) && (parenthesized_expression "(iVar3 = get_string_value("CDPATH"), iVar3 != 0)" ( (comma_expression "iVar3 = get_string_value("CDPATH"), iVar3 != 0" (assignment_expression "iVar3 = get_string_value("CDPATH")" identifier = (call_expression "get_string_value("CDPATH")" identifier (argument_list "("CDPATH")" ( (string_literal ""CDPATH"" " string_content ") )))) , (binary_expression "iVar3 != 0" identifier != number_literal)) ))) )) ))) )) (compound_statement "{\n          pcVar8 = *(char **)piVar5[1];\n          local_24 = 0;\n          while (pcVar4 = (char *)extract_colon_unit(iVar3,&local_24), pcVar4 != (char *)0x0) {\n            cVar1 = *pcVar4;\n            pcVar6 = (char *)sh_makepath(pcVar4,pcVar8,1);\n            free(pcVar4);\n            iVar9 = FUN_0009a830();\n            if (iVar9 != 0) {\n              if (cVar1 != '\0') {\n                pcVar8 = pcVar6;\n                if (iVar10 == 0) {\n                  pcVar8 = the_current_working_directory;\n                }\n                if (pcVar8 != (char *)0x0) {\n                  puts(pcVar8);\n                }\n              }\n              free(pcVar6);\n              local_40 = FUN_0009a6e0();\n              goto LAB_0009ab97;\n            }\n            free(pcVar6);\n          }\n        }" { (expression_statement "pcVar8 = *(char **)piVar5[1];" (assignment_expression "pcVar8 = *(char **)piVar5[1]" identifier = (pointer_expression "*(char **)piVar5[1]" * (cast_expression "(char **)piVar5[1]" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "piVar5[1]" identifier [ number_literal ])))) ;) (expression_statement "local_24 = 0;" (assignment_expression "local_24 = 0" identifier = number_literal) ;) (while_statement "while (pcVar4 = (char *)extract_colon_unit(iVar3,&local_24), pcVar4 != (char *)0x0) {\n            cVar1 = *pcVar4;\n            pcVar6 = (char *)sh_makepath(pcVar4,pcVar8,1);\n            free(pcVar4);\n            iVar9 = FUN_0009a830();\n            if (iVar9 != 0) {\n              if (cVar1 != '\0') {\n                pcVar8 = pcVar6;\n                if (iVar10 == 0) {\n                  pcVar8 = the_current_working_directory;\n                }\n                if (pcVar8 != (char *)0x0) {\n                  puts(pcVar8);\n                }\n              }\n              free(pcVar6);\n              local_40 = FUN_0009a6e0();\n              goto LAB_0009ab97;\n            }\n            free(pcVar6);\n          }" while (parenthesized_expression "(pcVar4 = (char *)extract_colon_unit(iVar3,&local_24), pcVar4 != (char *)0x0)" ( (comma_expression "pcVar4 = (char *)extract_colon_unit(iVar3,&local_24), pcVar4 != (char *)0x0" (assignment_expression "pcVar4 = (char *)extract_colon_unit(iVar3,&local_24)" identifier = (cast_expression "(char *)extract_colon_unit(iVar3,&local_24)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "extract_colon_unit(iVar3,&local_24)" identifier (argument_list "(iVar3,&local_24)" ( identifier , (pointer_expression "&local_24" & identifier) ))))) , (binary_expression "pcVar4 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) )) (compound_statement "{\n            cVar1 = *pcVar4;\n            pcVar6 = (char *)sh_makepath(pcVar4,pcVar8,1);\n            free(pcVar4);\n            iVar9 = FUN_0009a830();\n            if (iVar9 != 0) {\n              if (cVar1 != '\0') {\n                pcVar8 = pcVar6;\n                if (iVar10 == 0) {\n                  pcVar8 = the_current_working_directory;\n                }\n                if (pcVar8 != (char *)0x0) {\n                  puts(pcVar8);\n                }\n              }\n              free(pcVar6);\n              local_40 = FUN_0009a6e0();\n              goto LAB_0009ab97;\n            }\n            free(pcVar6);\n          }" { (expression_statement "cVar1 = *pcVar4;" (assignment_expression "cVar1 = *pcVar4" identifier = (pointer_expression "*pcVar4" * identifier)) ;) (expression_statement "pcVar6 = (char *)sh_makepath(pcVar4,pcVar8,1);" (assignment_expression "pcVar6 = (char *)sh_makepath(pcVar4,pcVar8,1)" identifier = (cast_expression "(char *)sh_makepath(pcVar4,pcVar8,1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "sh_makepath(pcVar4,pcVar8,1)" identifier (argument_list "(pcVar4,pcVar8,1)" ( identifier , identifier , number_literal ))))) ;) (expression_statement "free(pcVar4);" (call_expression "free(pcVar4)" identifier (argument_list "(pcVar4)" ( identifier ))) ;) (expression_statement "iVar9 = FUN_0009a830();" (assignment_expression "iVar9 = FUN_0009a830()" identifier = (call_expression "FUN_0009a830()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar9 != 0) {\n              if (cVar1 != '\0') {\n                pcVar8 = pcVar6;\n                if (iVar10 == 0) {\n                  pcVar8 = the_current_working_directory;\n                }\n                if (pcVar8 != (char *)0x0) {\n                  puts(pcVar8);\n                }\n              }\n              free(pcVar6);\n              local_40 = FUN_0009a6e0();\n              goto LAB_0009ab97;\n            }" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (compound_statement "{\n              if (cVar1 != '\0') {\n                pcVar8 = pcVar6;\n                if (iVar10 == 0) {\n                  pcVar8 = the_current_working_directory;\n                }\n                if (pcVar8 != (char *)0x0) {\n                  puts(pcVar8);\n                }\n              }\n              free(pcVar6);\n              local_40 = FUN_0009a6e0();\n              goto LAB_0009ab97;\n            }" { (if_statement "if (cVar1 != '\0') {\n                pcVar8 = pcVar6;\n                if (iVar10 == 0) {\n                  pcVar8 = the_current_working_directory;\n                }\n                if (pcVar8 != (char *)0x0) {\n                  puts(pcVar8);\n                }\n              }" if (parenthesized_expression "(cVar1 != '\0')" ( (binary_expression "cVar1 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                pcVar8 = pcVar6;\n                if (iVar10 == 0) {\n                  pcVar8 = the_current_working_directory;\n                }\n                if (pcVar8 != (char *)0x0) {\n                  puts(pcVar8);\n                }\n              }" { (expression_statement "pcVar8 = pcVar6;" (assignment_expression "pcVar8 = pcVar6" identifier = identifier) ;) (if_statement "if (iVar10 == 0) {\n                  pcVar8 = the_current_working_directory;\n                }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n                  pcVar8 = the_current_working_directory;\n                }" { (expression_statement "pcVar8 = the_current_working_directory;" (assignment_expression "pcVar8 = the_current_working_directory" identifier = identifier) ;) })) (if_statement "if (pcVar8 != (char *)0x0) {\n                  puts(pcVar8);\n                }" if (parenthesized_expression "(pcVar8 != (char *)0x0)" ( (binary_expression "pcVar8 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  puts(pcVar8);\n                }" { (expression_statement "puts(pcVar8);" (call_expression "puts(pcVar8)" identifier (argument_list "(pcVar8)" ( identifier ))) ;) })) })) (expression_statement "free(pcVar6);" (call_expression "free(pcVar6)" identifier (argument_list "(pcVar6)" ( identifier ))) ;) (expression_statement "local_40 = FUN_0009a6e0();" (assignment_expression "local_40 = FUN_0009a6e0()" identifier = (call_expression "FUN_0009a6e0()" identifier (argument_list "()" ( )))) ;) (goto_statement "goto LAB_0009ab97;" goto statement_identifier ;) })) (expression_statement "free(pcVar6);" (call_expression "free(pcVar6)" identifier (argument_list "(pcVar6)" ( identifier ))) ;) })) }) (else_clause "else {\n          pcVar8 = *(char **)piVar5[1];\n        }" else (compound_statement "{\n          pcVar8 = *(char **)piVar5[1];\n        }" { (expression_statement "pcVar8 = *(char **)piVar5[1];" (assignment_expression "pcVar8 = *(char **)piVar5[1]" identifier = (pointer_expression "*(char **)piVar5[1]" * (cast_expression "(char **)piVar5[1]" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "piVar5[1]" identifier [ number_literal ])))) ;) }))) (expression_statement "iVar10 = FUN_0009a830();" (assignment_expression "iVar10 = FUN_0009a830()" identifier = (call_expression "FUN_0009a830()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar10 != 0) {\nLAB_0009ad5e:\n          local_40 = FUN_0009a6e0();\n          goto LAB_0009ab97;\n        }" if (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_0009ad5e:\n          local_40 = FUN_0009a6e0();\n          goto LAB_0009ab97;\n        }" { (labeled_statement "LAB_0009ad5e:\n          local_40 = FUN_0009a6e0();" statement_identifier : (expression_statement "local_40 = FUN_0009a6e0();" (assignment_expression "local_40 = FUN_0009a6e0()" identifier = (call_expression "FUN_0009a6e0()" identifier (argument_list "()" ( )))) ;)) (goto_statement "goto LAB_0009ab97;" goto statement_identifier ;) })) (if_statement "if (((bVar11) && (pcVar4 = (char *)get_string_value(pcVar8), pcVar4 != (char *)0x0)) &&\n           (iVar10 = FUN_0009a830(), iVar10 != 0)) {\n          puts(pcVar4);\n          local_40 = FUN_0009a6e0();\n          goto LAB_0009ab97;\n        }" if (parenthesized_expression "(((bVar11) && (pcVar4 = (char *)get_string_value(pcVar8), pcVar4 != (char *)0x0)) &&\n           (iVar10 = FUN_0009a830(), iVar10 != 0))" ( (binary_expression "((bVar11) && (pcVar4 = (char *)get_string_value(pcVar8), pcVar4 != (char *)0x0)) &&\n           (iVar10 = FUN_0009a830(), iVar10 != 0)" (parenthesized_expression "((bVar11) && (pcVar4 = (char *)get_string_value(pcVar8), pcVar4 != (char *)0x0))" ( (binary_expression "(bVar11) && (pcVar4 = (char *)get_string_value(pcVar8), pcVar4 != (char *)0x0)" (parenthesized_expression "(bVar11)" ( identifier )) && (parenthesized_expression "(pcVar4 = (char *)get_string_value(pcVar8), pcVar4 != (char *)0x0)" ( (comma_expression "pcVar4 = (char *)get_string_value(pcVar8), pcVar4 != (char *)0x0" (assignment_expression "pcVar4 = (char *)get_string_value(pcVar8)" identifier = (cast_expression "(char *)get_string_value(pcVar8)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "get_string_value(pcVar8)" identifier (argument_list "(pcVar8)" ( identifier ))))) , (binary_expression "pcVar4 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) && (parenthesized_expression "(iVar10 = FUN_0009a830(), iVar10 != 0)" ( (comma_expression "iVar10 = FUN_0009a830(), iVar10 != 0" (assignment_expression "iVar10 = FUN_0009a830()" identifier = (call_expression "FUN_0009a830()" identifier (argument_list "()" ( )))) , (binary_expression "iVar10 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n          puts(pcVar4);\n          local_40 = FUN_0009a6e0();\n          goto LAB_0009ab97;\n        }" { (expression_statement "puts(pcVar4);" (call_expression "puts(pcVar4)" identifier (argument_list "(pcVar4)" ( identifier ))) ;) (expression_statement "local_40 = FUN_0009a6e0();" (assignment_expression "local_40 = FUN_0009a6e0()" identifier = (call_expression "FUN_0009a6e0()" identifier (argument_list "()" ( )))) ;) (goto_statement "goto LAB_0009ab97;" goto statement_identifier ;) })) (if_statement "if ((bVar2) && (pcVar4 = (char *)dirspell(pcVar8), pcVar4 != (char *)0x0)) {\n          iVar10 = FUN_0009a830();\n          if (iVar10 != 0) {\n            puts(pcVar4);\n            free(pcVar4);\n            local_40 = FUN_0009a6e0();\n            goto LAB_0009ab97;\n          }\n          free(pcVar4);\n        }" if (parenthesized_expression "((bVar2) && (pcVar4 = (char *)dirspell(pcVar8), pcVar4 != (char *)0x0))" ( (binary_expression "(bVar2) && (pcVar4 = (char *)dirspell(pcVar8), pcVar4 != (char *)0x0)" (parenthesized_expression "(bVar2)" ( identifier )) && (parenthesized_expression "(pcVar4 = (char *)dirspell(pcVar8), pcVar4 != (char *)0x0)" ( (comma_expression "pcVar4 = (char *)dirspell(pcVar8), pcVar4 != (char *)0x0" (assignment_expression "pcVar4 = (char *)dirspell(pcVar8)" identifier = (cast_expression "(char *)dirspell(pcVar8)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dirspell(pcVar8)" identifier (argument_list "(pcVar8)" ( identifier ))))) , (binary_expression "pcVar4 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n          iVar10 = FUN_0009a830();\n          if (iVar10 != 0) {\n            puts(pcVar4);\n            free(pcVar4);\n            local_40 = FUN_0009a6e0();\n            goto LAB_0009ab97;\n          }\n          free(pcVar4);\n        }" { (expression_statement "iVar10 = FUN_0009a830();" (assignment_expression "iVar10 = FUN_0009a830()" identifier = (call_expression "FUN_0009a830()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar10 != 0) {\n            puts(pcVar4);\n            free(pcVar4);\n            local_40 = FUN_0009a6e0();\n            goto LAB_0009ab97;\n          }" if (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) (compound_statement "{\n            puts(pcVar4);\n            free(pcVar4);\n            local_40 = FUN_0009a6e0();\n            goto LAB_0009ab97;\n          }" { (expression_statement "puts(pcVar4);" (call_expression "puts(pcVar4)" identifier (argument_list "(pcVar4)" ( identifier ))) ;) (expression_statement "free(pcVar4);" (call_expression "free(pcVar4)" identifier (argument_list "(pcVar4)" ( identifier ))) ;) (expression_statement "local_40 = FUN_0009a6e0();" (assignment_expression "local_40 = FUN_0009a6e0()" identifier = (call_expression "FUN_0009a6e0()" identifier (argument_list "()" ( )))) ;) (goto_statement "goto LAB_0009ab97;" goto statement_identifier ;) })) (expression_statement "free(pcVar4);" (call_expression "free(pcVar4)" identifier (argument_list "(pcVar4)" ( identifier ))) ;) })) }))) (labeled_statement "LAB_0009ace1:\n      piVar5 = __errno_location();" statement_identifier : (expression_statement "piVar5 = __errno_location();" (assignment_expression "piVar5 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;)) (expression_statement "iVar10 = *piVar5;" (assignment_expression "iVar10 = *piVar5" identifier = (pointer_expression "*piVar5" * identifier)) ;) (expression_statement "pcVar4 = (char *)printable_filename(pcVar8,0);" (assignment_expression "pcVar4 = (char *)printable_filename(pcVar8,0)" identifier = (cast_expression "(char *)printable_filename(pcVar8,0)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "printable_filename(pcVar8,0)" identifier (argument_list "(pcVar8,0)" ( identifier , number_literal ))))) ;) (expression_statement "pcVar6 = strerror(iVar10);" (assignment_expression "pcVar6 = strerror(iVar10)" identifier = (call_expression "strerror(iVar10)" identifier (argument_list "(iVar10)" ( identifier )))) ;) (expression_statement "builtin_error("%s: %s",pcVar4,pcVar6);" (call_expression "builtin_error("%s: %s",pcVar4,pcVar6)" identifier (argument_list "("%s: %s",pcVar4,pcVar6)" ( (string_literal ""%s: %s"" " string_content ") , identifier , identifier ))) ;) (expression_statement "local_40 = 1;" (assignment_expression "local_40 = 1" identifier = number_literal) ;) (if_statement "if (pcVar4 != pcVar8) {\n        local_40 = 1;\n        free(pcVar4);\n      }" if (parenthesized_expression "(pcVar4 != pcVar8)" ( (binary_expression "pcVar4 != pcVar8" identifier != identifier) )) (compound_statement "{\n        local_40 = 1;\n        free(pcVar4);\n      }" { (expression_statement "local_40 = 1;" (assignment_expression "local_40 = 1" identifier = number_literal) ;) (expression_statement "free(pcVar4);" (call_expression "free(pcVar4)" identifier (argument_list "(pcVar4)" ( identifier ))) ;) })) (goto_statement "goto LAB_0009ab97;" goto statement_identifier ;) })) (expression_statement "pcVar8 = "too many arguments";" (assignment_expression "pcVar8 = "too many arguments"" identifier = (string_literal ""too many arguments"" " string_content ")) ;) }))) (labeled_statement "LAB_0009ad7b:\n  uVar7 = dcgettext(0,pcVar8,5);" statement_identifier : (expression_statement "uVar7 = dcgettext(0,pcVar8,5);" (assignment_expression "uVar7 = dcgettext(0,pcVar8,5)" identifier = (call_expression "dcgettext(0,pcVar8,5)" identifier (argument_list "(0,pcVar8,5)" ( number_literal , identifier , number_literal )))) ;)) (expression_statement "builtin_error(uVar7);" (call_expression "builtin_error(uVar7)" identifier (argument_list "(uVar7)" ( identifier ))) ;) (expression_statement "local_40 = 1;" (assignment_expression "local_40 = 1" identifier = number_literal) ;) (labeled_statement "LAB_0009ab97:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_000ecc40();\n  }" statement_identifier : (if_statement "if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_000ecc40();\n  }" if (parenthesized_expression "(local_20 != *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_20 != *(int *)(in_GS_OFFSET + 0x14)" identifier != (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_000ecc40();\n  }" { comment (expression_statement "FUN_000ecc40();" (call_expression "FUN_000ecc40()" identifier (argument_list "()" ( ))) ;) }))) (return_statement "return local_40;" return identifier ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nint cd_builtin(WORD_LIST *list)\n\n{\n  char cVar1;\n  bool bVar2;\n  WORD_LIST *pWVar3;\n  int iVar4;\n  int iVar5;\n  char *pcVar6;\n  int *piVar7;\n  char *pcVar8;\n  char *pcVar9;\n  char *newdir;\n  int extraout_ECX;\n  int xattr;\n  int xattr_00;\n  int xattr_01;\n  int xattr_02;\n  int extraout_ECX_00;\n  int xattr_03;\n  int extraout_ECX_01;\n  int iVar10;\n  int in_GS_OFFSET;\n  bool bVar11;\n  int local_40;\n  int path_index;\n  int local_20;\n  undefined4 uStack_14;\n  \n  iVar10 = no_symbolic_links;\n  uStack_14 = 0x9ab09;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (restricted != 0) {\n    sh_restricted((char *)0x0);\n    local_40 = 1;\n    goto LAB_0009ab97;\n  }\n  eflag = 0;\n  reset_internal_getopt();\n  while (iVar4 = internal_getopt(list,"eLP"), pWVar3 = loptend, iVar4 != -1) {\n    if (iVar4 == 0x4c) {\n      iVar10 = 0;\n    }\n    else {\n      if (iVar4 < 0x4d) {\n        if (iVar4 == -99) {\n          builtin_help();\n          local_40 = 0x102;\n        }\n        else {\nLAB_0009abd8:\n          builtin_usage();\n          local_40 = 0x102;\n        }\n        goto LAB_0009ab97;\n      }\n      if (iVar4 == 0x50) {\n        iVar10 = 1;\n      }\n      else {\n        if (iVar4 != 0x65) goto LAB_0009abd8;\n        eflag = 1;\n      }\n    }\n  }\n  bVar11 = cdable_vars != 0;\n  bVar2 = false;\n  if ((interactive != 0) && (cdspelling != 0)) {\n    bVar2 = true;\n  }\n  if ((eflag != 0) && (iVar10 == 0)) {\n    eflag = 0;\n  }\n  if (loptend == (WORD_LIST *)0x0) {\n    pcVar9 = get_string_value("HOME");\n    if (pcVar9 != (char *)0x0) {\n      iVar4 = change_to_directory(pcVar9,iVar10,xattr_00);\n      if (iVar4 != 0) goto LAB_0009ad5e;\n      goto LAB_0009ace1;\n    }\n    pcVar9 = "HOME not set";\n  }\n  else {\n    if (loptend->next == (word_list *)0x0) {\n      pcVar9 = loptend->word->word;\n      if ((*pcVar9 == '-') && (pcVar9[1] == '\0')) {\n        pcVar9 = get_string_value("OLDPWD");\n        if (pcVar9 == (char *)0x0) {\n          pcVar9 = "OLDPWD not set";\n          goto LAB_0009ad7b;\n        }\n        iVar4 = change_to_directory(pcVar9,iVar10,xattr_02);\n        if (iVar4 != 0) {\n          puts(pcVar9);\n          goto LAB_0009ad5e;\n        }\n      }\n      else {\n        iVar5 = absolute_pathname(pcVar9);\n        iVar4 = extraout_ECX;\n        if ((iVar5 == 0) &&\n           ((privileged_mode == 0 &&\n            (pcVar6 = get_string_value("CDPATH"), iVar4 = extraout_ECX_00, pcVar6 != (char *)0x0))))\n        {\n          pcVar9 = pWVar3->word->word;\n          path_index = 0;\n          while (pcVar8 = extract_colon_unit(pcVar6,&path_index), iVar4 = extraout_ECX_01,\n                pcVar8 != (char *)0x0) {\n            cVar1 = *pcVar8;\n            newdir = sh_makepath(pcVar8,pcVar9,1);\n            free(pcVar8);\n            iVar4 = change_to_directory(newdir,iVar10,xattr_03);\n            if (iVar4 != 0) {\n              if (cVar1 != '\0') {\n                pcVar9 = newdir;\n                if (iVar10 == 0) {\n                  pcVar9 = the_current_working_directory;\n                }\n                if (pcVar9 != (char *)0x0) {\n                  puts(pcVar9);\n                }\n              }\n              free(newdir);\n              local_40 = bindpwd(iVar10);\n              goto LAB_0009ab97;\n            }\n            free(newdir);\n          }\n        }\n        else {\n          pcVar9 = pWVar3->word->word;\n        }\n        iVar4 = change_to_directory(pcVar9,iVar10,iVar4);\n        if (iVar4 != 0) {\nLAB_0009ad5e:\n          local_40 = bindpwd(iVar10);\n          goto LAB_0009ab97;\n        }\n        if (((bVar11) && (pcVar6 = get_string_value(pcVar9), pcVar6 != (char *)0x0)) &&\n           (iVar4 = change_to_directory(pcVar6,iVar10,xattr_01), iVar4 != 0)) {\n          puts(pcVar6);\n          local_40 = bindpwd(iVar10);\n          goto LAB_0009ab97;\n        }\n        if ((bVar2) && (pcVar6 = dirspell(pcVar9), pcVar6 != (char *)0x0)) {\n          iVar4 = change_to_directory(pcVar6,iVar10,xattr);\n          if (iVar4 != 0) {\n            puts(pcVar6);\n            free(pcVar6);\n            local_40 = bindpwd(iVar10);\n            goto LAB_0009ab97;\n          }\n          free(pcVar6);\n        }\n      }\nLAB_0009ace1:\n      piVar7 = __errno_location();\n      iVar10 = *piVar7;\n      pcVar6 = printable_filename(pcVar9,0);\n      pcVar8 = strerror(iVar10);\n      builtin_error("%s: %s",pcVar6,pcVar8);\n      local_40 = 1;\n      if (pcVar6 != pcVar9) {\n        local_40 = 1;\n        free(pcVar6);\n      }\n      goto LAB_0009ab97;\n    }\n    pcVar9 = "too many arguments";\n  }\nLAB_0009ad7b:\n  pcVar9 = (char *)dcgettext(0,pcVar9,5);\n  builtin_error(pcVar9);\n  local_40 = 1;\nLAB_0009ab97:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }\n  return local_40;\n}\n\n" comment (function_definition "int cd_builtin(WORD_LIST *list)\n\n{\n  char cVar1;\n  bool bVar2;\n  WORD_LIST *pWVar3;\n  int iVar4;\n  int iVar5;\n  char *pcVar6;\n  int *piVar7;\n  char *pcVar8;\n  char *pcVar9;\n  char *newdir;\n  int extraout_ECX;\n  int xattr;\n  int xattr_00;\n  int xattr_01;\n  int xattr_02;\n  int extraout_ECX_00;\n  int xattr_03;\n  int extraout_ECX_01;\n  int iVar10;\n  int in_GS_OFFSET;\n  bool bVar11;\n  int local_40;\n  int path_index;\n  int local_20;\n  undefined4 uStack_14;\n  \n  iVar10 = no_symbolic_links;\n  uStack_14 = 0x9ab09;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (restricted != 0) {\n    sh_restricted((char *)0x0);\n    local_40 = 1;\n    goto LAB_0009ab97;\n  }\n  eflag = 0;\n  reset_internal_getopt();\n  while (iVar4 = internal_getopt(list,"eLP"), pWVar3 = loptend, iVar4 != -1) {\n    if (iVar4 == 0x4c) {\n      iVar10 = 0;\n    }\n    else {\n      if (iVar4 < 0x4d) {\n        if (iVar4 == -99) {\n          builtin_help();\n          local_40 = 0x102;\n        }\n        else {\nLAB_0009abd8:\n          builtin_usage();\n          local_40 = 0x102;\n        }\n        goto LAB_0009ab97;\n      }\n      if (iVar4 == 0x50) {\n        iVar10 = 1;\n      }\n      else {\n        if (iVar4 != 0x65) goto LAB_0009abd8;\n        eflag = 1;\n      }\n    }\n  }\n  bVar11 = cdable_vars != 0;\n  bVar2 = false;\n  if ((interactive != 0) && (cdspelling != 0)) {\n    bVar2 = true;\n  }\n  if ((eflag != 0) && (iVar10 == 0)) {\n    eflag = 0;\n  }\n  if (loptend == (WORD_LIST *)0x0) {\n    pcVar9 = get_string_value("HOME");\n    if (pcVar9 != (char *)0x0) {\n      iVar4 = change_to_directory(pcVar9,iVar10,xattr_00);\n      if (iVar4 != 0) goto LAB_0009ad5e;\n      goto LAB_0009ace1;\n    }\n    pcVar9 = "HOME not set";\n  }\n  else {\n    if (loptend->next == (word_list *)0x0) {\n      pcVar9 = loptend->word->word;\n      if ((*pcVar9 == '-') && (pcVar9[1] == '\0')) {\n        pcVar9 = get_string_value("OLDPWD");\n        if (pcVar9 == (char *)0x0) {\n          pcVar9 = "OLDPWD not set";\n          goto LAB_0009ad7b;\n        }\n        iVar4 = change_to_directory(pcVar9,iVar10,xattr_02);\n        if (iVar4 != 0) {\n          puts(pcVar9);\n          goto LAB_0009ad5e;\n        }\n      }\n      else {\n        iVar5 = absolute_pathname(pcVar9);\n        iVar4 = extraout_ECX;\n        if ((iVar5 == 0) &&\n           ((privileged_mode == 0 &&\n            (pcVar6 = get_string_value("CDPATH"), iVar4 = extraout_ECX_00, pcVar6 != (char *)0x0))))\n        {\n          pcVar9 = pWVar3->word->word;\n          path_index = 0;\n          while (pcVar8 = extract_colon_unit(pcVar6,&path_index), iVar4 = extraout_ECX_01,\n                pcVar8 != (char *)0x0) {\n            cVar1 = *pcVar8;\n            newdir = sh_makepath(pcVar8,pcVar9,1);\n            free(pcVar8);\n            iVar4 = change_to_directory(newdir,iVar10,xattr_03);\n            if (iVar4 != 0) {\n              if (cVar1 != '\0') {\n                pcVar9 = newdir;\n                if (iVar10 == 0) {\n                  pcVar9 = the_current_working_directory;\n                }\n                if (pcVar9 != (char *)0x0) {\n                  puts(pcVar9);\n                }\n              }\n              free(newdir);\n              local_40 = bindpwd(iVar10);\n              goto LAB_0009ab97;\n            }\n            free(newdir);\n          }\n        }\n        else {\n          pcVar9 = pWVar3->word->word;\n        }\n        iVar4 = change_to_directory(pcVar9,iVar10,iVar4);\n        if (iVar4 != 0) {\nLAB_0009ad5e:\n          local_40 = bindpwd(iVar10);\n          goto LAB_0009ab97;\n        }\n        if (((bVar11) && (pcVar6 = get_string_value(pcVar9), pcVar6 != (char *)0x0)) &&\n           (iVar4 = change_to_directory(pcVar6,iVar10,xattr_01), iVar4 != 0)) {\n          puts(pcVar6);\n          local_40 = bindpwd(iVar10);\n          goto LAB_0009ab97;\n        }\n        if ((bVar2) && (pcVar6 = dirspell(pcVar9), pcVar6 != (char *)0x0)) {\n          iVar4 = change_to_directory(pcVar6,iVar10,xattr);\n          if (iVar4 != 0) {\n            puts(pcVar6);\n            free(pcVar6);\n            local_40 = bindpwd(iVar10);\n            goto LAB_0009ab97;\n          }\n          free(pcVar6);\n        }\n      }\nLAB_0009ace1:\n      piVar7 = __errno_location();\n      iVar10 = *piVar7;\n      pcVar6 = printable_filename(pcVar9,0);\n      pcVar8 = strerror(iVar10);\n      builtin_error("%s: %s",pcVar6,pcVar8);\n      local_40 = 1;\n      if (pcVar6 != pcVar9) {\n        local_40 = 1;\n        free(pcVar6);\n      }\n      goto LAB_0009ab97;\n    }\n    pcVar9 = "too many arguments";\n  }\nLAB_0009ad7b:\n  pcVar9 = (char *)dcgettext(0,pcVar9,5);\n  builtin_error(pcVar9);\n  local_40 = 1;\nLAB_0009ab97:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }\n  return local_40;\n}" primitive_type (function_declarator "cd_builtin(WORD_LIST *list)" identifier (parameter_list "(WORD_LIST *list)" ( (parameter_declaration "WORD_LIST *list" type_identifier (pointer_declarator "*list" * identifier)) ))) (compound_statement "{\n  char cVar1;\n  bool bVar2;\n  WORD_LIST *pWVar3;\n  int iVar4;\n  int iVar5;\n  char *pcVar6;\n  int *piVar7;\n  char *pcVar8;\n  char *pcVar9;\n  char *newdir;\n  int extraout_ECX;\n  int xattr;\n  int xattr_00;\n  int xattr_01;\n  int xattr_02;\n  int extraout_ECX_00;\n  int xattr_03;\n  int extraout_ECX_01;\n  int iVar10;\n  int in_GS_OFFSET;\n  bool bVar11;\n  int local_40;\n  int path_index;\n  int local_20;\n  undefined4 uStack_14;\n  \n  iVar10 = no_symbolic_links;\n  uStack_14 = 0x9ab09;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (restricted != 0) {\n    sh_restricted((char *)0x0);\n    local_40 = 1;\n    goto LAB_0009ab97;\n  }\n  eflag = 0;\n  reset_internal_getopt();\n  while (iVar4 = internal_getopt(list,"eLP"), pWVar3 = loptend, iVar4 != -1) {\n    if (iVar4 == 0x4c) {\n      iVar10 = 0;\n    }\n    else {\n      if (iVar4 < 0x4d) {\n        if (iVar4 == -99) {\n          builtin_help();\n          local_40 = 0x102;\n        }\n        else {\nLAB_0009abd8:\n          builtin_usage();\n          local_40 = 0x102;\n        }\n        goto LAB_0009ab97;\n      }\n      if (iVar4 == 0x50) {\n        iVar10 = 1;\n      }\n      else {\n        if (iVar4 != 0x65) goto LAB_0009abd8;\n        eflag = 1;\n      }\n    }\n  }\n  bVar11 = cdable_vars != 0;\n  bVar2 = false;\n  if ((interactive != 0) && (cdspelling != 0)) {\n    bVar2 = true;\n  }\n  if ((eflag != 0) && (iVar10 == 0)) {\n    eflag = 0;\n  }\n  if (loptend == (WORD_LIST *)0x0) {\n    pcVar9 = get_string_value("HOME");\n    if (pcVar9 != (char *)0x0) {\n      iVar4 = change_to_directory(pcVar9,iVar10,xattr_00);\n      if (iVar4 != 0) goto LAB_0009ad5e;\n      goto LAB_0009ace1;\n    }\n    pcVar9 = "HOME not set";\n  }\n  else {\n    if (loptend->next == (word_list *)0x0) {\n      pcVar9 = loptend->word->word;\n      if ((*pcVar9 == '-') && (pcVar9[1] == '\0')) {\n        pcVar9 = get_string_value("OLDPWD");\n        if (pcVar9 == (char *)0x0) {\n          pcVar9 = "OLDPWD not set";\n          goto LAB_0009ad7b;\n        }\n        iVar4 = change_to_directory(pcVar9,iVar10,xattr_02);\n        if (iVar4 != 0) {\n          puts(pcVar9);\n          goto LAB_0009ad5e;\n        }\n      }\n      else {\n        iVar5 = absolute_pathname(pcVar9);\n        iVar4 = extraout_ECX;\n        if ((iVar5 == 0) &&\n           ((privileged_mode == 0 &&\n            (pcVar6 = get_string_value("CDPATH"), iVar4 = extraout_ECX_00, pcVar6 != (char *)0x0))))\n        {\n          pcVar9 = pWVar3->word->word;\n          path_index = 0;\n          while (pcVar8 = extract_colon_unit(pcVar6,&path_index), iVar4 = extraout_ECX_01,\n                pcVar8 != (char *)0x0) {\n            cVar1 = *pcVar8;\n            newdir = sh_makepath(pcVar8,pcVar9,1);\n            free(pcVar8);\n            iVar4 = change_to_directory(newdir,iVar10,xattr_03);\n            if (iVar4 != 0) {\n              if (cVar1 != '\0') {\n                pcVar9 = newdir;\n                if (iVar10 == 0) {\n                  pcVar9 = the_current_working_directory;\n                }\n                if (pcVar9 != (char *)0x0) {\n                  puts(pcVar9);\n                }\n              }\n              free(newdir);\n              local_40 = bindpwd(iVar10);\n              goto LAB_0009ab97;\n            }\n            free(newdir);\n          }\n        }\n        else {\n          pcVar9 = pWVar3->word->word;\n        }\n        iVar4 = change_to_directory(pcVar9,iVar10,iVar4);\n        if (iVar4 != 0) {\nLAB_0009ad5e:\n          local_40 = bindpwd(iVar10);\n          goto LAB_0009ab97;\n        }\n        if (((bVar11) && (pcVar6 = get_string_value(pcVar9), pcVar6 != (char *)0x0)) &&\n           (iVar4 = change_to_directory(pcVar6,iVar10,xattr_01), iVar4 != 0)) {\n          puts(pcVar6);\n          local_40 = bindpwd(iVar10);\n          goto LAB_0009ab97;\n        }\n        if ((bVar2) && (pcVar6 = dirspell(pcVar9), pcVar6 != (char *)0x0)) {\n          iVar4 = change_to_directory(pcVar6,iVar10,xattr);\n          if (iVar4 != 0) {\n            puts(pcVar6);\n            free(pcVar6);\n            local_40 = bindpwd(iVar10);\n            goto LAB_0009ab97;\n          }\n          free(pcVar6);\n        }\n      }\nLAB_0009ace1:\n      piVar7 = __errno_location();\n      iVar10 = *piVar7;\n      pcVar6 = printable_filename(pcVar9,0);\n      pcVar8 = strerror(iVar10);\n      builtin_error("%s: %s",pcVar6,pcVar8);\n      local_40 = 1;\n      if (pcVar6 != pcVar9) {\n        local_40 = 1;\n        free(pcVar6);\n      }\n      goto LAB_0009ab97;\n    }\n    pcVar9 = "too many arguments";\n  }\nLAB_0009ad7b:\n  pcVar9 = (char *)dcgettext(0,pcVar9,5);\n  builtin_error(pcVar9);\n  local_40 = 1;\nLAB_0009ab97:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }\n  return local_40;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "bool bVar2;" primitive_type identifier ;) (declaration "WORD_LIST *pWVar3;" type_identifier (pointer_declarator "*pWVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (declaration "int *piVar7;" primitive_type (pointer_declarator "*piVar7" * identifier) ;) (declaration "char *pcVar8;" primitive_type (pointer_declarator "*pcVar8" * identifier) ;) (declaration "char *pcVar9;" primitive_type (pointer_declarator "*pcVar9" * identifier) ;) (declaration "char *newdir;" primitive_type (pointer_declarator "*newdir" * identifier) ;) (declaration "int extraout_ECX;" primitive_type identifier ;) (declaration "int xattr;" primitive_type identifier ;) (declaration "int xattr_00;" primitive_type identifier ;) (declaration "int xattr_01;" primitive_type identifier ;) (declaration "int xattr_02;" primitive_type identifier ;) (declaration "int extraout_ECX_00;" primitive_type identifier ;) (declaration "int xattr_03;" primitive_type identifier ;) (declaration "int extraout_ECX_01;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "bool bVar11;" primitive_type identifier ;) (declaration "int local_40;" primitive_type identifier ;) (declaration "int path_index;" primitive_type identifier ;) (declaration "int local_20;" primitive_type identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "iVar10 = no_symbolic_links;" (assignment_expression "iVar10 = no_symbolic_links" identifier = identifier) ;) (expression_statement "uStack_14 = 0x9ab09;" (assignment_expression "uStack_14 = 0x9ab09" identifier = number_literal) ;) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (restricted != 0) {\n    sh_restricted((char *)0x0);\n    local_40 = 1;\n    goto LAB_0009ab97;\n  }" if (parenthesized_expression "(restricted != 0)" ( (binary_expression "restricted != 0" identifier != number_literal) )) (compound_statement "{\n    sh_restricted((char *)0x0);\n    local_40 = 1;\n    goto LAB_0009ab97;\n  }" { (expression_statement "sh_restricted((char *)0x0);" (call_expression "sh_restricted((char *)0x0)" identifier (argument_list "((char *)0x0)" ( (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ))) ;) (expression_statement "local_40 = 1;" (assignment_expression "local_40 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_0009ab97;" goto statement_identifier ;) })) (expression_statement "eflag = 0;" (assignment_expression "eflag = 0" identifier = number_literal) ;) (expression_statement "reset_internal_getopt();" (call_expression "reset_internal_getopt()" identifier (argument_list "()" ( ))) ;) (while_statement "while (iVar4 = internal_getopt(list,"eLP"), pWVar3 = loptend, iVar4 != -1) {\n    if (iVar4 == 0x4c) {\n      iVar10 = 0;\n    }\n    else {\n      if (iVar4 < 0x4d) {\n        if (iVar4 == -99) {\n          builtin_help();\n          local_40 = 0x102;\n        }\n        else {\nLAB_0009abd8:\n          builtin_usage();\n          local_40 = 0x102;\n        }\n        goto LAB_0009ab97;\n      }\n      if (iVar4 == 0x50) {\n        iVar10 = 1;\n      }\n      else {\n        if (iVar4 != 0x65) goto LAB_0009abd8;\n        eflag = 1;\n      }\n    }\n  }" while (parenthesized_expression "(iVar4 = internal_getopt(list,"eLP"), pWVar3 = loptend, iVar4 != -1)" ( (comma_expression "iVar4 = internal_getopt(list,"eLP"), pWVar3 = loptend, iVar4 != -1" (assignment_expression "iVar4 = internal_getopt(list,"eLP")" identifier = (call_expression "internal_getopt(list,"eLP")" identifier (argument_list "(list,"eLP")" ( identifier , (string_literal ""eLP"" " string_content ") )))) , (comma_expression "pWVar3 = loptend, iVar4 != -1" (assignment_expression "pWVar3 = loptend" identifier = identifier) , (binary_expression "iVar4 != -1" identifier != number_literal))) )) (compound_statement "{\n    if (iVar4 == 0x4c) {\n      iVar10 = 0;\n    }\n    else {\n      if (iVar4 < 0x4d) {\n        if (iVar4 == -99) {\n          builtin_help();\n          local_40 = 0x102;\n        }\n        else {\nLAB_0009abd8:\n          builtin_usage();\n          local_40 = 0x102;\n        }\n        goto LAB_0009ab97;\n      }\n      if (iVar4 == 0x50) {\n        iVar10 = 1;\n      }\n      else {\n        if (iVar4 != 0x65) goto LAB_0009abd8;\n        eflag = 1;\n      }\n    }\n  }" { (if_statement "if (iVar4 == 0x4c) {\n      iVar10 = 0;\n    }\n    else {\n      if (iVar4 < 0x4d) {\n        if (iVar4 == -99) {\n          builtin_help();\n          local_40 = 0x102;\n        }\n        else {\nLAB_0009abd8:\n          builtin_usage();\n          local_40 = 0x102;\n        }\n        goto LAB_0009ab97;\n      }\n      if (iVar4 == 0x50) {\n        iVar10 = 1;\n      }\n      else {\n        if (iVar4 != 0x65) goto LAB_0009abd8;\n        eflag = 1;\n      }\n    }" if (parenthesized_expression "(iVar4 == 0x4c)" ( (binary_expression "iVar4 == 0x4c" identifier == number_literal) )) (compound_statement "{\n      iVar10 = 0;\n    }" { (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      if (iVar4 < 0x4d) {\n        if (iVar4 == -99) {\n          builtin_help();\n          local_40 = 0x102;\n        }\n        else {\nLAB_0009abd8:\n          builtin_usage();\n          local_40 = 0x102;\n        }\n        goto LAB_0009ab97;\n      }\n      if (iVar4 == 0x50) {\n        iVar10 = 1;\n      }\n      else {\n        if (iVar4 != 0x65) goto LAB_0009abd8;\n        eflag = 1;\n      }\n    }" else (compound_statement "{\n      if (iVar4 < 0x4d) {\n        if (iVar4 == -99) {\n          builtin_help();\n          local_40 = 0x102;\n        }\n        else {\nLAB_0009abd8:\n          builtin_usage();\n          local_40 = 0x102;\n        }\n        goto LAB_0009ab97;\n      }\n      if (iVar4 == 0x50) {\n        iVar10 = 1;\n      }\n      else {\n        if (iVar4 != 0x65) goto LAB_0009abd8;\n        eflag = 1;\n      }\n    }" { (if_statement "if (iVar4 < 0x4d) {\n        if (iVar4 == -99) {\n          builtin_help();\n          local_40 = 0x102;\n        }\n        else {\nLAB_0009abd8:\n          builtin_usage();\n          local_40 = 0x102;\n        }\n        goto LAB_0009ab97;\n      }" if (parenthesized_expression "(iVar4 < 0x4d)" ( (binary_expression "iVar4 < 0x4d" identifier < number_literal) )) (compound_statement "{\n        if (iVar4 == -99) {\n          builtin_help();\n          local_40 = 0x102;\n        }\n        else {\nLAB_0009abd8:\n          builtin_usage();\n          local_40 = 0x102;\n        }\n        goto LAB_0009ab97;\n      }" { (if_statement "if (iVar4 == -99) {\n          builtin_help();\n          local_40 = 0x102;\n        }\n        else {\nLAB_0009abd8:\n          builtin_usage();\n          local_40 = 0x102;\n        }" if (parenthesized_expression "(iVar4 == -99)" ( (binary_expression "iVar4 == -99" identifier == number_literal) )) (compound_statement "{\n          builtin_help();\n          local_40 = 0x102;\n        }" { (expression_statement "builtin_help();" (call_expression "builtin_help()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_40 = 0x102;" (assignment_expression "local_40 = 0x102" identifier = number_literal) ;) }) (else_clause "else {\nLAB_0009abd8:\n          builtin_usage();\n          local_40 = 0x102;\n        }" else (compound_statement "{\nLAB_0009abd8:\n          builtin_usage();\n          local_40 = 0x102;\n        }" { (labeled_statement "LAB_0009abd8:\n          builtin_usage();" statement_identifier : (expression_statement "builtin_usage();" (call_expression "builtin_usage()" identifier (argument_list "()" ( ))) ;)) (expression_statement "local_40 = 0x102;" (assignment_expression "local_40 = 0x102" identifier = number_literal) ;) }))) (goto_statement "goto LAB_0009ab97;" goto statement_identifier ;) })) (if_statement "if (iVar4 == 0x50) {\n        iVar10 = 1;\n      }\n      else {\n        if (iVar4 != 0x65) goto LAB_0009abd8;\n        eflag = 1;\n      }" if (parenthesized_expression "(iVar4 == 0x50)" ( (binary_expression "iVar4 == 0x50" identifier == number_literal) )) (compound_statement "{\n        iVar10 = 1;\n      }" { (expression_statement "iVar10 = 1;" (assignment_expression "iVar10 = 1" identifier = number_literal) ;) }) (else_clause "else {\n        if (iVar4 != 0x65) goto LAB_0009abd8;\n        eflag = 1;\n      }" else (compound_statement "{\n        if (iVar4 != 0x65) goto LAB_0009abd8;\n        eflag = 1;\n      }" { (if_statement "if (iVar4 != 0x65) goto LAB_0009abd8;" if (parenthesized_expression "(iVar4 != 0x65)" ( (binary_expression "iVar4 != 0x65" identifier != number_literal) )) (goto_statement "goto LAB_0009abd8;" goto statement_identifier ;)) (expression_statement "eflag = 1;" (assignment_expression "eflag = 1" identifier = number_literal) ;) }))) }))) })) (expression_statement "bVar11 = cdable_vars != 0;" (assignment_expression "bVar11 = cdable_vars != 0" identifier = (binary_expression "cdable_vars != 0" identifier != number_literal)) ;) (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" identifier = false) ;) (if_statement "if ((interactive != 0) && (cdspelling != 0)) {\n    bVar2 = true;\n  }" if (parenthesized_expression "((interactive != 0) && (cdspelling != 0))" ( (binary_expression "(interactive != 0) && (cdspelling != 0)" (parenthesized_expression "(interactive != 0)" ( (binary_expression "interactive != 0" identifier != number_literal) )) && (parenthesized_expression "(cdspelling != 0)" ( (binary_expression "cdspelling != 0" identifier != number_literal) ))) )) (compound_statement "{\n    bVar2 = true;\n  }" { (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" identifier = true) ;) })) (if_statement "if ((eflag != 0) && (iVar10 == 0)) {\n    eflag = 0;\n  }" if (parenthesized_expression "((eflag != 0) && (iVar10 == 0))" ( (binary_expression "(eflag != 0) && (iVar10 == 0)" (parenthesized_expression "(eflag != 0)" ( (binary_expression "eflag != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) ))) )) (compound_statement "{\n    eflag = 0;\n  }" { (expression_statement "eflag = 0;" (assignment_expression "eflag = 0" identifier = number_literal) ;) })) (if_statement "if (loptend == (WORD_LIST *)0x0) {\n    pcVar9 = get_string_value("HOME");\n    if (pcVar9 != (char *)0x0) {\n      iVar4 = change_to_directory(pcVar9,iVar10,xattr_00);\n      if (iVar4 != 0) goto LAB_0009ad5e;\n      goto LAB_0009ace1;\n    }\n    pcVar9 = "HOME not set";\n  }\n  else {\n    if (loptend->next == (word_list *)0x0) {\n      pcVar9 = loptend->word->word;\n      if ((*pcVar9 == '-') && (pcVar9[1] == '\0')) {\n        pcVar9 = get_string_value("OLDPWD");\n        if (pcVar9 == (char *)0x0) {\n          pcVar9 = "OLDPWD not set";\n          goto LAB_0009ad7b;\n        }\n        iVar4 = change_to_directory(pcVar9,iVar10,xattr_02);\n        if (iVar4 != 0) {\n          puts(pcVar9);\n          goto LAB_0009ad5e;\n        }\n      }\n      else {\n        iVar5 = absolute_pathname(pcVar9);\n        iVar4 = extraout_ECX;\n        if ((iVar5 == 0) &&\n           ((privileged_mode == 0 &&\n            (pcVar6 = get_string_value("CDPATH"), iVar4 = extraout_ECX_00, pcVar6 != (char *)0x0))))\n        {\n          pcVar9 = pWVar3->word->word;\n          path_index = 0;\n          while (pcVar8 = extract_colon_unit(pcVar6,&path_index), iVar4 = extraout_ECX_01,\n                pcVar8 != (char *)0x0) {\n            cVar1 = *pcVar8;\n            newdir = sh_makepath(pcVar8,pcVar9,1);\n            free(pcVar8);\n            iVar4 = change_to_directory(newdir,iVar10,xattr_03);\n            if (iVar4 != 0) {\n              if (cVar1 != '\0') {\n                pcVar9 = newdir;\n                if (iVar10 == 0) {\n                  pcVar9 = the_current_working_directory;\n                }\n                if (pcVar9 != (char *)0x0) {\n                  puts(pcVar9);\n                }\n              }\n              free(newdir);\n              local_40 = bindpwd(iVar10);\n              goto LAB_0009ab97;\n            }\n            free(newdir);\n          }\n        }\n        else {\n          pcVar9 = pWVar3->word->word;\n        }\n        iVar4 = change_to_directory(pcVar9,iVar10,iVar4);\n        if (iVar4 != 0) {\nLAB_0009ad5e:\n          local_40 = bindpwd(iVar10);\n          goto LAB_0009ab97;\n        }\n        if (((bVar11) && (pcVar6 = get_string_value(pcVar9), pcVar6 != (char *)0x0)) &&\n           (iVar4 = change_to_directory(pcVar6,iVar10,xattr_01), iVar4 != 0)) {\n          puts(pcVar6);\n          local_40 = bindpwd(iVar10);\n          goto LAB_0009ab97;\n        }\n        if ((bVar2) && (pcVar6 = dirspell(pcVar9), pcVar6 != (char *)0x0)) {\n          iVar4 = change_to_directory(pcVar6,iVar10,xattr);\n          if (iVar4 != 0) {\n            puts(pcVar6);\n            free(pcVar6);\n            local_40 = bindpwd(iVar10);\n            goto LAB_0009ab97;\n          }\n          free(pcVar6);\n        }\n      }\nLAB_0009ace1:\n      piVar7 = __errno_location();\n      iVar10 = *piVar7;\n      pcVar6 = printable_filename(pcVar9,0);\n      pcVar8 = strerror(iVar10);\n      builtin_error("%s: %s",pcVar6,pcVar8);\n      local_40 = 1;\n      if (pcVar6 != pcVar9) {\n        local_40 = 1;\n        free(pcVar6);\n      }\n      goto LAB_0009ab97;\n    }\n    pcVar9 = "too many arguments";\n  }" if (parenthesized_expression "(loptend == (WORD_LIST *)0x0)" ( (binary_expression "loptend == (WORD_LIST *)0x0" identifier == (cast_expression "(WORD_LIST *)0x0" ( (type_descriptor "WORD_LIST *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pcVar9 = get_string_value("HOME");\n    if (pcVar9 != (char *)0x0) {\n      iVar4 = change_to_directory(pcVar9,iVar10,xattr_00);\n      if (iVar4 != 0) goto LAB_0009ad5e;\n      goto LAB_0009ace1;\n    }\n    pcVar9 = "HOME not set";\n  }" { (expression_statement "pcVar9 = get_string_value("HOME");" (assignment_expression "pcVar9 = get_string_value("HOME")" identifier = (call_expression "get_string_value("HOME")" identifier (argument_list "("HOME")" ( (string_literal ""HOME"" " string_content ") )))) ;) (if_statement "if (pcVar9 != (char *)0x0) {\n      iVar4 = change_to_directory(pcVar9,iVar10,xattr_00);\n      if (iVar4 != 0) goto LAB_0009ad5e;\n      goto LAB_0009ace1;\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      iVar4 = change_to_directory(pcVar9,iVar10,xattr_00);\n      if (iVar4 != 0) goto LAB_0009ad5e;\n      goto LAB_0009ace1;\n    }" { (expression_statement "iVar4 = change_to_directory(pcVar9,iVar10,xattr_00);" (assignment_expression "iVar4 = change_to_directory(pcVar9,iVar10,xattr_00)" identifier = (call_expression "change_to_directory(pcVar9,iVar10,xattr_00)" identifier (argument_list "(pcVar9,iVar10,xattr_00)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar4 != 0) goto LAB_0009ad5e;" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0009ad5e;" goto statement_identifier ;)) (goto_statement "goto LAB_0009ace1;" goto statement_identifier ;) })) (expression_statement "pcVar9 = "HOME not set";" (assignment_expression "pcVar9 = "HOME not set"" identifier = (string_literal ""HOME not set"" " string_content ")) ;) }) (else_clause "else {\n    if (loptend->next == (word_list *)0x0) {\n      pcVar9 = loptend->word->word;\n      if ((*pcVar9 == '-') && (pcVar9[1] == '\0')) {\n        pcVar9 = get_string_value("OLDPWD");\n        if (pcVar9 == (char *)0x0) {\n          pcVar9 = "OLDPWD not set";\n          goto LAB_0009ad7b;\n        }\n        iVar4 = change_to_directory(pcVar9,iVar10,xattr_02);\n        if (iVar4 != 0) {\n          puts(pcVar9);\n          goto LAB_0009ad5e;\n        }\n      }\n      else {\n        iVar5 = absolute_pathname(pcVar9);\n        iVar4 = extraout_ECX;\n        if ((iVar5 == 0) &&\n           ((privileged_mode == 0 &&\n            (pcVar6 = get_string_value("CDPATH"), iVar4 = extraout_ECX_00, pcVar6 != (char *)0x0))))\n        {\n          pcVar9 = pWVar3->word->word;\n          path_index = 0;\n          while (pcVar8 = extract_colon_unit(pcVar6,&path_index), iVar4 = extraout_ECX_01,\n                pcVar8 != (char *)0x0) {\n            cVar1 = *pcVar8;\n            newdir = sh_makepath(pcVar8,pcVar9,1);\n            free(pcVar8);\n            iVar4 = change_to_directory(newdir,iVar10,xattr_03);\n            if (iVar4 != 0) {\n              if (cVar1 != '\0') {\n                pcVar9 = newdir;\n                if (iVar10 == 0) {\n                  pcVar9 = the_current_working_directory;\n                }\n                if (pcVar9 != (char *)0x0) {\n                  puts(pcVar9);\n                }\n              }\n              free(newdir);\n              local_40 = bindpwd(iVar10);\n              goto LAB_0009ab97;\n            }\n            free(newdir);\n          }\n        }\n        else {\n          pcVar9 = pWVar3->word->word;\n        }\n        iVar4 = change_to_directory(pcVar9,iVar10,iVar4);\n        if (iVar4 != 0) {\nLAB_0009ad5e:\n          local_40 = bindpwd(iVar10);\n          goto LAB_0009ab97;\n        }\n        if (((bVar11) && (pcVar6 = get_string_value(pcVar9), pcVar6 != (char *)0x0)) &&\n           (iVar4 = change_to_directory(pcVar6,iVar10,xattr_01), iVar4 != 0)) {\n          puts(pcVar6);\n          local_40 = bindpwd(iVar10);\n          goto LAB_0009ab97;\n        }\n        if ((bVar2) && (pcVar6 = dirspell(pcVar9), pcVar6 != (char *)0x0)) {\n          iVar4 = change_to_directory(pcVar6,iVar10,xattr);\n          if (iVar4 != 0) {\n            puts(pcVar6);\n            free(pcVar6);\n            local_40 = bindpwd(iVar10);\n            goto LAB_0009ab97;\n          }\n          free(pcVar6);\n        }\n      }\nLAB_0009ace1:\n      piVar7 = __errno_location();\n      iVar10 = *piVar7;\n      pcVar6 = printable_filename(pcVar9,0);\n      pcVar8 = strerror(iVar10);\n      builtin_error("%s: %s",pcVar6,pcVar8);\n      local_40 = 1;\n      if (pcVar6 != pcVar9) {\n        local_40 = 1;\n        free(pcVar6);\n      }\n      goto LAB_0009ab97;\n    }\n    pcVar9 = "too many arguments";\n  }" else (compound_statement "{\n    if (loptend->next == (word_list *)0x0) {\n      pcVar9 = loptend->word->word;\n      if ((*pcVar9 == '-') && (pcVar9[1] == '\0')) {\n        pcVar9 = get_string_value("OLDPWD");\n        if (pcVar9 == (char *)0x0) {\n          pcVar9 = "OLDPWD not set";\n          goto LAB_0009ad7b;\n        }\n        iVar4 = change_to_directory(pcVar9,iVar10,xattr_02);\n        if (iVar4 != 0) {\n          puts(pcVar9);\n          goto LAB_0009ad5e;\n        }\n      }\n      else {\n        iVar5 = absolute_pathname(pcVar9);\n        iVar4 = extraout_ECX;\n        if ((iVar5 == 0) &&\n           ((privileged_mode == 0 &&\n            (pcVar6 = get_string_value("CDPATH"), iVar4 = extraout_ECX_00, pcVar6 != (char *)0x0))))\n        {\n          pcVar9 = pWVar3->word->word;\n          path_index = 0;\n          while (pcVar8 = extract_colon_unit(pcVar6,&path_index), iVar4 = extraout_ECX_01,\n                pcVar8 != (char *)0x0) {\n            cVar1 = *pcVar8;\n            newdir = sh_makepath(pcVar8,pcVar9,1);\n            free(pcVar8);\n            iVar4 = change_to_directory(newdir,iVar10,xattr_03);\n            if (iVar4 != 0) {\n              if (cVar1 != '\0') {\n                pcVar9 = newdir;\n                if (iVar10 == 0) {\n                  pcVar9 = the_current_working_directory;\n                }\n                if (pcVar9 != (char *)0x0) {\n                  puts(pcVar9);\n                }\n              }\n              free(newdir);\n              local_40 = bindpwd(iVar10);\n              goto LAB_0009ab97;\n            }\n            free(newdir);\n          }\n        }\n        else {\n          pcVar9 = pWVar3->word->word;\n        }\n        iVar4 = change_to_directory(pcVar9,iVar10,iVar4);\n        if (iVar4 != 0) {\nLAB_0009ad5e:\n          local_40 = bindpwd(iVar10);\n          goto LAB_0009ab97;\n        }\n        if (((bVar11) && (pcVar6 = get_string_value(pcVar9), pcVar6 != (char *)0x0)) &&\n           (iVar4 = change_to_directory(pcVar6,iVar10,xattr_01), iVar4 != 0)) {\n          puts(pcVar6);\n          local_40 = bindpwd(iVar10);\n          goto LAB_0009ab97;\n        }\n        if ((bVar2) && (pcVar6 = dirspell(pcVar9), pcVar6 != (char *)0x0)) {\n          iVar4 = change_to_directory(pcVar6,iVar10,xattr);\n          if (iVar4 != 0) {\n            puts(pcVar6);\n            free(pcVar6);\n            local_40 = bindpwd(iVar10);\n            goto LAB_0009ab97;\n          }\n          free(pcVar6);\n        }\n      }\nLAB_0009ace1:\n      piVar7 = __errno_location();\n      iVar10 = *piVar7;\n      pcVar6 = printable_filename(pcVar9,0);\n      pcVar8 = strerror(iVar10);\n      builtin_error("%s: %s",pcVar6,pcVar8);\n      local_40 = 1;\n      if (pcVar6 != pcVar9) {\n        local_40 = 1;\n        free(pcVar6);\n      }\n      goto LAB_0009ab97;\n    }\n    pcVar9 = "too many arguments";\n  }" { (if_statement "if (loptend->next == (word_list *)0x0) {\n      pcVar9 = loptend->word->word;\n      if ((*pcVar9 == '-') && (pcVar9[1] == '\0')) {\n        pcVar9 = get_string_value("OLDPWD");\n        if (pcVar9 == (char *)0x0) {\n          pcVar9 = "OLDPWD not set";\n          goto LAB_0009ad7b;\n        }\n        iVar4 = change_to_directory(pcVar9,iVar10,xattr_02);\n        if (iVar4 != 0) {\n          puts(pcVar9);\n          goto LAB_0009ad5e;\n        }\n      }\n      else {\n        iVar5 = absolute_pathname(pcVar9);\n        iVar4 = extraout_ECX;\n        if ((iVar5 == 0) &&\n           ((privileged_mode == 0 &&\n            (pcVar6 = get_string_value("CDPATH"), iVar4 = extraout_ECX_00, pcVar6 != (char *)0x0))))\n        {\n          pcVar9 = pWVar3->word->word;\n          path_index = 0;\n          while (pcVar8 = extract_colon_unit(pcVar6,&path_index), iVar4 = extraout_ECX_01,\n                pcVar8 != (char *)0x0) {\n            cVar1 = *pcVar8;\n            newdir = sh_makepath(pcVar8,pcVar9,1);\n            free(pcVar8);\n            iVar4 = change_to_directory(newdir,iVar10,xattr_03);\n            if (iVar4 != 0) {\n              if (cVar1 != '\0') {\n                pcVar9 = newdir;\n                if (iVar10 == 0) {\n                  pcVar9 = the_current_working_directory;\n                }\n                if (pcVar9 != (char *)0x0) {\n                  puts(pcVar9);\n                }\n              }\n              free(newdir);\n              local_40 = bindpwd(iVar10);\n              goto LAB_0009ab97;\n            }\n            free(newdir);\n          }\n        }\n        else {\n          pcVar9 = pWVar3->word->word;\n        }\n        iVar4 = change_to_directory(pcVar9,iVar10,iVar4);\n        if (iVar4 != 0) {\nLAB_0009ad5e:\n          local_40 = bindpwd(iVar10);\n          goto LAB_0009ab97;\n        }\n        if (((bVar11) && (pcVar6 = get_string_value(pcVar9), pcVar6 != (char *)0x0)) &&\n           (iVar4 = change_to_directory(pcVar6,iVar10,xattr_01), iVar4 != 0)) {\n          puts(pcVar6);\n          local_40 = bindpwd(iVar10);\n          goto LAB_0009ab97;\n        }\n        if ((bVar2) && (pcVar6 = dirspell(pcVar9), pcVar6 != (char *)0x0)) {\n          iVar4 = change_to_directory(pcVar6,iVar10,xattr);\n          if (iVar4 != 0) {\n            puts(pcVar6);\n            free(pcVar6);\n            local_40 = bindpwd(iVar10);\n            goto LAB_0009ab97;\n          }\n          free(pcVar6);\n        }\n      }\nLAB_0009ace1:\n      piVar7 = __errno_location();\n      iVar10 = *piVar7;\n      pcVar6 = printable_filename(pcVar9,0);\n      pcVar8 = strerror(iVar10);\n      builtin_error("%s: %s",pcVar6,pcVar8);\n      local_40 = 1;\n      if (pcVar6 != pcVar9) {\n        local_40 = 1;\n        free(pcVar6);\n      }\n      goto LAB_0009ab97;\n    }" if (parenthesized_expression "(loptend->next == (word_list *)0x0)" ( (binary_expression "loptend->next == (word_list *)0x0" (field_expression "loptend->next" identifier -> field_identifier) == (cast_expression "(word_list *)0x0" ( (type_descriptor "word_list *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pcVar9 = loptend->word->word;\n      if ((*pcVar9 == '-') && (pcVar9[1] == '\0')) {\n        pcVar9 = get_string_value("OLDPWD");\n        if (pcVar9 == (char *)0x0) {\n          pcVar9 = "OLDPWD not set";\n          goto LAB_0009ad7b;\n        }\n        iVar4 = change_to_directory(pcVar9,iVar10,xattr_02);\n        if (iVar4 != 0) {\n          puts(pcVar9);\n          goto LAB_0009ad5e;\n        }\n      }\n      else {\n        iVar5 = absolute_pathname(pcVar9);\n        iVar4 = extraout_ECX;\n        if ((iVar5 == 0) &&\n           ((privileged_mode == 0 &&\n            (pcVar6 = get_string_value("CDPATH"), iVar4 = extraout_ECX_00, pcVar6 != (char *)0x0))))\n        {\n          pcVar9 = pWVar3->word->word;\n          path_index = 0;\n          while (pcVar8 = extract_colon_unit(pcVar6,&path_index), iVar4 = extraout_ECX_01,\n                pcVar8 != (char *)0x0) {\n            cVar1 = *pcVar8;\n            newdir = sh_makepath(pcVar8,pcVar9,1);\n            free(pcVar8);\n            iVar4 = change_to_directory(newdir,iVar10,xattr_03);\n            if (iVar4 != 0) {\n              if (cVar1 != '\0') {\n                pcVar9 = newdir;\n                if (iVar10 == 0) {\n                  pcVar9 = the_current_working_directory;\n                }\n                if (pcVar9 != (char *)0x0) {\n                  puts(pcVar9);\n                }\n              }\n              free(newdir);\n              local_40 = bindpwd(iVar10);\n              goto LAB_0009ab97;\n            }\n            free(newdir);\n          }\n        }\n        else {\n          pcVar9 = pWVar3->word->word;\n        }\n        iVar4 = change_to_directory(pcVar9,iVar10,iVar4);\n        if (iVar4 != 0) {\nLAB_0009ad5e:\n          local_40 = bindpwd(iVar10);\n          goto LAB_0009ab97;\n        }\n        if (((bVar11) && (pcVar6 = get_string_value(pcVar9), pcVar6 != (char *)0x0)) &&\n           (iVar4 = change_to_directory(pcVar6,iVar10,xattr_01), iVar4 != 0)) {\n          puts(pcVar6);\n          local_40 = bindpwd(iVar10);\n          goto LAB_0009ab97;\n        }\n        if ((bVar2) && (pcVar6 = dirspell(pcVar9), pcVar6 != (char *)0x0)) {\n          iVar4 = change_to_directory(pcVar6,iVar10,xattr);\n          if (iVar4 != 0) {\n            puts(pcVar6);\n            free(pcVar6);\n            local_40 = bindpwd(iVar10);\n            goto LAB_0009ab97;\n          }\n          free(pcVar6);\n        }\n      }\nLAB_0009ace1:\n      piVar7 = __errno_location();\n      iVar10 = *piVar7;\n      pcVar6 = printable_filename(pcVar9,0);\n      pcVar8 = strerror(iVar10);\n      builtin_error("%s: %s",pcVar6,pcVar8);\n      local_40 = 1;\n      if (pcVar6 != pcVar9) {\n        local_40 = 1;\n        free(pcVar6);\n      }\n      goto LAB_0009ab97;\n    }" { (expression_statement "pcVar9 = loptend->word->word;" (assignment_expression "pcVar9 = loptend->word->word" identifier = (field_expression "loptend->word->word" (field_expression "loptend->word" identifier -> field_identifier) -> field_identifier)) ;) (if_statement "if ((*pcVar9 == '-') && (pcVar9[1] == '\0')) {\n        pcVar9 = get_string_value("OLDPWD");\n        if (pcVar9 == (char *)0x0) {\n          pcVar9 = "OLDPWD not set";\n          goto LAB_0009ad7b;\n        }\n        iVar4 = change_to_directory(pcVar9,iVar10,xattr_02);\n        if (iVar4 != 0) {\n          puts(pcVar9);\n          goto LAB_0009ad5e;\n        }\n      }\n      else {\n        iVar5 = absolute_pathname(pcVar9);\n        iVar4 = extraout_ECX;\n        if ((iVar5 == 0) &&\n           ((privileged_mode == 0 &&\n            (pcVar6 = get_string_value("CDPATH"), iVar4 = extraout_ECX_00, pcVar6 != (char *)0x0))))\n        {\n          pcVar9 = pWVar3->word->word;\n          path_index = 0;\n          while (pcVar8 = extract_colon_unit(pcVar6,&path_index), iVar4 = extraout_ECX_01,\n                pcVar8 != (char *)0x0) {\n            cVar1 = *pcVar8;\n            newdir = sh_makepath(pcVar8,pcVar9,1);\n            free(pcVar8);\n            iVar4 = change_to_directory(newdir,iVar10,xattr_03);\n            if (iVar4 != 0) {\n              if (cVar1 != '\0') {\n                pcVar9 = newdir;\n                if (iVar10 == 0) {\n                  pcVar9 = the_current_working_directory;\n                }\n                if (pcVar9 != (char *)0x0) {\n                  puts(pcVar9);\n                }\n              }\n              free(newdir);\n              local_40 = bindpwd(iVar10);\n              goto LAB_0009ab97;\n            }\n            free(newdir);\n          }\n        }\n        else {\n          pcVar9 = pWVar3->word->word;\n        }\n        iVar4 = change_to_directory(pcVar9,iVar10,iVar4);\n        if (iVar4 != 0) {\nLAB_0009ad5e:\n          local_40 = bindpwd(iVar10);\n          goto LAB_0009ab97;\n        }\n        if (((bVar11) && (pcVar6 = get_string_value(pcVar9), pcVar6 != (char *)0x0)) &&\n           (iVar4 = change_to_directory(pcVar6,iVar10,xattr_01), iVar4 != 0)) {\n          puts(pcVar6);\n          local_40 = bindpwd(iVar10);\n          goto LAB_0009ab97;\n        }\n        if ((bVar2) && (pcVar6 = dirspell(pcVar9), pcVar6 != (char *)0x0)) {\n          iVar4 = change_to_directory(pcVar6,iVar10,xattr);\n          if (iVar4 != 0) {\n            puts(pcVar6);\n            free(pcVar6);\n            local_40 = bindpwd(iVar10);\n            goto LAB_0009ab97;\n          }\n          free(pcVar6);\n        }\n      }" if (parenthesized_expression "((*pcVar9 == '-') && (pcVar9[1] == '\0'))" ( (binary_expression "(*pcVar9 == '-') && (pcVar9[1] == '\0')" (parenthesized_expression "(*pcVar9 == '-')" ( (binary_expression "*pcVar9 == '-'" (pointer_expression "*pcVar9" * identifier) == (char_literal "'-'" ' character ')) )) && (parenthesized_expression "(pcVar9[1] == '\0')" ( (binary_expression "pcVar9[1] == '\0'" (subscript_expression "pcVar9[1]" identifier [ number_literal ]) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n        pcVar9 = get_string_value("OLDPWD");\n        if (pcVar9 == (char *)0x0) {\n          pcVar9 = "OLDPWD not set";\n          goto LAB_0009ad7b;\n        }\n        iVar4 = change_to_directory(pcVar9,iVar10,xattr_02);\n        if (iVar4 != 0) {\n          puts(pcVar9);\n          goto LAB_0009ad5e;\n        }\n      }" { (expression_statement "pcVar9 = get_string_value("OLDPWD");" (assignment_expression "pcVar9 = get_string_value("OLDPWD")" identifier = (call_expression "get_string_value("OLDPWD")" identifier (argument_list "("OLDPWD")" ( (string_literal ""OLDPWD"" " string_content ") )))) ;) (if_statement "if (pcVar9 == (char *)0x0) {\n          pcVar9 = "OLDPWD not set";\n          goto LAB_0009ad7b;\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          pcVar9 = "OLDPWD not set";\n          goto LAB_0009ad7b;\n        }" { (expression_statement "pcVar9 = "OLDPWD not set";" (assignment_expression "pcVar9 = "OLDPWD not set"" identifier = (string_literal ""OLDPWD not set"" " string_content ")) ;) (goto_statement "goto LAB_0009ad7b;" goto statement_identifier ;) })) (expression_statement "iVar4 = change_to_directory(pcVar9,iVar10,xattr_02);" (assignment_expression "iVar4 = change_to_directory(pcVar9,iVar10,xattr_02)" identifier = (call_expression "change_to_directory(pcVar9,iVar10,xattr_02)" identifier (argument_list "(pcVar9,iVar10,xattr_02)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar4 != 0) {\n          puts(pcVar9);\n          goto LAB_0009ad5e;\n        }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n          puts(pcVar9);\n          goto LAB_0009ad5e;\n        }" { (expression_statement "puts(pcVar9);" (call_expression "puts(pcVar9)" identifier (argument_list "(pcVar9)" ( identifier ))) ;) (goto_statement "goto LAB_0009ad5e;" goto statement_identifier ;) })) }) (else_clause "else {\n        iVar5 = absolute_pathname(pcVar9);\n        iVar4 = extraout_ECX;\n        if ((iVar5 == 0) &&\n           ((privileged_mode == 0 &&\n            (pcVar6 = get_string_value("CDPATH"), iVar4 = extraout_ECX_00, pcVar6 != (char *)0x0))))\n        {\n          pcVar9 = pWVar3->word->word;\n          path_index = 0;\n          while (pcVar8 = extract_colon_unit(pcVar6,&path_index), iVar4 = extraout_ECX_01,\n                pcVar8 != (char *)0x0) {\n            cVar1 = *pcVar8;\n            newdir = sh_makepath(pcVar8,pcVar9,1);\n            free(pcVar8);\n            iVar4 = change_to_directory(newdir,iVar10,xattr_03);\n            if (iVar4 != 0) {\n              if (cVar1 != '\0') {\n                pcVar9 = newdir;\n                if (iVar10 == 0) {\n                  pcVar9 = the_current_working_directory;\n                }\n                if (pcVar9 != (char *)0x0) {\n                  puts(pcVar9);\n                }\n              }\n              free(newdir);\n              local_40 = bindpwd(iVar10);\n              goto LAB_0009ab97;\n            }\n            free(newdir);\n          }\n        }\n        else {\n          pcVar9 = pWVar3->word->word;\n        }\n        iVar4 = change_to_directory(pcVar9,iVar10,iVar4);\n        if (iVar4 != 0) {\nLAB_0009ad5e:\n          local_40 = bindpwd(iVar10);\n          goto LAB_0009ab97;\n        }\n        if (((bVar11) && (pcVar6 = get_string_value(pcVar9), pcVar6 != (char *)0x0)) &&\n           (iVar4 = change_to_directory(pcVar6,iVar10,xattr_01), iVar4 != 0)) {\n          puts(pcVar6);\n          local_40 = bindpwd(iVar10);\n          goto LAB_0009ab97;\n        }\n        if ((bVar2) && (pcVar6 = dirspell(pcVar9), pcVar6 != (char *)0x0)) {\n          iVar4 = change_to_directory(pcVar6,iVar10,xattr);\n          if (iVar4 != 0) {\n            puts(pcVar6);\n            free(pcVar6);\n            local_40 = bindpwd(iVar10);\n            goto LAB_0009ab97;\n          }\n          free(pcVar6);\n        }\n      }" else (compound_statement "{\n        iVar5 = absolute_pathname(pcVar9);\n        iVar4 = extraout_ECX;\n        if ((iVar5 == 0) &&\n           ((privileged_mode == 0 &&\n            (pcVar6 = get_string_value("CDPATH"), iVar4 = extraout_ECX_00, pcVar6 != (char *)0x0))))\n        {\n          pcVar9 = pWVar3->word->word;\n          path_index = 0;\n          while (pcVar8 = extract_colon_unit(pcVar6,&path_index), iVar4 = extraout_ECX_01,\n                pcVar8 != (char *)0x0) {\n            cVar1 = *pcVar8;\n            newdir = sh_makepath(pcVar8,pcVar9,1);\n            free(pcVar8);\n            iVar4 = change_to_directory(newdir,iVar10,xattr_03);\n            if (iVar4 != 0) {\n              if (cVar1 != '\0') {\n                pcVar9 = newdir;\n                if (iVar10 == 0) {\n                  pcVar9 = the_current_working_directory;\n                }\n                if (pcVar9 != (char *)0x0) {\n                  puts(pcVar9);\n                }\n              }\n              free(newdir);\n              local_40 = bindpwd(iVar10);\n              goto LAB_0009ab97;\n            }\n            free(newdir);\n          }\n        }\n        else {\n          pcVar9 = pWVar3->word->word;\n        }\n        iVar4 = change_to_directory(pcVar9,iVar10,iVar4);\n        if (iVar4 != 0) {\nLAB_0009ad5e:\n          local_40 = bindpwd(iVar10);\n          goto LAB_0009ab97;\n        }\n        if (((bVar11) && (pcVar6 = get_string_value(pcVar9), pcVar6 != (char *)0x0)) &&\n           (iVar4 = change_to_directory(pcVar6,iVar10,xattr_01), iVar4 != 0)) {\n          puts(pcVar6);\n          local_40 = bindpwd(iVar10);\n          goto LAB_0009ab97;\n        }\n        if ((bVar2) && (pcVar6 = dirspell(pcVar9), pcVar6 != (char *)0x0)) {\n          iVar4 = change_to_directory(pcVar6,iVar10,xattr);\n          if (iVar4 != 0) {\n            puts(pcVar6);\n            free(pcVar6);\n            local_40 = bindpwd(iVar10);\n            goto LAB_0009ab97;\n          }\n          free(pcVar6);\n        }\n      }" { (expression_statement "iVar5 = absolute_pathname(pcVar9);" (assignment_expression "iVar5 = absolute_pathname(pcVar9)" identifier = (call_expression "absolute_pathname(pcVar9)" identifier (argument_list "(pcVar9)" ( identifier )))) ;) (expression_statement "iVar4 = extraout_ECX;" (assignment_expression "iVar4 = extraout_ECX" identifier = identifier) ;) (if_statement "if ((iVar5 == 0) &&\n           ((privileged_mode == 0 &&\n            (pcVar6 = get_string_value("CDPATH"), iVar4 = extraout_ECX_00, pcVar6 != (char *)0x0))))\n        {\n          pcVar9 = pWVar3->word->word;\n          path_index = 0;\n          while (pcVar8 = extract_colon_unit(pcVar6,&path_index), iVar4 = extraout_ECX_01,\n                pcVar8 != (char *)0x0) {\n            cVar1 = *pcVar8;\n            newdir = sh_makepath(pcVar8,pcVar9,1);\n            free(pcVar8);\n            iVar4 = change_to_directory(newdir,iVar10,xattr_03);\n            if (iVar4 != 0) {\n              if (cVar1 != '\0') {\n                pcVar9 = newdir;\n                if (iVar10 == 0) {\n                  pcVar9 = the_current_working_directory;\n                }\n                if (pcVar9 != (char *)0x0) {\n                  puts(pcVar9);\n                }\n              }\n              free(newdir);\n              local_40 = bindpwd(iVar10);\n              goto LAB_0009ab97;\n            }\n            free(newdir);\n          }\n        }\n        else {\n          pcVar9 = pWVar3->word->word;\n        }" if (parenthesized_expression "((iVar5 == 0) &&\n           ((privileged_mode == 0 &&\n            (pcVar6 = get_string_value("CDPATH"), iVar4 = extraout_ECX_00, pcVar6 != (char *)0x0))))" ( (binary_expression "(iVar5 == 0) &&\n           ((privileged_mode == 0 &&\n            (pcVar6 = get_string_value("CDPATH"), iVar4 = extraout_ECX_00, pcVar6 != (char *)0x0)))" (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) && (parenthesized_expression "((privileged_mode == 0 &&\n            (pcVar6 = get_string_value("CDPATH"), iVar4 = extraout_ECX_00, pcVar6 != (char *)0x0)))" ( (parenthesized_expression "(privileged_mode == 0 &&\n            (pcVar6 = get_string_value("CDPATH"), iVar4 = extraout_ECX_00, pcVar6 != (char *)0x0))" ( (binary_expression "privileged_mode == 0 &&\n            (pcVar6 = get_string_value("CDPATH"), iVar4 = extraout_ECX_00, pcVar6 != (char *)0x0)" (binary_expression "privileged_mode == 0" identifier == number_literal) && (parenthesized_expression "(pcVar6 = get_string_value("CDPATH"), iVar4 = extraout_ECX_00, pcVar6 != (char *)0x0)" ( (comma_expression "pcVar6 = get_string_value("CDPATH"), iVar4 = extraout_ECX_00, pcVar6 != (char *)0x0" (assignment_expression "pcVar6 = get_string_value("CDPATH")" identifier = (call_expression "get_string_value("CDPATH")" identifier (argument_list "("CDPATH")" ( (string_literal ""CDPATH"" " string_content ") )))) , (comma_expression "iVar4 = extraout_ECX_00, pcVar6 != (char *)0x0" (assignment_expression "iVar4 = extraout_ECX_00" identifier = identifier) , (binary_expression "pcVar6 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)))) ))) )) ))) )) (compound_statement "{\n          pcVar9 = pWVar3->word->word;\n          path_index = 0;\n          while (pcVar8 = extract_colon_unit(pcVar6,&path_index), iVar4 = extraout_ECX_01,\n                pcVar8 != (char *)0x0) {\n            cVar1 = *pcVar8;\n            newdir = sh_makepath(pcVar8,pcVar9,1);\n            free(pcVar8);\n            iVar4 = change_to_directory(newdir,iVar10,xattr_03);\n            if (iVar4 != 0) {\n              if (cVar1 != '\0') {\n                pcVar9 = newdir;\n                if (iVar10 == 0) {\n                  pcVar9 = the_current_working_directory;\n                }\n                if (pcVar9 != (char *)0x0) {\n                  puts(pcVar9);\n                }\n              }\n              free(newdir);\n              local_40 = bindpwd(iVar10);\n              goto LAB_0009ab97;\n            }\n            free(newdir);\n          }\n        }" { (expression_statement "pcVar9 = pWVar3->word->word;" (assignment_expression "pcVar9 = pWVar3->word->word" identifier = (field_expression "pWVar3->word->word" (field_expression "pWVar3->word" identifier -> field_identifier) -> field_identifier)) ;) (expression_statement "path_index = 0;" (assignment_expression "path_index = 0" identifier = number_literal) ;) (while_statement "while (pcVar8 = extract_colon_unit(pcVar6,&path_index), iVar4 = extraout_ECX_01,\n                pcVar8 != (char *)0x0) {\n            cVar1 = *pcVar8;\n            newdir = sh_makepath(pcVar8,pcVar9,1);\n            free(pcVar8);\n            iVar4 = change_to_directory(newdir,iVar10,xattr_03);\n            if (iVar4 != 0) {\n              if (cVar1 != '\0') {\n                pcVar9 = newdir;\n                if (iVar10 == 0) {\n                  pcVar9 = the_current_working_directory;\n                }\n                if (pcVar9 != (char *)0x0) {\n                  puts(pcVar9);\n                }\n              }\n              free(newdir);\n              local_40 = bindpwd(iVar10);\n              goto LAB_0009ab97;\n            }\n            free(newdir);\n          }" while (parenthesized_expression "(pcVar8 = extract_colon_unit(pcVar6,&path_index), iVar4 = extraout_ECX_01,\n                pcVar8 != (char *)0x0)" ( (comma_expression "pcVar8 = extract_colon_unit(pcVar6,&path_index), iVar4 = extraout_ECX_01,\n                pcVar8 != (char *)0x0" (assignment_expression "pcVar8 = extract_colon_unit(pcVar6,&path_index)" identifier = (call_expression "extract_colon_unit(pcVar6,&path_index)" identifier (argument_list "(pcVar6,&path_index)" ( identifier , (pointer_expression "&path_index" & identifier) )))) , (comma_expression "iVar4 = extraout_ECX_01,\n                pcVar8 != (char *)0x0" (assignment_expression "iVar4 = extraout_ECX_01" identifier = identifier) , (binary_expression "pcVar8 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)))) )) (compound_statement "{\n            cVar1 = *pcVar8;\n            newdir = sh_makepath(pcVar8,pcVar9,1);\n            free(pcVar8);\n            iVar4 = change_to_directory(newdir,iVar10,xattr_03);\n            if (iVar4 != 0) {\n              if (cVar1 != '\0') {\n                pcVar9 = newdir;\n                if (iVar10 == 0) {\n                  pcVar9 = the_current_working_directory;\n                }\n                if (pcVar9 != (char *)0x0) {\n                  puts(pcVar9);\n                }\n              }\n              free(newdir);\n              local_40 = bindpwd(iVar10);\n              goto LAB_0009ab97;\n            }\n            free(newdir);\n          }" { (expression_statement "cVar1 = *pcVar8;" (assignment_expression "cVar1 = *pcVar8" identifier = (pointer_expression "*pcVar8" * identifier)) ;) (expression_statement "newdir = sh_makepath(pcVar8,pcVar9,1);" (assignment_expression "newdir = sh_makepath(pcVar8,pcVar9,1)" identifier = (call_expression "sh_makepath(pcVar8,pcVar9,1)" identifier (argument_list "(pcVar8,pcVar9,1)" ( identifier , identifier , number_literal )))) ;) (expression_statement "free(pcVar8);" (call_expression "free(pcVar8)" identifier (argument_list "(pcVar8)" ( identifier ))) ;) (expression_statement "iVar4 = change_to_directory(newdir,iVar10,xattr_03);" (assignment_expression "iVar4 = change_to_directory(newdir,iVar10,xattr_03)" identifier = (call_expression "change_to_directory(newdir,iVar10,xattr_03)" identifier (argument_list "(newdir,iVar10,xattr_03)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar4 != 0) {\n              if (cVar1 != '\0') {\n                pcVar9 = newdir;\n                if (iVar10 == 0) {\n                  pcVar9 = the_current_working_directory;\n                }\n                if (pcVar9 != (char *)0x0) {\n                  puts(pcVar9);\n                }\n              }\n              free(newdir);\n              local_40 = bindpwd(iVar10);\n              goto LAB_0009ab97;\n            }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n              if (cVar1 != '\0') {\n                pcVar9 = newdir;\n                if (iVar10 == 0) {\n                  pcVar9 = the_current_working_directory;\n                }\n                if (pcVar9 != (char *)0x0) {\n                  puts(pcVar9);\n                }\n              }\n              free(newdir);\n              local_40 = bindpwd(iVar10);\n              goto LAB_0009ab97;\n            }" { (if_statement "if (cVar1 != '\0') {\n                pcVar9 = newdir;\n                if (iVar10 == 0) {\n                  pcVar9 = the_current_working_directory;\n                }\n                if (pcVar9 != (char *)0x0) {\n                  puts(pcVar9);\n                }\n              }" if (parenthesized_expression "(cVar1 != '\0')" ( (binary_expression "cVar1 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                pcVar9 = newdir;\n                if (iVar10 == 0) {\n                  pcVar9 = the_current_working_directory;\n                }\n                if (pcVar9 != (char *)0x0) {\n                  puts(pcVar9);\n                }\n              }" { (expression_statement "pcVar9 = newdir;" (assignment_expression "pcVar9 = newdir" identifier = identifier) ;) (if_statement "if (iVar10 == 0) {\n                  pcVar9 = the_current_working_directory;\n                }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n                  pcVar9 = the_current_working_directory;\n                }" { (expression_statement "pcVar9 = the_current_working_directory;" (assignment_expression "pcVar9 = the_current_working_directory" identifier = identifier) ;) })) (if_statement "if (pcVar9 != (char *)0x0) {\n                  puts(pcVar9);\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                  puts(pcVar9);\n                }" { (expression_statement "puts(pcVar9);" (call_expression "puts(pcVar9)" identifier (argument_list "(pcVar9)" ( identifier ))) ;) })) })) (expression_statement "free(newdir);" (call_expression "free(newdir)" identifier (argument_list "(newdir)" ( identifier ))) ;) (expression_statement "local_40 = bindpwd(iVar10);" (assignment_expression "local_40 = bindpwd(iVar10)" identifier = (call_expression "bindpwd(iVar10)" identifier (argument_list "(iVar10)" ( identifier )))) ;) (goto_statement "goto LAB_0009ab97;" goto statement_identifier ;) })) (expression_statement "free(newdir);" (call_expression "free(newdir)" identifier (argument_list "(newdir)" ( identifier ))) ;) })) }) (else_clause "else {\n          pcVar9 = pWVar3->word->word;\n        }" else (compound_statement "{\n          pcVar9 = pWVar3->word->word;\n        }" { (expression_statement "pcVar9 = pWVar3->word->word;" (assignment_expression "pcVar9 = pWVar3->word->word" identifier = (field_expression "pWVar3->word->word" (field_expression "pWVar3->word" identifier -> field_identifier) -> field_identifier)) ;) }))) (expression_statement "iVar4 = change_to_directory(pcVar9,iVar10,iVar4);" (assignment_expression "iVar4 = change_to_directory(pcVar9,iVar10,iVar4)" identifier = (call_expression "change_to_directory(pcVar9,iVar10,iVar4)" identifier (argument_list "(pcVar9,iVar10,iVar4)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar4 != 0) {\nLAB_0009ad5e:\n          local_40 = bindpwd(iVar10);\n          goto LAB_0009ab97;\n        }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_0009ad5e:\n          local_40 = bindpwd(iVar10);\n          goto LAB_0009ab97;\n        }" { (labeled_statement "LAB_0009ad5e:\n          local_40 = bindpwd(iVar10);" statement_identifier : (expression_statement "local_40 = bindpwd(iVar10);" (assignment_expression "local_40 = bindpwd(iVar10)" identifier = (call_expression "bindpwd(iVar10)" identifier (argument_list "(iVar10)" ( identifier )))) ;)) (goto_statement "goto LAB_0009ab97;" goto statement_identifier ;) })) (if_statement "if (((bVar11) && (pcVar6 = get_string_value(pcVar9), pcVar6 != (char *)0x0)) &&\n           (iVar4 = change_to_directory(pcVar6,iVar10,xattr_01), iVar4 != 0)) {\n          puts(pcVar6);\n          local_40 = bindpwd(iVar10);\n          goto LAB_0009ab97;\n        }" if (parenthesized_expression "(((bVar11) && (pcVar6 = get_string_value(pcVar9), pcVar6 != (char *)0x0)) &&\n           (iVar4 = change_to_directory(pcVar6,iVar10,xattr_01), iVar4 != 0))" ( (binary_expression "((bVar11) && (pcVar6 = get_string_value(pcVar9), pcVar6 != (char *)0x0)) &&\n           (iVar4 = change_to_directory(pcVar6,iVar10,xattr_01), iVar4 != 0)" (parenthesized_expression "((bVar11) && (pcVar6 = get_string_value(pcVar9), pcVar6 != (char *)0x0))" ( (binary_expression "(bVar11) && (pcVar6 = get_string_value(pcVar9), pcVar6 != (char *)0x0)" (parenthesized_expression "(bVar11)" ( identifier )) && (parenthesized_expression "(pcVar6 = get_string_value(pcVar9), pcVar6 != (char *)0x0)" ( (comma_expression "pcVar6 = get_string_value(pcVar9), pcVar6 != (char *)0x0" (assignment_expression "pcVar6 = get_string_value(pcVar9)" identifier = (call_expression "get_string_value(pcVar9)" identifier (argument_list "(pcVar9)" ( identifier )))) , (binary_expression "pcVar6 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) && (parenthesized_expression "(iVar4 = change_to_directory(pcVar6,iVar10,xattr_01), iVar4 != 0)" ( (comma_expression "iVar4 = change_to_directory(pcVar6,iVar10,xattr_01), iVar4 != 0" (assignment_expression "iVar4 = change_to_directory(pcVar6,iVar10,xattr_01)" identifier = (call_expression "change_to_directory(pcVar6,iVar10,xattr_01)" identifier (argument_list "(pcVar6,iVar10,xattr_01)" ( identifier , identifier , identifier )))) , (binary_expression "iVar4 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n          puts(pcVar6);\n          local_40 = bindpwd(iVar10);\n          goto LAB_0009ab97;\n        }" { (expression_statement "puts(pcVar6);" (call_expression "puts(pcVar6)" identifier (argument_list "(pcVar6)" ( identifier ))) ;) (expression_statement "local_40 = bindpwd(iVar10);" (assignment_expression "local_40 = bindpwd(iVar10)" identifier = (call_expression "bindpwd(iVar10)" identifier (argument_list "(iVar10)" ( identifier )))) ;) (goto_statement "goto LAB_0009ab97;" goto statement_identifier ;) })) (if_statement "if ((bVar2) && (pcVar6 = dirspell(pcVar9), pcVar6 != (char *)0x0)) {\n          iVar4 = change_to_directory(pcVar6,iVar10,xattr);\n          if (iVar4 != 0) {\n            puts(pcVar6);\n            free(pcVar6);\n            local_40 = bindpwd(iVar10);\n            goto LAB_0009ab97;\n          }\n          free(pcVar6);\n        }" if (parenthesized_expression "((bVar2) && (pcVar6 = dirspell(pcVar9), pcVar6 != (char *)0x0))" ( (binary_expression "(bVar2) && (pcVar6 = dirspell(pcVar9), pcVar6 != (char *)0x0)" (parenthesized_expression "(bVar2)" ( identifier )) && (parenthesized_expression "(pcVar6 = dirspell(pcVar9), pcVar6 != (char *)0x0)" ( (comma_expression "pcVar6 = dirspell(pcVar9), pcVar6 != (char *)0x0" (assignment_expression "pcVar6 = dirspell(pcVar9)" identifier = (call_expression "dirspell(pcVar9)" identifier (argument_list "(pcVar9)" ( identifier )))) , (binary_expression "pcVar6 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n          iVar4 = change_to_directory(pcVar6,iVar10,xattr);\n          if (iVar4 != 0) {\n            puts(pcVar6);\n            free(pcVar6);\n            local_40 = bindpwd(iVar10);\n            goto LAB_0009ab97;\n          }\n          free(pcVar6);\n        }" { (expression_statement "iVar4 = change_to_directory(pcVar6,iVar10,xattr);" (assignment_expression "iVar4 = change_to_directory(pcVar6,iVar10,xattr)" identifier = (call_expression "change_to_directory(pcVar6,iVar10,xattr)" identifier (argument_list "(pcVar6,iVar10,xattr)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar4 != 0) {\n            puts(pcVar6);\n            free(pcVar6);\n            local_40 = bindpwd(iVar10);\n            goto LAB_0009ab97;\n          }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n            puts(pcVar6);\n            free(pcVar6);\n            local_40 = bindpwd(iVar10);\n            goto LAB_0009ab97;\n          }" { (expression_statement "puts(pcVar6);" (call_expression "puts(pcVar6)" identifier (argument_list "(pcVar6)" ( identifier ))) ;) (expression_statement "free(pcVar6);" (call_expression "free(pcVar6)" identifier (argument_list "(pcVar6)" ( identifier ))) ;) (expression_statement "local_40 = bindpwd(iVar10);" (assignment_expression "local_40 = bindpwd(iVar10)" identifier = (call_expression "bindpwd(iVar10)" identifier (argument_list "(iVar10)" ( identifier )))) ;) (goto_statement "goto LAB_0009ab97;" goto statement_identifier ;) })) (expression_statement "free(pcVar6);" (call_expression "free(pcVar6)" identifier (argument_list "(pcVar6)" ( identifier ))) ;) })) }))) (labeled_statement "LAB_0009ace1:\n      piVar7 = __errno_location();" statement_identifier : (expression_statement "piVar7 = __errno_location();" (assignment_expression "piVar7 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;)) (expression_statement "iVar10 = *piVar7;" (assignment_expression "iVar10 = *piVar7" identifier = (pointer_expression "*piVar7" * identifier)) ;) (expression_statement "pcVar6 = printable_filename(pcVar9,0);" (assignment_expression "pcVar6 = printable_filename(pcVar9,0)" identifier = (call_expression "printable_filename(pcVar9,0)" identifier (argument_list "(pcVar9,0)" ( identifier , number_literal )))) ;) (expression_statement "pcVar8 = strerror(iVar10);" (assignment_expression "pcVar8 = strerror(iVar10)" identifier = (call_expression "strerror(iVar10)" identifier (argument_list "(iVar10)" ( identifier )))) ;) (expression_statement "builtin_error("%s: %s",pcVar6,pcVar8);" (call_expression "builtin_error("%s: %s",pcVar6,pcVar8)" identifier (argument_list "("%s: %s",pcVar6,pcVar8)" ( (string_literal ""%s: %s"" " string_content ") , identifier , identifier ))) ;) (expression_statement "local_40 = 1;" (assignment_expression "local_40 = 1" identifier = number_literal) ;) (if_statement "if (pcVar6 != pcVar9) {\n        local_40 = 1;\n        free(pcVar6);\n      }" if (parenthesized_expression "(pcVar6 != pcVar9)" ( (binary_expression "pcVar6 != pcVar9" identifier != identifier) )) (compound_statement "{\n        local_40 = 1;\n        free(pcVar6);\n      }" { (expression_statement "local_40 = 1;" (assignment_expression "local_40 = 1" identifier = number_literal) ;) (expression_statement "free(pcVar6);" (call_expression "free(pcVar6)" identifier (argument_list "(pcVar6)" ( identifier ))) ;) })) (goto_statement "goto LAB_0009ab97;" goto statement_identifier ;) })) (expression_statement "pcVar9 = "too many arguments";" (assignment_expression "pcVar9 = "too many arguments"" identifier = (string_literal ""too many arguments"" " string_content ")) ;) }))) (labeled_statement "LAB_0009ad7b:\n  pcVar9 = (char *)dcgettext(0,pcVar9,5);" statement_identifier : (expression_statement "pcVar9 = (char *)dcgettext(0,pcVar9,5);" (assignment_expression "pcVar9 = (char *)dcgettext(0,pcVar9,5)" identifier = (cast_expression "(char *)dcgettext(0,pcVar9,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,pcVar9,5)" identifier (argument_list "(0,pcVar9,5)" ( number_literal , identifier , number_literal ))))) ;)) (expression_statement "builtin_error(pcVar9);" (call_expression "builtin_error(pcVar9)" identifier (argument_list "(pcVar9)" ( identifier ))) ;) (expression_statement "local_40 = 1;" (assignment_expression "local_40 = 1" identifier = number_literal) ;) (labeled_statement "LAB_0009ab97:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }" statement_identifier : (if_statement "if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }" if (parenthesized_expression "(local_20 != *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_20 != *(int *)(in_GS_OFFSET + 0x14)" identifier != (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }" { comment (expression_statement "__stack_chk_fail_local();" (call_expression "__stack_chk_fail_local()" identifier (argument_list "()" ( ))) ;) }))) (return_statement "return local_40;" return identifier ;) })))
(translation_unit "undefined4 cd_builtin(undefined4 param_1)\n\n{\n  char cVar1;\n  bool bVar2;\n  int iVar3;\n  char *pcVar4;\n  int *piVar5;\n  char *pcVar6;\n  undefined4 uVar7;\n  char *pcVar8;\n  int iVar9;\n  int iVar10;\n  int in_GS_OFFSET;\n  bool bVar11;\n  undefined4 local_40;\n  undefined4 local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  iVar10 = no_symbolic_links;\n  uStack_14 = 0x9ab09;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (restricted != 0) {\n    sh_restricted(0);\n    local_40 = 1;\n    goto LAB_0009ab97;\n  }\n  DAT_00151658 = 0;\n  reset_internal_getopt();\n  while (iVar3 = internal_getopt(param_1,&DAT_001017d8), piVar5 = loptend, iVar3 != -1) {\n    if (iVar3 == 0x4c) {\n      iVar10 = 0;\n    }\n    else {\n      if (iVar3 < 0x4d) {\n        if (iVar3 == -99) {\n          builtin_help();\n          local_40 = 0x102;\n        }\n        else {\nLAB_0009abd8:\n          builtin_usage();\n          local_40 = 0x102;\n        }\n        goto LAB_0009ab97;\n      }\n      if (iVar3 == 0x50) {\n        iVar10 = 1;\n      }\n      else {\n        if (iVar3 != 0x65) goto LAB_0009abd8;\n        DAT_00151658 = 1;\n      }\n    }\n  }\n  bVar11 = cdable_vars != 0;\n  bVar2 = false;\n  if ((interactive != 0) && (cdspelling != 0)) {\n    bVar2 = true;\n  }\n  if ((DAT_00151658 != 0) && (iVar10 == 0)) {\n    DAT_00151658 = 0;\n  }\n  if (loptend == (int *)0x0) {\n    pcVar8 = (char *)get_string_value(&DAT_000ed68b);\n    if (pcVar8 != (char *)0x0) {\n      iVar10 = FUN_0009a830();\n      if (iVar10 != 0) goto LAB_0009ad5e;\n      goto LAB_0009ace1;\n    }\n    pcVar8 = "HOME not set";\n  }\n  else {\n    if (*loptend == 0) {\n      pcVar8 = *(char **)loptend[1];\n      if ((*pcVar8 == '-') && (pcVar8[1] == '\0')) {\n        pcVar8 = (char *)get_string_value(&DAT_000ef147);\n        if (pcVar8 == (char *)0x0) {\n          pcVar8 = "OLDPWD not set";\n          goto LAB_0009ad7b;\n        }\n        iVar10 = FUN_0009a830();\n        if (iVar10 != 0) {\n          puts(pcVar8);\n          goto LAB_0009ad5e;\n        }\n      }\n      else {\n        iVar3 = absolute_pathname(pcVar8);\n        if ((iVar3 == 0) &&\n           ((privileged_mode == 0 && (iVar3 = get_string_value("CDPATH"), iVar3 != 0)))) {\n          pcVar8 = *(char **)piVar5[1];\n          local_24 = 0;\n          while (pcVar4 = (char *)extract_colon_unit(iVar3,&local_24), pcVar4 != (char *)0x0) {\n            cVar1 = *pcVar4;\n            pcVar6 = (char *)sh_makepath(pcVar4,pcVar8,1);\n            free(pcVar4);\n            iVar9 = FUN_0009a830();\n            if (iVar9 != 0) {\n              if (cVar1 != '\0') {\n                pcVar8 = pcVar6;\n                if (iVar10 == 0) {\n                  pcVar8 = the_current_working_directory;\n                }\n                if (pcVar8 != (char *)0x0) {\n                  puts(pcVar8);\n                }\n              }\n              free(pcVar6);\n              local_40 = FUN_0009a6e0();\n              goto LAB_0009ab97;\n            }\n            free(pcVar6);\n          }\n        }\n        else {\n          pcVar8 = *(char **)piVar5[1];\n        }\n        iVar10 = FUN_0009a830();\n        if (iVar10 != 0) {\nLAB_0009ad5e:\n          local_40 = FUN_0009a6e0();\n          goto LAB_0009ab97;\n        }\n        if (((bVar11) && (pcVar4 = (char *)get_string_value(pcVar8), pcVar4 != (char *)0x0)) &&\n           (iVar10 = FUN_0009a830(), iVar10 != 0)) {\n          puts(pcVar4);\n          local_40 = FUN_0009a6e0();\n          goto LAB_0009ab97;\n        }\n        if ((bVar2) && (pcVar4 = (char *)dirspell(pcVar8), pcVar4 != (char *)0x0)) {\n          iVar10 = FUN_0009a830();\n          if (iVar10 != 0) {\n            puts(pcVar4);\n            free(pcVar4);\n            local_40 = FUN_0009a6e0();\n            goto LAB_0009ab97;\n          }\n          free(pcVar4);\n        }\n      }\nLAB_0009ace1:\n      piVar5 = __errno_location();\n      iVar10 = *piVar5;\n      pcVar4 = (char *)printable_filename(pcVar8,0);\n      pcVar6 = strerror(iVar10);\n      builtin_error("%s: %s",pcVar4,pcVar6);\n      local_40 = 1;\n      if (pcVar4 != pcVar8) {\n        local_40 = 1;\n        free(pcVar4);\n      }\n      goto LAB_0009ab97;\n    }\n    pcVar8 = "too many arguments";\n  }\nLAB_0009ad7b:\n  uVar7 = dcgettext(0,pcVar8,5);\n  builtin_error(uVar7);\n  local_40 = 1;\nLAB_0009ab97:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_000ecc40();\n  }\n  return local_40;\n}\n\n" (function_definition "undefined4 cd_builtin(undefined4 param_1)\n\n{\n  char cVar1;\n  bool bVar2;\n  int iVar3;\n  char *pcVar4;\n  int *piVar5;\n  char *pcVar6;\n  undefined4 uVar7;\n  char *pcVar8;\n  int iVar9;\n  int iVar10;\n  int in_GS_OFFSET;\n  bool bVar11;\n  undefined4 local_40;\n  undefined4 local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  iVar10 = no_symbolic_links;\n  uStack_14 = 0x9ab09;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (restricted != 0) {\n    sh_restricted(0);\n    local_40 = 1;\n    goto LAB_0009ab97;\n  }\n  DAT_00151658 = 0;\n  reset_internal_getopt();\n  while (iVar3 = internal_getopt(param_1,&DAT_001017d8), piVar5 = loptend, iVar3 != -1) {\n    if (iVar3 == 0x4c) {\n      iVar10 = 0;\n    }\n    else {\n      if (iVar3 < 0x4d) {\n        if (iVar3 == -99) {\n          builtin_help();\n          local_40 = 0x102;\n        }\n        else {\nLAB_0009abd8:\n          builtin_usage();\n          local_40 = 0x102;\n        }\n        goto LAB_0009ab97;\n      }\n      if (iVar3 == 0x50) {\n        iVar10 = 1;\n      }\n      else {\n        if (iVar3 != 0x65) goto LAB_0009abd8;\n        DAT_00151658 = 1;\n      }\n    }\n  }\n  bVar11 = cdable_vars != 0;\n  bVar2 = false;\n  if ((interactive != 0) && (cdspelling != 0)) {\n    bVar2 = true;\n  }\n  if ((DAT_00151658 != 0) && (iVar10 == 0)) {\n    DAT_00151658 = 0;\n  }\n  if (loptend == (int *)0x0) {\n    pcVar8 = (char *)get_string_value(&DAT_000ed68b);\n    if (pcVar8 != (char *)0x0) {\n      iVar10 = FUN_0009a830();\n      if (iVar10 != 0) goto LAB_0009ad5e;\n      goto LAB_0009ace1;\n    }\n    pcVar8 = "HOME not set";\n  }\n  else {\n    if (*loptend == 0) {\n      pcVar8 = *(char **)loptend[1];\n      if ((*pcVar8 == '-') && (pcVar8[1] == '\0')) {\n        pcVar8 = (char *)get_string_value(&DAT_000ef147);\n        if (pcVar8 == (char *)0x0) {\n          pcVar8 = "OLDPWD not set";\n          goto LAB_0009ad7b;\n        }\n        iVar10 = FUN_0009a830();\n        if (iVar10 != 0) {\n          puts(pcVar8);\n          goto LAB_0009ad5e;\n        }\n      }\n      else {\n        iVar3 = absolute_pathname(pcVar8);\n        if ((iVar3 == 0) &&\n           ((privileged_mode == 0 && (iVar3 = get_string_value("CDPATH"), iVar3 != 0)))) {\n          pcVar8 = *(char **)piVar5[1];\n          local_24 = 0;\n          while (pcVar4 = (char *)extract_colon_unit(iVar3,&local_24), pcVar4 != (char *)0x0) {\n            cVar1 = *pcVar4;\n            pcVar6 = (char *)sh_makepath(pcVar4,pcVar8,1);\n            free(pcVar4);\n            iVar9 = FUN_0009a830();\n            if (iVar9 != 0) {\n              if (cVar1 != '\0') {\n                pcVar8 = pcVar6;\n                if (iVar10 == 0) {\n                  pcVar8 = the_current_working_directory;\n                }\n                if (pcVar8 != (char *)0x0) {\n                  puts(pcVar8);\n                }\n              }\n              free(pcVar6);\n              local_40 = FUN_0009a6e0();\n              goto LAB_0009ab97;\n            }\n            free(pcVar6);\n          }\n        }\n        else {\n          pcVar8 = *(char **)piVar5[1];\n        }\n        iVar10 = FUN_0009a830();\n        if (iVar10 != 0) {\nLAB_0009ad5e:\n          local_40 = FUN_0009a6e0();\n          goto LAB_0009ab97;\n        }\n        if (((bVar11) && (pcVar4 = (char *)get_string_value(pcVar8), pcVar4 != (char *)0x0)) &&\n           (iVar10 = FUN_0009a830(), iVar10 != 0)) {\n          puts(pcVar4);\n          local_40 = FUN_0009a6e0();\n          goto LAB_0009ab97;\n        }\n        if ((bVar2) && (pcVar4 = (char *)dirspell(pcVar8), pcVar4 != (char *)0x0)) {\n          iVar10 = FUN_0009a830();\n          if (iVar10 != 0) {\n            puts(pcVar4);\n            free(pcVar4);\n            local_40 = FUN_0009a6e0();\n            goto LAB_0009ab97;\n          }\n          free(pcVar4);\n        }\n      }\nLAB_0009ace1:\n      piVar5 = __errno_location();\n      iVar10 = *piVar5;\n      pcVar4 = (char *)printable_filename(pcVar8,0);\n      pcVar6 = strerror(iVar10);\n      builtin_error("%s: %s",pcVar4,pcVar6);\n      local_40 = 1;\n      if (pcVar4 != pcVar8) {\n        local_40 = 1;\n        free(pcVar4);\n      }\n      goto LAB_0009ab97;\n    }\n    pcVar8 = "too many arguments";\n  }\nLAB_0009ad7b:\n  uVar7 = dcgettext(0,pcVar8,5);\n  builtin_error(uVar7);\n  local_40 = 1;\nLAB_0009ab97:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_000ecc40();\n  }\n  return local_40;\n}" type_identifier (function_declarator "cd_builtin(undefined4 param_1)" identifier (parameter_list "(undefined4 param_1)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) ))) (compound_statement "{\n  char cVar1;\n  bool bVar2;\n  int iVar3;\n  char *pcVar4;\n  int *piVar5;\n  char *pcVar6;\n  undefined4 uVar7;\n  char *pcVar8;\n  int iVar9;\n  int iVar10;\n  int in_GS_OFFSET;\n  bool bVar11;\n  undefined4 local_40;\n  undefined4 local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  iVar10 = no_symbolic_links;\n  uStack_14 = 0x9ab09;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (restricted != 0) {\n    sh_restricted(0);\n    local_40 = 1;\n    goto LAB_0009ab97;\n  }\n  DAT_00151658 = 0;\n  reset_internal_getopt();\n  while (iVar3 = internal_getopt(param_1,&DAT_001017d8), piVar5 = loptend, iVar3 != -1) {\n    if (iVar3 == 0x4c) {\n      iVar10 = 0;\n    }\n    else {\n      if (iVar3 < 0x4d) {\n        if (iVar3 == -99) {\n          builtin_help();\n          local_40 = 0x102;\n        }\n        else {\nLAB_0009abd8:\n          builtin_usage();\n          local_40 = 0x102;\n        }\n        goto LAB_0009ab97;\n      }\n      if (iVar3 == 0x50) {\n        iVar10 = 1;\n      }\n      else {\n        if (iVar3 != 0x65) goto LAB_0009abd8;\n        DAT_00151658 = 1;\n      }\n    }\n  }\n  bVar11 = cdable_vars != 0;\n  bVar2 = false;\n  if ((interactive != 0) && (cdspelling != 0)) {\n    bVar2 = true;\n  }\n  if ((DAT_00151658 != 0) && (iVar10 == 0)) {\n    DAT_00151658 = 0;\n  }\n  if (loptend == (int *)0x0) {\n    pcVar8 = (char *)get_string_value(&DAT_000ed68b);\n    if (pcVar8 != (char *)0x0) {\n      iVar10 = FUN_0009a830();\n      if (iVar10 != 0) goto LAB_0009ad5e;\n      goto LAB_0009ace1;\n    }\n    pcVar8 = "HOME not set";\n  }\n  else {\n    if (*loptend == 0) {\n      pcVar8 = *(char **)loptend[1];\n      if ((*pcVar8 == '-') && (pcVar8[1] == '\0')) {\n        pcVar8 = (char *)get_string_value(&DAT_000ef147);\n        if (pcVar8 == (char *)0x0) {\n          pcVar8 = "OLDPWD not set";\n          goto LAB_0009ad7b;\n        }\n        iVar10 = FUN_0009a830();\n        if (iVar10 != 0) {\n          puts(pcVar8);\n          goto LAB_0009ad5e;\n        }\n      }\n      else {\n        iVar3 = absolute_pathname(pcVar8);\n        if ((iVar3 == 0) &&\n           ((privileged_mode == 0 && (iVar3 = get_string_value("CDPATH"), iVar3 != 0)))) {\n          pcVar8 = *(char **)piVar5[1];\n          local_24 = 0;\n          while (pcVar4 = (char *)extract_colon_unit(iVar3,&local_24), pcVar4 != (char *)0x0) {\n            cVar1 = *pcVar4;\n            pcVar6 = (char *)sh_makepath(pcVar4,pcVar8,1);\n            free(pcVar4);\n            iVar9 = FUN_0009a830();\n            if (iVar9 != 0) {\n              if (cVar1 != '\0') {\n                pcVar8 = pcVar6;\n                if (iVar10 == 0) {\n                  pcVar8 = the_current_working_directory;\n                }\n                if (pcVar8 != (char *)0x0) {\n                  puts(pcVar8);\n                }\n              }\n              free(pcVar6);\n              local_40 = FUN_0009a6e0();\n              goto LAB_0009ab97;\n            }\n            free(pcVar6);\n          }\n        }\n        else {\n          pcVar8 = *(char **)piVar5[1];\n        }\n        iVar10 = FUN_0009a830();\n        if (iVar10 != 0) {\nLAB_0009ad5e:\n          local_40 = FUN_0009a6e0();\n          goto LAB_0009ab97;\n        }\n        if (((bVar11) && (pcVar4 = (char *)get_string_value(pcVar8), pcVar4 != (char *)0x0)) &&\n           (iVar10 = FUN_0009a830(), iVar10 != 0)) {\n          puts(pcVar4);\n          local_40 = FUN_0009a6e0();\n          goto LAB_0009ab97;\n        }\n        if ((bVar2) && (pcVar4 = (char *)dirspell(pcVar8), pcVar4 != (char *)0x0)) {\n          iVar10 = FUN_0009a830();\n          if (iVar10 != 0) {\n            puts(pcVar4);\n            free(pcVar4);\n            local_40 = FUN_0009a6e0();\n            goto LAB_0009ab97;\n          }\n          free(pcVar4);\n        }\n      }\nLAB_0009ace1:\n      piVar5 = __errno_location();\n      iVar10 = *piVar5;\n      pcVar4 = (char *)printable_filename(pcVar8,0);\n      pcVar6 = strerror(iVar10);\n      builtin_error("%s: %s",pcVar4,pcVar6);\n      local_40 = 1;\n      if (pcVar4 != pcVar8) {\n        local_40 = 1;\n        free(pcVar4);\n      }\n      goto LAB_0009ab97;\n    }\n    pcVar8 = "too many arguments";\n  }\nLAB_0009ad7b:\n  uVar7 = dcgettext(0,pcVar8,5);\n  builtin_error(uVar7);\n  local_40 = 1;\nLAB_0009ab97:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_000ecc40();\n  }\n  return local_40;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "bool bVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "char *pcVar4;" primitive_type (pointer_declarator "*pcVar4" * identifier) ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "char *pcVar8;" primitive_type (pointer_declarator "*pcVar8" * identifier) ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "bool bVar11;" primitive_type identifier ;) (declaration "undefined4 local_40;" type_identifier identifier ;) (declaration "undefined4 local_24;" type_identifier identifier ;) (declaration "int local_20;" primitive_type identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "iVar10 = no_symbolic_links;" (assignment_expression "iVar10 = no_symbolic_links" identifier = identifier) ;) (expression_statement "uStack_14 = 0x9ab09;" (assignment_expression "uStack_14 = 0x9ab09" identifier = number_literal) ;) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (restricted != 0) {\n    sh_restricted(0);\n    local_40 = 1;\n    goto LAB_0009ab97;\n  }" if (parenthesized_expression "(restricted != 0)" ( (binary_expression "restricted != 0" identifier != number_literal) )) (compound_statement "{\n    sh_restricted(0);\n    local_40 = 1;\n    goto LAB_0009ab97;\n  }" { (expression_statement "sh_restricted(0);" (call_expression "sh_restricted(0)" identifier (argument_list "(0)" ( number_literal ))) ;) (expression_statement "local_40 = 1;" (assignment_expression "local_40 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_0009ab97;" goto statement_identifier ;) })) (expression_statement "DAT_00151658 = 0;" (assignment_expression "DAT_00151658 = 0" identifier = number_literal) ;) (expression_statement "reset_internal_getopt();" (call_expression "reset_internal_getopt()" identifier (argument_list "()" ( ))) ;) (while_statement "while (iVar3 = internal_getopt(param_1,&DAT_001017d8), piVar5 = loptend, iVar3 != -1) {\n    if (iVar3 == 0x4c) {\n      iVar10 = 0;\n    }\n    else {\n      if (iVar3 < 0x4d) {\n        if (iVar3 == -99) {\n          builtin_help();\n          local_40 = 0x102;\n        }\n        else {\nLAB_0009abd8:\n          builtin_usage();\n          local_40 = 0x102;\n        }\n        goto LAB_0009ab97;\n      }\n      if (iVar3 == 0x50) {\n        iVar10 = 1;\n      }\n      else {\n        if (iVar3 != 0x65) goto LAB_0009abd8;\n        DAT_00151658 = 1;\n      }\n    }\n  }" while (parenthesized_expression "(iVar3 = internal_getopt(param_1,&DAT_001017d8), piVar5 = loptend, iVar3 != -1)" ( (comma_expression "iVar3 = internal_getopt(param_1,&DAT_001017d8), piVar5 = loptend, iVar3 != -1" (assignment_expression "iVar3 = internal_getopt(param_1,&DAT_001017d8)" identifier = (call_expression "internal_getopt(param_1,&DAT_001017d8)" identifier (argument_list "(param_1,&DAT_001017d8)" ( identifier , (pointer_expression "&DAT_001017d8" & identifier) )))) , (comma_expression "piVar5 = loptend, iVar3 != -1" (assignment_expression "piVar5 = loptend" identifier = identifier) , (binary_expression "iVar3 != -1" identifier != number_literal))) )) (compound_statement "{\n    if (iVar3 == 0x4c) {\n      iVar10 = 0;\n    }\n    else {\n      if (iVar3 < 0x4d) {\n        if (iVar3 == -99) {\n          builtin_help();\n          local_40 = 0x102;\n        }\n        else {\nLAB_0009abd8:\n          builtin_usage();\n          local_40 = 0x102;\n        }\n        goto LAB_0009ab97;\n      }\n      if (iVar3 == 0x50) {\n        iVar10 = 1;\n      }\n      else {\n        if (iVar3 != 0x65) goto LAB_0009abd8;\n        DAT_00151658 = 1;\n      }\n    }\n  }" { (if_statement "if (iVar3 == 0x4c) {\n      iVar10 = 0;\n    }\n    else {\n      if (iVar3 < 0x4d) {\n        if (iVar3 == -99) {\n          builtin_help();\n          local_40 = 0x102;\n        }\n        else {\nLAB_0009abd8:\n          builtin_usage();\n          local_40 = 0x102;\n        }\n        goto LAB_0009ab97;\n      }\n      if (iVar3 == 0x50) {\n        iVar10 = 1;\n      }\n      else {\n        if (iVar3 != 0x65) goto LAB_0009abd8;\n        DAT_00151658 = 1;\n      }\n    }" if (parenthesized_expression "(iVar3 == 0x4c)" ( (binary_expression "iVar3 == 0x4c" identifier == number_literal) )) (compound_statement "{\n      iVar10 = 0;\n    }" { (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      if (iVar3 < 0x4d) {\n        if (iVar3 == -99) {\n          builtin_help();\n          local_40 = 0x102;\n        }\n        else {\nLAB_0009abd8:\n          builtin_usage();\n          local_40 = 0x102;\n        }\n        goto LAB_0009ab97;\n      }\n      if (iVar3 == 0x50) {\n        iVar10 = 1;\n      }\n      else {\n        if (iVar3 != 0x65) goto LAB_0009abd8;\n        DAT_00151658 = 1;\n      }\n    }" else (compound_statement "{\n      if (iVar3 < 0x4d) {\n        if (iVar3 == -99) {\n          builtin_help();\n          local_40 = 0x102;\n        }\n        else {\nLAB_0009abd8:\n          builtin_usage();\n          local_40 = 0x102;\n        }\n        goto LAB_0009ab97;\n      }\n      if (iVar3 == 0x50) {\n        iVar10 = 1;\n      }\n      else {\n        if (iVar3 != 0x65) goto LAB_0009abd8;\n        DAT_00151658 = 1;\n      }\n    }" { (if_statement "if (iVar3 < 0x4d) {\n        if (iVar3 == -99) {\n          builtin_help();\n          local_40 = 0x102;\n        }\n        else {\nLAB_0009abd8:\n          builtin_usage();\n          local_40 = 0x102;\n        }\n        goto LAB_0009ab97;\n      }" if (parenthesized_expression "(iVar3 < 0x4d)" ( (binary_expression "iVar3 < 0x4d" identifier < number_literal) )) (compound_statement "{\n        if (iVar3 == -99) {\n          builtin_help();\n          local_40 = 0x102;\n        }\n        else {\nLAB_0009abd8:\n          builtin_usage();\n          local_40 = 0x102;\n        }\n        goto LAB_0009ab97;\n      }" { (if_statement "if (iVar3 == -99) {\n          builtin_help();\n          local_40 = 0x102;\n        }\n        else {\nLAB_0009abd8:\n          builtin_usage();\n          local_40 = 0x102;\n        }" if (parenthesized_expression "(iVar3 == -99)" ( (binary_expression "iVar3 == -99" identifier == number_literal) )) (compound_statement "{\n          builtin_help();\n          local_40 = 0x102;\n        }" { (expression_statement "builtin_help();" (call_expression "builtin_help()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_40 = 0x102;" (assignment_expression "local_40 = 0x102" identifier = number_literal) ;) }) (else_clause "else {\nLAB_0009abd8:\n          builtin_usage();\n          local_40 = 0x102;\n        }" else (compound_statement "{\nLAB_0009abd8:\n          builtin_usage();\n          local_40 = 0x102;\n        }" { (labeled_statement "LAB_0009abd8:\n          builtin_usage();" statement_identifier : (expression_statement "builtin_usage();" (call_expression "builtin_usage()" identifier (argument_list "()" ( ))) ;)) (expression_statement "local_40 = 0x102;" (assignment_expression "local_40 = 0x102" identifier = number_literal) ;) }))) (goto_statement "goto LAB_0009ab97;" goto statement_identifier ;) })) (if_statement "if (iVar3 == 0x50) {\n        iVar10 = 1;\n      }\n      else {\n        if (iVar3 != 0x65) goto LAB_0009abd8;\n        DAT_00151658 = 1;\n      }" if (parenthesized_expression "(iVar3 == 0x50)" ( (binary_expression "iVar3 == 0x50" identifier == number_literal) )) (compound_statement "{\n        iVar10 = 1;\n      }" { (expression_statement "iVar10 = 1;" (assignment_expression "iVar10 = 1" identifier = number_literal) ;) }) (else_clause "else {\n        if (iVar3 != 0x65) goto LAB_0009abd8;\n        DAT_00151658 = 1;\n      }" else (compound_statement "{\n        if (iVar3 != 0x65) goto LAB_0009abd8;\n        DAT_00151658 = 1;\n      }" { (if_statement "if (iVar3 != 0x65) goto LAB_0009abd8;" if (parenthesized_expression "(iVar3 != 0x65)" ( (binary_expression "iVar3 != 0x65" identifier != number_literal) )) (goto_statement "goto LAB_0009abd8;" goto statement_identifier ;)) (expression_statement "DAT_00151658 = 1;" (assignment_expression "DAT_00151658 = 1" identifier = number_literal) ;) }))) }))) })) (expression_statement "bVar11 = cdable_vars != 0;" (assignment_expression "bVar11 = cdable_vars != 0" identifier = (binary_expression "cdable_vars != 0" identifier != number_literal)) ;) (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" identifier = false) ;) (if_statement "if ((interactive != 0) && (cdspelling != 0)) {\n    bVar2 = true;\n  }" if (parenthesized_expression "((interactive != 0) && (cdspelling != 0))" ( (binary_expression "(interactive != 0) && (cdspelling != 0)" (parenthesized_expression "(interactive != 0)" ( (binary_expression "interactive != 0" identifier != number_literal) )) && (parenthesized_expression "(cdspelling != 0)" ( (binary_expression "cdspelling != 0" identifier != number_literal) ))) )) (compound_statement "{\n    bVar2 = true;\n  }" { (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" identifier = true) ;) })) (if_statement "if ((DAT_00151658 != 0) && (iVar10 == 0)) {\n    DAT_00151658 = 0;\n  }" if (parenthesized_expression "((DAT_00151658 != 0) && (iVar10 == 0))" ( (binary_expression "(DAT_00151658 != 0) && (iVar10 == 0)" (parenthesized_expression "(DAT_00151658 != 0)" ( (binary_expression "DAT_00151658 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) ))) )) (compound_statement "{\n    DAT_00151658 = 0;\n  }" { (expression_statement "DAT_00151658 = 0;" (assignment_expression "DAT_00151658 = 0" identifier = number_literal) ;) })) (if_statement "if (loptend == (int *)0x0) {\n    pcVar8 = (char *)get_string_value(&DAT_000ed68b);\n    if (pcVar8 != (char *)0x0) {\n      iVar10 = FUN_0009a830();\n      if (iVar10 != 0) goto LAB_0009ad5e;\n      goto LAB_0009ace1;\n    }\n    pcVar8 = "HOME not set";\n  }\n  else {\n    if (*loptend == 0) {\n      pcVar8 = *(char **)loptend[1];\n      if ((*pcVar8 == '-') && (pcVar8[1] == '\0')) {\n        pcVar8 = (char *)get_string_value(&DAT_000ef147);\n        if (pcVar8 == (char *)0x0) {\n          pcVar8 = "OLDPWD not set";\n          goto LAB_0009ad7b;\n        }\n        iVar10 = FUN_0009a830();\n        if (iVar10 != 0) {\n          puts(pcVar8);\n          goto LAB_0009ad5e;\n        }\n      }\n      else {\n        iVar3 = absolute_pathname(pcVar8);\n        if ((iVar3 == 0) &&\n           ((privileged_mode == 0 && (iVar3 = get_string_value("CDPATH"), iVar3 != 0)))) {\n          pcVar8 = *(char **)piVar5[1];\n          local_24 = 0;\n          while (pcVar4 = (char *)extract_colon_unit(iVar3,&local_24), pcVar4 != (char *)0x0) {\n            cVar1 = *pcVar4;\n            pcVar6 = (char *)sh_makepath(pcVar4,pcVar8,1);\n            free(pcVar4);\n            iVar9 = FUN_0009a830();\n            if (iVar9 != 0) {\n              if (cVar1 != '\0') {\n                pcVar8 = pcVar6;\n                if (iVar10 == 0) {\n                  pcVar8 = the_current_working_directory;\n                }\n                if (pcVar8 != (char *)0x0) {\n                  puts(pcVar8);\n                }\n              }\n              free(pcVar6);\n              local_40 = FUN_0009a6e0();\n              goto LAB_0009ab97;\n            }\n            free(pcVar6);\n          }\n        }\n        else {\n          pcVar8 = *(char **)piVar5[1];\n        }\n        iVar10 = FUN_0009a830();\n        if (iVar10 != 0) {\nLAB_0009ad5e:\n          local_40 = FUN_0009a6e0();\n          goto LAB_0009ab97;\n        }\n        if (((bVar11) && (pcVar4 = (char *)get_string_value(pcVar8), pcVar4 != (char *)0x0)) &&\n           (iVar10 = FUN_0009a830(), iVar10 != 0)) {\n          puts(pcVar4);\n          local_40 = FUN_0009a6e0();\n          goto LAB_0009ab97;\n        }\n        if ((bVar2) && (pcVar4 = (char *)dirspell(pcVar8), pcVar4 != (char *)0x0)) {\n          iVar10 = FUN_0009a830();\n          if (iVar10 != 0) {\n            puts(pcVar4);\n            free(pcVar4);\n            local_40 = FUN_0009a6e0();\n            goto LAB_0009ab97;\n          }\n          free(pcVar4);\n        }\n      }\nLAB_0009ace1:\n      piVar5 = __errno_location();\n      iVar10 = *piVar5;\n      pcVar4 = (char *)printable_filename(pcVar8,0);\n      pcVar6 = strerror(iVar10);\n      builtin_error("%s: %s",pcVar4,pcVar6);\n      local_40 = 1;\n      if (pcVar4 != pcVar8) {\n        local_40 = 1;\n        free(pcVar4);\n      }\n      goto LAB_0009ab97;\n    }\n    pcVar8 = "too many arguments";\n  }" if (parenthesized_expression "(loptend == (int *)0x0)" ( (binary_expression "loptend == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pcVar8 = (char *)get_string_value(&DAT_000ed68b);\n    if (pcVar8 != (char *)0x0) {\n      iVar10 = FUN_0009a830();\n      if (iVar10 != 0) goto LAB_0009ad5e;\n      goto LAB_0009ace1;\n    }\n    pcVar8 = "HOME not set";\n  }" { (expression_statement "pcVar8 = (char *)get_string_value(&DAT_000ed68b);" (assignment_expression "pcVar8 = (char *)get_string_value(&DAT_000ed68b)" identifier = (cast_expression "(char *)get_string_value(&DAT_000ed68b)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "get_string_value(&DAT_000ed68b)" identifier (argument_list "(&DAT_000ed68b)" ( (pointer_expression "&DAT_000ed68b" & identifier) ))))) ;) (if_statement "if (pcVar8 != (char *)0x0) {\n      iVar10 = FUN_0009a830();\n      if (iVar10 != 0) goto LAB_0009ad5e;\n      goto LAB_0009ace1;\n    }" if (parenthesized_expression "(pcVar8 != (char *)0x0)" ( (binary_expression "pcVar8 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      iVar10 = FUN_0009a830();\n      if (iVar10 != 0) goto LAB_0009ad5e;\n      goto LAB_0009ace1;\n    }" { (expression_statement "iVar10 = FUN_0009a830();" (assignment_expression "iVar10 = FUN_0009a830()" identifier = (call_expression "FUN_0009a830()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar10 != 0) goto LAB_0009ad5e;" if (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0009ad5e;" goto statement_identifier ;)) (goto_statement "goto LAB_0009ace1;" goto statement_identifier ;) })) (expression_statement "pcVar8 = "HOME not set";" (assignment_expression "pcVar8 = "HOME not set"" identifier = (string_literal ""HOME not set"" " string_content ")) ;) }) (else_clause "else {\n    if (*loptend == 0) {\n      pcVar8 = *(char **)loptend[1];\n      if ((*pcVar8 == '-') && (pcVar8[1] == '\0')) {\n        pcVar8 = (char *)get_string_value(&DAT_000ef147);\n        if (pcVar8 == (char *)0x0) {\n          pcVar8 = "OLDPWD not set";\n          goto LAB_0009ad7b;\n        }\n        iVar10 = FUN_0009a830();\n        if (iVar10 != 0) {\n          puts(pcVar8);\n          goto LAB_0009ad5e;\n        }\n      }\n      else {\n        iVar3 = absolute_pathname(pcVar8);\n        if ((iVar3 == 0) &&\n           ((privileged_mode == 0 && (iVar3 = get_string_value("CDPATH"), iVar3 != 0)))) {\n          pcVar8 = *(char **)piVar5[1];\n          local_24 = 0;\n          while (pcVar4 = (char *)extract_colon_unit(iVar3,&local_24), pcVar4 != (char *)0x0) {\n            cVar1 = *pcVar4;\n            pcVar6 = (char *)sh_makepath(pcVar4,pcVar8,1);\n            free(pcVar4);\n            iVar9 = FUN_0009a830();\n            if (iVar9 != 0) {\n              if (cVar1 != '\0') {\n                pcVar8 = pcVar6;\n                if (iVar10 == 0) {\n                  pcVar8 = the_current_working_directory;\n                }\n                if (pcVar8 != (char *)0x0) {\n                  puts(pcVar8);\n                }\n              }\n              free(pcVar6);\n              local_40 = FUN_0009a6e0();\n              goto LAB_0009ab97;\n            }\n            free(pcVar6);\n          }\n        }\n        else {\n          pcVar8 = *(char **)piVar5[1];\n        }\n        iVar10 = FUN_0009a830();\n        if (iVar10 != 0) {\nLAB_0009ad5e:\n          local_40 = FUN_0009a6e0();\n          goto LAB_0009ab97;\n        }\n        if (((bVar11) && (pcVar4 = (char *)get_string_value(pcVar8), pcVar4 != (char *)0x0)) &&\n           (iVar10 = FUN_0009a830(), iVar10 != 0)) {\n          puts(pcVar4);\n          local_40 = FUN_0009a6e0();\n          goto LAB_0009ab97;\n        }\n        if ((bVar2) && (pcVar4 = (char *)dirspell(pcVar8), pcVar4 != (char *)0x0)) {\n          iVar10 = FUN_0009a830();\n          if (iVar10 != 0) {\n            puts(pcVar4);\n            free(pcVar4);\n            local_40 = FUN_0009a6e0();\n            goto LAB_0009ab97;\n          }\n          free(pcVar4);\n        }\n      }\nLAB_0009ace1:\n      piVar5 = __errno_location();\n      iVar10 = *piVar5;\n      pcVar4 = (char *)printable_filename(pcVar8,0);\n      pcVar6 = strerror(iVar10);\n      builtin_error("%s: %s",pcVar4,pcVar6);\n      local_40 = 1;\n      if (pcVar4 != pcVar8) {\n        local_40 = 1;\n        free(pcVar4);\n      }\n      goto LAB_0009ab97;\n    }\n    pcVar8 = "too many arguments";\n  }" else (compound_statement "{\n    if (*loptend == 0) {\n      pcVar8 = *(char **)loptend[1];\n      if ((*pcVar8 == '-') && (pcVar8[1] == '\0')) {\n        pcVar8 = (char *)get_string_value(&DAT_000ef147);\n        if (pcVar8 == (char *)0x0) {\n          pcVar8 = "OLDPWD not set";\n          goto LAB_0009ad7b;\n        }\n        iVar10 = FUN_0009a830();\n        if (iVar10 != 0) {\n          puts(pcVar8);\n          goto LAB_0009ad5e;\n        }\n      }\n      else {\n        iVar3 = absolute_pathname(pcVar8);\n        if ((iVar3 == 0) &&\n           ((privileged_mode == 0 && (iVar3 = get_string_value("CDPATH"), iVar3 != 0)))) {\n          pcVar8 = *(char **)piVar5[1];\n          local_24 = 0;\n          while (pcVar4 = (char *)extract_colon_unit(iVar3,&local_24), pcVar4 != (char *)0x0) {\n            cVar1 = *pcVar4;\n            pcVar6 = (char *)sh_makepath(pcVar4,pcVar8,1);\n            free(pcVar4);\n            iVar9 = FUN_0009a830();\n            if (iVar9 != 0) {\n              if (cVar1 != '\0') {\n                pcVar8 = pcVar6;\n                if (iVar10 == 0) {\n                  pcVar8 = the_current_working_directory;\n                }\n                if (pcVar8 != (char *)0x0) {\n                  puts(pcVar8);\n                }\n              }\n              free(pcVar6);\n              local_40 = FUN_0009a6e0();\n              goto LAB_0009ab97;\n            }\n            free(pcVar6);\n          }\n        }\n        else {\n          pcVar8 = *(char **)piVar5[1];\n        }\n        iVar10 = FUN_0009a830();\n        if (iVar10 != 0) {\nLAB_0009ad5e:\n          local_40 = FUN_0009a6e0();\n          goto LAB_0009ab97;\n        }\n        if (((bVar11) && (pcVar4 = (char *)get_string_value(pcVar8), pcVar4 != (char *)0x0)) &&\n           (iVar10 = FUN_0009a830(), iVar10 != 0)) {\n          puts(pcVar4);\n          local_40 = FUN_0009a6e0();\n          goto LAB_0009ab97;\n        }\n        if ((bVar2) && (pcVar4 = (char *)dirspell(pcVar8), pcVar4 != (char *)0x0)) {\n          iVar10 = FUN_0009a830();\n          if (iVar10 != 0) {\n            puts(pcVar4);\n            free(pcVar4);\n            local_40 = FUN_0009a6e0();\n            goto LAB_0009ab97;\n          }\n          free(pcVar4);\n        }\n      }\nLAB_0009ace1:\n      piVar5 = __errno_location();\n      iVar10 = *piVar5;\n      pcVar4 = (char *)printable_filename(pcVar8,0);\n      pcVar6 = strerror(iVar10);\n      builtin_error("%s: %s",pcVar4,pcVar6);\n      local_40 = 1;\n      if (pcVar4 != pcVar8) {\n        local_40 = 1;\n        free(pcVar4);\n      }\n      goto LAB_0009ab97;\n    }\n    pcVar8 = "too many arguments";\n  }" { (if_statement "if (*loptend == 0) {\n      pcVar8 = *(char **)loptend[1];\n      if ((*pcVar8 == '-') && (pcVar8[1] == '\0')) {\n        pcVar8 = (char *)get_string_value(&DAT_000ef147);\n        if (pcVar8 == (char *)0x0) {\n          pcVar8 = "OLDPWD not set";\n          goto LAB_0009ad7b;\n        }\n        iVar10 = FUN_0009a830();\n        if (iVar10 != 0) {\n          puts(pcVar8);\n          goto LAB_0009ad5e;\n        }\n      }\n      else {\n        iVar3 = absolute_pathname(pcVar8);\n        if ((iVar3 == 0) &&\n           ((privileged_mode == 0 && (iVar3 = get_string_value("CDPATH"), iVar3 != 0)))) {\n          pcVar8 = *(char **)piVar5[1];\n          local_24 = 0;\n          while (pcVar4 = (char *)extract_colon_unit(iVar3,&local_24), pcVar4 != (char *)0x0) {\n            cVar1 = *pcVar4;\n            pcVar6 = (char *)sh_makepath(pcVar4,pcVar8,1);\n            free(pcVar4);\n            iVar9 = FUN_0009a830();\n            if (iVar9 != 0) {\n              if (cVar1 != '\0') {\n                pcVar8 = pcVar6;\n                if (iVar10 == 0) {\n                  pcVar8 = the_current_working_directory;\n                }\n                if (pcVar8 != (char *)0x0) {\n                  puts(pcVar8);\n                }\n              }\n              free(pcVar6);\n              local_40 = FUN_0009a6e0();\n              goto LAB_0009ab97;\n            }\n            free(pcVar6);\n          }\n        }\n        else {\n          pcVar8 = *(char **)piVar5[1];\n        }\n        iVar10 = FUN_0009a830();\n        if (iVar10 != 0) {\nLAB_0009ad5e:\n          local_40 = FUN_0009a6e0();\n          goto LAB_0009ab97;\n        }\n        if (((bVar11) && (pcVar4 = (char *)get_string_value(pcVar8), pcVar4 != (char *)0x0)) &&\n           (iVar10 = FUN_0009a830(), iVar10 != 0)) {\n          puts(pcVar4);\n          local_40 = FUN_0009a6e0();\n          goto LAB_0009ab97;\n        }\n        if ((bVar2) && (pcVar4 = (char *)dirspell(pcVar8), pcVar4 != (char *)0x0)) {\n          iVar10 = FUN_0009a830();\n          if (iVar10 != 0) {\n            puts(pcVar4);\n            free(pcVar4);\n            local_40 = FUN_0009a6e0();\n            goto LAB_0009ab97;\n          }\n          free(pcVar4);\n        }\n      }\nLAB_0009ace1:\n      piVar5 = __errno_location();\n      iVar10 = *piVar5;\n      pcVar4 = (char *)printable_filename(pcVar8,0);\n      pcVar6 = strerror(iVar10);\n      builtin_error("%s: %s",pcVar4,pcVar6);\n      local_40 = 1;\n      if (pcVar4 != pcVar8) {\n        local_40 = 1;\n        free(pcVar4);\n      }\n      goto LAB_0009ab97;\n    }" if (parenthesized_expression "(*loptend == 0)" ( (binary_expression "*loptend == 0" (pointer_expression "*loptend" * identifier) == number_literal) )) (compound_statement "{\n      pcVar8 = *(char **)loptend[1];\n      if ((*pcVar8 == '-') && (pcVar8[1] == '\0')) {\n        pcVar8 = (char *)get_string_value(&DAT_000ef147);\n        if (pcVar8 == (char *)0x0) {\n          pcVar8 = "OLDPWD not set";\n          goto LAB_0009ad7b;\n        }\n        iVar10 = FUN_0009a830();\n        if (iVar10 != 0) {\n          puts(pcVar8);\n          goto LAB_0009ad5e;\n        }\n      }\n      else {\n        iVar3 = absolute_pathname(pcVar8);\n        if ((iVar3 == 0) &&\n           ((privileged_mode == 0 && (iVar3 = get_string_value("CDPATH"), iVar3 != 0)))) {\n          pcVar8 = *(char **)piVar5[1];\n          local_24 = 0;\n          while (pcVar4 = (char *)extract_colon_unit(iVar3,&local_24), pcVar4 != (char *)0x0) {\n            cVar1 = *pcVar4;\n            pcVar6 = (char *)sh_makepath(pcVar4,pcVar8,1);\n            free(pcVar4);\n            iVar9 = FUN_0009a830();\n            if (iVar9 != 0) {\n              if (cVar1 != '\0') {\n                pcVar8 = pcVar6;\n                if (iVar10 == 0) {\n                  pcVar8 = the_current_working_directory;\n                }\n                if (pcVar8 != (char *)0x0) {\n                  puts(pcVar8);\n                }\n              }\n              free(pcVar6);\n              local_40 = FUN_0009a6e0();\n              goto LAB_0009ab97;\n            }\n            free(pcVar6);\n          }\n        }\n        else {\n          pcVar8 = *(char **)piVar5[1];\n        }\n        iVar10 = FUN_0009a830();\n        if (iVar10 != 0) {\nLAB_0009ad5e:\n          local_40 = FUN_0009a6e0();\n          goto LAB_0009ab97;\n        }\n        if (((bVar11) && (pcVar4 = (char *)get_string_value(pcVar8), pcVar4 != (char *)0x0)) &&\n           (iVar10 = FUN_0009a830(), iVar10 != 0)) {\n          puts(pcVar4);\n          local_40 = FUN_0009a6e0();\n          goto LAB_0009ab97;\n        }\n        if ((bVar2) && (pcVar4 = (char *)dirspell(pcVar8), pcVar4 != (char *)0x0)) {\n          iVar10 = FUN_0009a830();\n          if (iVar10 != 0) {\n            puts(pcVar4);\n            free(pcVar4);\n            local_40 = FUN_0009a6e0();\n            goto LAB_0009ab97;\n          }\n          free(pcVar4);\n        }\n      }\nLAB_0009ace1:\n      piVar5 = __errno_location();\n      iVar10 = *piVar5;\n      pcVar4 = (char *)printable_filename(pcVar8,0);\n      pcVar6 = strerror(iVar10);\n      builtin_error("%s: %s",pcVar4,pcVar6);\n      local_40 = 1;\n      if (pcVar4 != pcVar8) {\n        local_40 = 1;\n        free(pcVar4);\n      }\n      goto LAB_0009ab97;\n    }" { (expression_statement "pcVar8 = *(char **)loptend[1];" (assignment_expression "pcVar8 = *(char **)loptend[1]" identifier = (pointer_expression "*(char **)loptend[1]" * (cast_expression "(char **)loptend[1]" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "loptend[1]" identifier [ number_literal ])))) ;) (if_statement "if ((*pcVar8 == '-') && (pcVar8[1] == '\0')) {\n        pcVar8 = (char *)get_string_value(&DAT_000ef147);\n        if (pcVar8 == (char *)0x0) {\n          pcVar8 = "OLDPWD not set";\n          goto LAB_0009ad7b;\n        }\n        iVar10 = FUN_0009a830();\n        if (iVar10 != 0) {\n          puts(pcVar8);\n          goto LAB_0009ad5e;\n        }\n      }\n      else {\n        iVar3 = absolute_pathname(pcVar8);\n        if ((iVar3 == 0) &&\n           ((privileged_mode == 0 && (iVar3 = get_string_value("CDPATH"), iVar3 != 0)))) {\n          pcVar8 = *(char **)piVar5[1];\n          local_24 = 0;\n          while (pcVar4 = (char *)extract_colon_unit(iVar3,&local_24), pcVar4 != (char *)0x0) {\n            cVar1 = *pcVar4;\n            pcVar6 = (char *)sh_makepath(pcVar4,pcVar8,1);\n            free(pcVar4);\n            iVar9 = FUN_0009a830();\n            if (iVar9 != 0) {\n              if (cVar1 != '\0') {\n                pcVar8 = pcVar6;\n                if (iVar10 == 0) {\n                  pcVar8 = the_current_working_directory;\n                }\n                if (pcVar8 != (char *)0x0) {\n                  puts(pcVar8);\n                }\n              }\n              free(pcVar6);\n              local_40 = FUN_0009a6e0();\n              goto LAB_0009ab97;\n            }\n            free(pcVar6);\n          }\n        }\n        else {\n          pcVar8 = *(char **)piVar5[1];\n        }\n        iVar10 = FUN_0009a830();\n        if (iVar10 != 0) {\nLAB_0009ad5e:\n          local_40 = FUN_0009a6e0();\n          goto LAB_0009ab97;\n        }\n        if (((bVar11) && (pcVar4 = (char *)get_string_value(pcVar8), pcVar4 != (char *)0x0)) &&\n           (iVar10 = FUN_0009a830(), iVar10 != 0)) {\n          puts(pcVar4);\n          local_40 = FUN_0009a6e0();\n          goto LAB_0009ab97;\n        }\n        if ((bVar2) && (pcVar4 = (char *)dirspell(pcVar8), pcVar4 != (char *)0x0)) {\n          iVar10 = FUN_0009a830();\n          if (iVar10 != 0) {\n            puts(pcVar4);\n            free(pcVar4);\n            local_40 = FUN_0009a6e0();\n            goto LAB_0009ab97;\n          }\n          free(pcVar4);\n        }\n      }" if (parenthesized_expression "((*pcVar8 == '-') && (pcVar8[1] == '\0'))" ( (binary_expression "(*pcVar8 == '-') && (pcVar8[1] == '\0')" (parenthesized_expression "(*pcVar8 == '-')" ( (binary_expression "*pcVar8 == '-'" (pointer_expression "*pcVar8" * identifier) == (char_literal "'-'" ' character ')) )) && (parenthesized_expression "(pcVar8[1] == '\0')" ( (binary_expression "pcVar8[1] == '\0'" (subscript_expression "pcVar8[1]" identifier [ number_literal ]) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n        pcVar8 = (char *)get_string_value(&DAT_000ef147);\n        if (pcVar8 == (char *)0x0) {\n          pcVar8 = "OLDPWD not set";\n          goto LAB_0009ad7b;\n        }\n        iVar10 = FUN_0009a830();\n        if (iVar10 != 0) {\n          puts(pcVar8);\n          goto LAB_0009ad5e;\n        }\n      }" { (expression_statement "pcVar8 = (char *)get_string_value(&DAT_000ef147);" (assignment_expression "pcVar8 = (char *)get_string_value(&DAT_000ef147)" identifier = (cast_expression "(char *)get_string_value(&DAT_000ef147)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "get_string_value(&DAT_000ef147)" identifier (argument_list "(&DAT_000ef147)" ( (pointer_expression "&DAT_000ef147" & identifier) ))))) ;) (if_statement "if (pcVar8 == (char *)0x0) {\n          pcVar8 = "OLDPWD not set";\n          goto LAB_0009ad7b;\n        }" if (parenthesized_expression "(pcVar8 == (char *)0x0)" ( (binary_expression "pcVar8 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          pcVar8 = "OLDPWD not set";\n          goto LAB_0009ad7b;\n        }" { (expression_statement "pcVar8 = "OLDPWD not set";" (assignment_expression "pcVar8 = "OLDPWD not set"" identifier = (string_literal ""OLDPWD not set"" " string_content ")) ;) (goto_statement "goto LAB_0009ad7b;" goto statement_identifier ;) })) (expression_statement "iVar10 = FUN_0009a830();" (assignment_expression "iVar10 = FUN_0009a830()" identifier = (call_expression "FUN_0009a830()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar10 != 0) {\n          puts(pcVar8);\n          goto LAB_0009ad5e;\n        }" if (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) (compound_statement "{\n          puts(pcVar8);\n          goto LAB_0009ad5e;\n        }" { (expression_statement "puts(pcVar8);" (call_expression "puts(pcVar8)" identifier (argument_list "(pcVar8)" ( identifier ))) ;) (goto_statement "goto LAB_0009ad5e;" goto statement_identifier ;) })) }) (else_clause "else {\n        iVar3 = absolute_pathname(pcVar8);\n        if ((iVar3 == 0) &&\n           ((privileged_mode == 0 && (iVar3 = get_string_value("CDPATH"), iVar3 != 0)))) {\n          pcVar8 = *(char **)piVar5[1];\n          local_24 = 0;\n          while (pcVar4 = (char *)extract_colon_unit(iVar3,&local_24), pcVar4 != (char *)0x0) {\n            cVar1 = *pcVar4;\n            pcVar6 = (char *)sh_makepath(pcVar4,pcVar8,1);\n            free(pcVar4);\n            iVar9 = FUN_0009a830();\n            if (iVar9 != 0) {\n              if (cVar1 != '\0') {\n                pcVar8 = pcVar6;\n                if (iVar10 == 0) {\n                  pcVar8 = the_current_working_directory;\n                }\n                if (pcVar8 != (char *)0x0) {\n                  puts(pcVar8);\n                }\n              }\n              free(pcVar6);\n              local_40 = FUN_0009a6e0();\n              goto LAB_0009ab97;\n            }\n            free(pcVar6);\n          }\n        }\n        else {\n          pcVar8 = *(char **)piVar5[1];\n        }\n        iVar10 = FUN_0009a830();\n        if (iVar10 != 0) {\nLAB_0009ad5e:\n          local_40 = FUN_0009a6e0();\n          goto LAB_0009ab97;\n        }\n        if (((bVar11) && (pcVar4 = (char *)get_string_value(pcVar8), pcVar4 != (char *)0x0)) &&\n           (iVar10 = FUN_0009a830(), iVar10 != 0)) {\n          puts(pcVar4);\n          local_40 = FUN_0009a6e0();\n          goto LAB_0009ab97;\n        }\n        if ((bVar2) && (pcVar4 = (char *)dirspell(pcVar8), pcVar4 != (char *)0x0)) {\n          iVar10 = FUN_0009a830();\n          if (iVar10 != 0) {\n            puts(pcVar4);\n            free(pcVar4);\n            local_40 = FUN_0009a6e0();\n            goto LAB_0009ab97;\n          }\n          free(pcVar4);\n        }\n      }" else (compound_statement "{\n        iVar3 = absolute_pathname(pcVar8);\n        if ((iVar3 == 0) &&\n           ((privileged_mode == 0 && (iVar3 = get_string_value("CDPATH"), iVar3 != 0)))) {\n          pcVar8 = *(char **)piVar5[1];\n          local_24 = 0;\n          while (pcVar4 = (char *)extract_colon_unit(iVar3,&local_24), pcVar4 != (char *)0x0) {\n            cVar1 = *pcVar4;\n            pcVar6 = (char *)sh_makepath(pcVar4,pcVar8,1);\n            free(pcVar4);\n            iVar9 = FUN_0009a830();\n            if (iVar9 != 0) {\n              if (cVar1 != '\0') {\n                pcVar8 = pcVar6;\n                if (iVar10 == 0) {\n                  pcVar8 = the_current_working_directory;\n                }\n                if (pcVar8 != (char *)0x0) {\n                  puts(pcVar8);\n                }\n              }\n              free(pcVar6);\n              local_40 = FUN_0009a6e0();\n              goto LAB_0009ab97;\n            }\n            free(pcVar6);\n          }\n        }\n        else {\n          pcVar8 = *(char **)piVar5[1];\n        }\n        iVar10 = FUN_0009a830();\n        if (iVar10 != 0) {\nLAB_0009ad5e:\n          local_40 = FUN_0009a6e0();\n          goto LAB_0009ab97;\n        }\n        if (((bVar11) && (pcVar4 = (char *)get_string_value(pcVar8), pcVar4 != (char *)0x0)) &&\n           (iVar10 = FUN_0009a830(), iVar10 != 0)) {\n          puts(pcVar4);\n          local_40 = FUN_0009a6e0();\n          goto LAB_0009ab97;\n        }\n        if ((bVar2) && (pcVar4 = (char *)dirspell(pcVar8), pcVar4 != (char *)0x0)) {\n          iVar10 = FUN_0009a830();\n          if (iVar10 != 0) {\n            puts(pcVar4);\n            free(pcVar4);\n            local_40 = FUN_0009a6e0();\n            goto LAB_0009ab97;\n          }\n          free(pcVar4);\n        }\n      }" { (expression_statement "iVar3 = absolute_pathname(pcVar8);" (assignment_expression "iVar3 = absolute_pathname(pcVar8)" identifier = (call_expression "absolute_pathname(pcVar8)" identifier (argument_list "(pcVar8)" ( identifier )))) ;) (if_statement "if ((iVar3 == 0) &&\n           ((privileged_mode == 0 && (iVar3 = get_string_value("CDPATH"), iVar3 != 0)))) {\n          pcVar8 = *(char **)piVar5[1];\n          local_24 = 0;\n          while (pcVar4 = (char *)extract_colon_unit(iVar3,&local_24), pcVar4 != (char *)0x0) {\n            cVar1 = *pcVar4;\n            pcVar6 = (char *)sh_makepath(pcVar4,pcVar8,1);\n            free(pcVar4);\n            iVar9 = FUN_0009a830();\n            if (iVar9 != 0) {\n              if (cVar1 != '\0') {\n                pcVar8 = pcVar6;\n                if (iVar10 == 0) {\n                  pcVar8 = the_current_working_directory;\n                }\n                if (pcVar8 != (char *)0x0) {\n                  puts(pcVar8);\n                }\n              }\n              free(pcVar6);\n              local_40 = FUN_0009a6e0();\n              goto LAB_0009ab97;\n            }\n            free(pcVar6);\n          }\n        }\n        else {\n          pcVar8 = *(char **)piVar5[1];\n        }" if (parenthesized_expression "((iVar3 == 0) &&\n           ((privileged_mode == 0 && (iVar3 = get_string_value("CDPATH"), iVar3 != 0))))" ( (binary_expression "(iVar3 == 0) &&\n           ((privileged_mode == 0 && (iVar3 = get_string_value("CDPATH"), iVar3 != 0)))" (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) && (parenthesized_expression "((privileged_mode == 0 && (iVar3 = get_string_value("CDPATH"), iVar3 != 0)))" ( (parenthesized_expression "(privileged_mode == 0 && (iVar3 = get_string_value("CDPATH"), iVar3 != 0))" ( (binary_expression "privileged_mode == 0 && (iVar3 = get_string_value("CDPATH"), iVar3 != 0)" (binary_expression "privileged_mode == 0" identifier == number_literal) && (parenthesized_expression "(iVar3 = get_string_value("CDPATH"), iVar3 != 0)" ( (comma_expression "iVar3 = get_string_value("CDPATH"), iVar3 != 0" (assignment_expression "iVar3 = get_string_value("CDPATH")" identifier = (call_expression "get_string_value("CDPATH")" identifier (argument_list "("CDPATH")" ( (string_literal ""CDPATH"" " string_content ") )))) , (binary_expression "iVar3 != 0" identifier != number_literal)) ))) )) ))) )) (compound_statement "{\n          pcVar8 = *(char **)piVar5[1];\n          local_24 = 0;\n          while (pcVar4 = (char *)extract_colon_unit(iVar3,&local_24), pcVar4 != (char *)0x0) {\n            cVar1 = *pcVar4;\n            pcVar6 = (char *)sh_makepath(pcVar4,pcVar8,1);\n            free(pcVar4);\n            iVar9 = FUN_0009a830();\n            if (iVar9 != 0) {\n              if (cVar1 != '\0') {\n                pcVar8 = pcVar6;\n                if (iVar10 == 0) {\n                  pcVar8 = the_current_working_directory;\n                }\n                if (pcVar8 != (char *)0x0) {\n                  puts(pcVar8);\n                }\n              }\n              free(pcVar6);\n              local_40 = FUN_0009a6e0();\n              goto LAB_0009ab97;\n            }\n            free(pcVar6);\n          }\n        }" { (expression_statement "pcVar8 = *(char **)piVar5[1];" (assignment_expression "pcVar8 = *(char **)piVar5[1]" identifier = (pointer_expression "*(char **)piVar5[1]" * (cast_expression "(char **)piVar5[1]" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "piVar5[1]" identifier [ number_literal ])))) ;) (expression_statement "local_24 = 0;" (assignment_expression "local_24 = 0" identifier = number_literal) ;) (while_statement "while (pcVar4 = (char *)extract_colon_unit(iVar3,&local_24), pcVar4 != (char *)0x0) {\n            cVar1 = *pcVar4;\n            pcVar6 = (char *)sh_makepath(pcVar4,pcVar8,1);\n            free(pcVar4);\n            iVar9 = FUN_0009a830();\n            if (iVar9 != 0) {\n              if (cVar1 != '\0') {\n                pcVar8 = pcVar6;\n                if (iVar10 == 0) {\n                  pcVar8 = the_current_working_directory;\n                }\n                if (pcVar8 != (char *)0x0) {\n                  puts(pcVar8);\n                }\n              }\n              free(pcVar6);\n              local_40 = FUN_0009a6e0();\n              goto LAB_0009ab97;\n            }\n            free(pcVar6);\n          }" while (parenthesized_expression "(pcVar4 = (char *)extract_colon_unit(iVar3,&local_24), pcVar4 != (char *)0x0)" ( (comma_expression "pcVar4 = (char *)extract_colon_unit(iVar3,&local_24), pcVar4 != (char *)0x0" (assignment_expression "pcVar4 = (char *)extract_colon_unit(iVar3,&local_24)" identifier = (cast_expression "(char *)extract_colon_unit(iVar3,&local_24)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "extract_colon_unit(iVar3,&local_24)" identifier (argument_list "(iVar3,&local_24)" ( identifier , (pointer_expression "&local_24" & identifier) ))))) , (binary_expression "pcVar4 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) )) (compound_statement "{\n            cVar1 = *pcVar4;\n            pcVar6 = (char *)sh_makepath(pcVar4,pcVar8,1);\n            free(pcVar4);\n            iVar9 = FUN_0009a830();\n            if (iVar9 != 0) {\n              if (cVar1 != '\0') {\n                pcVar8 = pcVar6;\n                if (iVar10 == 0) {\n                  pcVar8 = the_current_working_directory;\n                }\n                if (pcVar8 != (char *)0x0) {\n                  puts(pcVar8);\n                }\n              }\n              free(pcVar6);\n              local_40 = FUN_0009a6e0();\n              goto LAB_0009ab97;\n            }\n            free(pcVar6);\n          }" { (expression_statement "cVar1 = *pcVar4;" (assignment_expression "cVar1 = *pcVar4" identifier = (pointer_expression "*pcVar4" * identifier)) ;) (expression_statement "pcVar6 = (char *)sh_makepath(pcVar4,pcVar8,1);" (assignment_expression "pcVar6 = (char *)sh_makepath(pcVar4,pcVar8,1)" identifier = (cast_expression "(char *)sh_makepath(pcVar4,pcVar8,1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "sh_makepath(pcVar4,pcVar8,1)" identifier (argument_list "(pcVar4,pcVar8,1)" ( identifier , identifier , number_literal ))))) ;) (expression_statement "free(pcVar4);" (call_expression "free(pcVar4)" identifier (argument_list "(pcVar4)" ( identifier ))) ;) (expression_statement "iVar9 = FUN_0009a830();" (assignment_expression "iVar9 = FUN_0009a830()" identifier = (call_expression "FUN_0009a830()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar9 != 0) {\n              if (cVar1 != '\0') {\n                pcVar8 = pcVar6;\n                if (iVar10 == 0) {\n                  pcVar8 = the_current_working_directory;\n                }\n                if (pcVar8 != (char *)0x0) {\n                  puts(pcVar8);\n                }\n              }\n              free(pcVar6);\n              local_40 = FUN_0009a6e0();\n              goto LAB_0009ab97;\n            }" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (compound_statement "{\n              if (cVar1 != '\0') {\n                pcVar8 = pcVar6;\n                if (iVar10 == 0) {\n                  pcVar8 = the_current_working_directory;\n                }\n                if (pcVar8 != (char *)0x0) {\n                  puts(pcVar8);\n                }\n              }\n              free(pcVar6);\n              local_40 = FUN_0009a6e0();\n              goto LAB_0009ab97;\n            }" { (if_statement "if (cVar1 != '\0') {\n                pcVar8 = pcVar6;\n                if (iVar10 == 0) {\n                  pcVar8 = the_current_working_directory;\n                }\n                if (pcVar8 != (char *)0x0) {\n                  puts(pcVar8);\n                }\n              }" if (parenthesized_expression "(cVar1 != '\0')" ( (binary_expression "cVar1 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                pcVar8 = pcVar6;\n                if (iVar10 == 0) {\n                  pcVar8 = the_current_working_directory;\n                }\n                if (pcVar8 != (char *)0x0) {\n                  puts(pcVar8);\n                }\n              }" { (expression_statement "pcVar8 = pcVar6;" (assignment_expression "pcVar8 = pcVar6" identifier = identifier) ;) (if_statement "if (iVar10 == 0) {\n                  pcVar8 = the_current_working_directory;\n                }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n                  pcVar8 = the_current_working_directory;\n                }" { (expression_statement "pcVar8 = the_current_working_directory;" (assignment_expression "pcVar8 = the_current_working_directory" identifier = identifier) ;) })) (if_statement "if (pcVar8 != (char *)0x0) {\n                  puts(pcVar8);\n                }" if (parenthesized_expression "(pcVar8 != (char *)0x0)" ( (binary_expression "pcVar8 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  puts(pcVar8);\n                }" { (expression_statement "puts(pcVar8);" (call_expression "puts(pcVar8)" identifier (argument_list "(pcVar8)" ( identifier ))) ;) })) })) (expression_statement "free(pcVar6);" (call_expression "free(pcVar6)" identifier (argument_list "(pcVar6)" ( identifier ))) ;) (expression_statement "local_40 = FUN_0009a6e0();" (assignment_expression "local_40 = FUN_0009a6e0()" identifier = (call_expression "FUN_0009a6e0()" identifier (argument_list "()" ( )))) ;) (goto_statement "goto LAB_0009ab97;" goto statement_identifier ;) })) (expression_statement "free(pcVar6);" (call_expression "free(pcVar6)" identifier (argument_list "(pcVar6)" ( identifier ))) ;) })) }) (else_clause "else {\n          pcVar8 = *(char **)piVar5[1];\n        }" else (compound_statement "{\n          pcVar8 = *(char **)piVar5[1];\n        }" { (expression_statement "pcVar8 = *(char **)piVar5[1];" (assignment_expression "pcVar8 = *(char **)piVar5[1]" identifier = (pointer_expression "*(char **)piVar5[1]" * (cast_expression "(char **)piVar5[1]" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "piVar5[1]" identifier [ number_literal ])))) ;) }))) (expression_statement "iVar10 = FUN_0009a830();" (assignment_expression "iVar10 = FUN_0009a830()" identifier = (call_expression "FUN_0009a830()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar10 != 0) {\nLAB_0009ad5e:\n          local_40 = FUN_0009a6e0();\n          goto LAB_0009ab97;\n        }" if (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_0009ad5e:\n          local_40 = FUN_0009a6e0();\n          goto LAB_0009ab97;\n        }" { (labeled_statement "LAB_0009ad5e:\n          local_40 = FUN_0009a6e0();" statement_identifier : (expression_statement "local_40 = FUN_0009a6e0();" (assignment_expression "local_40 = FUN_0009a6e0()" identifier = (call_expression "FUN_0009a6e0()" identifier (argument_list "()" ( )))) ;)) (goto_statement "goto LAB_0009ab97;" goto statement_identifier ;) })) (if_statement "if (((bVar11) && (pcVar4 = (char *)get_string_value(pcVar8), pcVar4 != (char *)0x0)) &&\n           (iVar10 = FUN_0009a830(), iVar10 != 0)) {\n          puts(pcVar4);\n          local_40 = FUN_0009a6e0();\n          goto LAB_0009ab97;\n        }" if (parenthesized_expression "(((bVar11) && (pcVar4 = (char *)get_string_value(pcVar8), pcVar4 != (char *)0x0)) &&\n           (iVar10 = FUN_0009a830(), iVar10 != 0))" ( (binary_expression "((bVar11) && (pcVar4 = (char *)get_string_value(pcVar8), pcVar4 != (char *)0x0)) &&\n           (iVar10 = FUN_0009a830(), iVar10 != 0)" (parenthesized_expression "((bVar11) && (pcVar4 = (char *)get_string_value(pcVar8), pcVar4 != (char *)0x0))" ( (binary_expression "(bVar11) && (pcVar4 = (char *)get_string_value(pcVar8), pcVar4 != (char *)0x0)" (parenthesized_expression "(bVar11)" ( identifier )) && (parenthesized_expression "(pcVar4 = (char *)get_string_value(pcVar8), pcVar4 != (char *)0x0)" ( (comma_expression "pcVar4 = (char *)get_string_value(pcVar8), pcVar4 != (char *)0x0" (assignment_expression "pcVar4 = (char *)get_string_value(pcVar8)" identifier = (cast_expression "(char *)get_string_value(pcVar8)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "get_string_value(pcVar8)" identifier (argument_list "(pcVar8)" ( identifier ))))) , (binary_expression "pcVar4 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) && (parenthesized_expression "(iVar10 = FUN_0009a830(), iVar10 != 0)" ( (comma_expression "iVar10 = FUN_0009a830(), iVar10 != 0" (assignment_expression "iVar10 = FUN_0009a830()" identifier = (call_expression "FUN_0009a830()" identifier (argument_list "()" ( )))) , (binary_expression "iVar10 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n          puts(pcVar4);\n          local_40 = FUN_0009a6e0();\n          goto LAB_0009ab97;\n        }" { (expression_statement "puts(pcVar4);" (call_expression "puts(pcVar4)" identifier (argument_list "(pcVar4)" ( identifier ))) ;) (expression_statement "local_40 = FUN_0009a6e0();" (assignment_expression "local_40 = FUN_0009a6e0()" identifier = (call_expression "FUN_0009a6e0()" identifier (argument_list "()" ( )))) ;) (goto_statement "goto LAB_0009ab97;" goto statement_identifier ;) })) (if_statement "if ((bVar2) && (pcVar4 = (char *)dirspell(pcVar8), pcVar4 != (char *)0x0)) {\n          iVar10 = FUN_0009a830();\n          if (iVar10 != 0) {\n            puts(pcVar4);\n            free(pcVar4);\n            local_40 = FUN_0009a6e0();\n            goto LAB_0009ab97;\n          }\n          free(pcVar4);\n        }" if (parenthesized_expression "((bVar2) && (pcVar4 = (char *)dirspell(pcVar8), pcVar4 != (char *)0x0))" ( (binary_expression "(bVar2) && (pcVar4 = (char *)dirspell(pcVar8), pcVar4 != (char *)0x0)" (parenthesized_expression "(bVar2)" ( identifier )) && (parenthesized_expression "(pcVar4 = (char *)dirspell(pcVar8), pcVar4 != (char *)0x0)" ( (comma_expression "pcVar4 = (char *)dirspell(pcVar8), pcVar4 != (char *)0x0" (assignment_expression "pcVar4 = (char *)dirspell(pcVar8)" identifier = (cast_expression "(char *)dirspell(pcVar8)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dirspell(pcVar8)" identifier (argument_list "(pcVar8)" ( identifier ))))) , (binary_expression "pcVar4 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n          iVar10 = FUN_0009a830();\n          if (iVar10 != 0) {\n            puts(pcVar4);\n            free(pcVar4);\n            local_40 = FUN_0009a6e0();\n            goto LAB_0009ab97;\n          }\n          free(pcVar4);\n        }" { (expression_statement "iVar10 = FUN_0009a830();" (assignment_expression "iVar10 = FUN_0009a830()" identifier = (call_expression "FUN_0009a830()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar10 != 0) {\n            puts(pcVar4);\n            free(pcVar4);\n            local_40 = FUN_0009a6e0();\n            goto LAB_0009ab97;\n          }" if (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) (compound_statement "{\n            puts(pcVar4);\n            free(pcVar4);\n            local_40 = FUN_0009a6e0();\n            goto LAB_0009ab97;\n          }" { (expression_statement "puts(pcVar4);" (call_expression "puts(pcVar4)" identifier (argument_list "(pcVar4)" ( identifier ))) ;) (expression_statement "free(pcVar4);" (call_expression "free(pcVar4)" identifier (argument_list "(pcVar4)" ( identifier ))) ;) (expression_statement "local_40 = FUN_0009a6e0();" (assignment_expression "local_40 = FUN_0009a6e0()" identifier = (call_expression "FUN_0009a6e0()" identifier (argument_list "()" ( )))) ;) (goto_statement "goto LAB_0009ab97;" goto statement_identifier ;) })) (expression_statement "free(pcVar4);" (call_expression "free(pcVar4)" identifier (argument_list "(pcVar4)" ( identifier ))) ;) })) }))) (labeled_statement "LAB_0009ace1:\n      piVar5 = __errno_location();" statement_identifier : (expression_statement "piVar5 = __errno_location();" (assignment_expression "piVar5 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;)) (expression_statement "iVar10 = *piVar5;" (assignment_expression "iVar10 = *piVar5" identifier = (pointer_expression "*piVar5" * identifier)) ;) (expression_statement "pcVar4 = (char *)printable_filename(pcVar8,0);" (assignment_expression "pcVar4 = (char *)printable_filename(pcVar8,0)" identifier = (cast_expression "(char *)printable_filename(pcVar8,0)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "printable_filename(pcVar8,0)" identifier (argument_list "(pcVar8,0)" ( identifier , number_literal ))))) ;) (expression_statement "pcVar6 = strerror(iVar10);" (assignment_expression "pcVar6 = strerror(iVar10)" identifier = (call_expression "strerror(iVar10)" identifier (argument_list "(iVar10)" ( identifier )))) ;) (expression_statement "builtin_error("%s: %s",pcVar4,pcVar6);" (call_expression "builtin_error("%s: %s",pcVar4,pcVar6)" identifier (argument_list "("%s: %s",pcVar4,pcVar6)" ( (string_literal ""%s: %s"" " string_content ") , identifier , identifier ))) ;) (expression_statement "local_40 = 1;" (assignment_expression "local_40 = 1" identifier = number_literal) ;) (if_statement "if (pcVar4 != pcVar8) {\n        local_40 = 1;\n        free(pcVar4);\n      }" if (parenthesized_expression "(pcVar4 != pcVar8)" ( (binary_expression "pcVar4 != pcVar8" identifier != identifier) )) (compound_statement "{\n        local_40 = 1;\n        free(pcVar4);\n      }" { (expression_statement "local_40 = 1;" (assignment_expression "local_40 = 1" identifier = number_literal) ;) (expression_statement "free(pcVar4);" (call_expression "free(pcVar4)" identifier (argument_list "(pcVar4)" ( identifier ))) ;) })) (goto_statement "goto LAB_0009ab97;" goto statement_identifier ;) })) (expression_statement "pcVar8 = "too many arguments";" (assignment_expression "pcVar8 = "too many arguments"" identifier = (string_literal ""too many arguments"" " string_content ")) ;) }))) (labeled_statement "LAB_0009ad7b:\n  uVar7 = dcgettext(0,pcVar8,5);" statement_identifier : (expression_statement "uVar7 = dcgettext(0,pcVar8,5);" (assignment_expression "uVar7 = dcgettext(0,pcVar8,5)" identifier = (call_expression "dcgettext(0,pcVar8,5)" identifier (argument_list "(0,pcVar8,5)" ( number_literal , identifier , number_literal )))) ;)) (expression_statement "builtin_error(uVar7);" (call_expression "builtin_error(uVar7)" identifier (argument_list "(uVar7)" ( identifier ))) ;) (expression_statement "local_40 = 1;" (assignment_expression "local_40 = 1" identifier = number_literal) ;) (labeled_statement "LAB_0009ab97:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_000ecc40();\n  }" statement_identifier : (if_statement "if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_000ecc40();\n  }" if (parenthesized_expression "(local_20 != *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_20 != *(int *)(in_GS_OFFSET + 0x14)" identifier != (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n                    \n    FUN_000ecc40();\n  }" { (expression_statement "FUN_000ecc40();" (call_expression "FUN_000ecc40()" identifier (argument_list "()" ( ))) ;) }))) (return_statement "return local_40;" return identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) )))) , (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT != LIT))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( ))) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) }))) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) }))) }))) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT != LIT)) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))))) ;) (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 ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (subscript_expression IDENT [ LIT ])))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' character ')) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (char_literal ' escape_sequence ')) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT == LIT) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") )))) , (binary_expression IDENT != LIT)) ))) )) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (subscript_expression IDENT [ LIT ])))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) ))))) , (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , IDENT , LIT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (subscript_expression IDENT [ LIT ])))) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;)) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( IDENT )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) , (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) , (binary_expression IDENT != LIT)) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( IDENT )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) , (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , LIT ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT , LIT )))) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) }))) (return_statement return IDENT ;) })))
(function_definition "undefined4 cd_builtin(undefined4 param_1)\n\n{\n  char cVar1;\n  bool bVar2;\n  int iVar3;\n  char *pcVar4;\n  int *piVar5;\n  char *pcVar6;\n  undefined4 uVar7;\n  char *pcVar8;\n  int iVar9;\n  int iVar10;\n  int in_GS_OFFSET;\n  bool bVar11;\n  undefined4 local_40;\n  undefined4 local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  iVar10 = no_symbolic_links;\n  uStack_14 = 0x9ab09;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (restricted != 0) {\n    sh_restricted(0);\n    local_40 = 1;\n    goto LAB_0009ab97;\n  }\n  DAT_00151658 = 0;\n  reset_internal_getopt();\n  while (iVar3 = internal_getopt(param_1,&DAT_001017d8), piVar5 = loptend, iVar3 != -1) {\n    if (iVar3 == 0x4c) {\n      iVar10 = 0;\n    }\n    else {\n      if (iVar3 < 0x4d) {\n        if (iVar3 == -99) {\n          builtin_help();\n          local_40 = 0x102;\n        }\n        else {\nLAB_0009abd8:\n          builtin_usage();\n          local_40 = 0x102;\n        }\n        goto LAB_0009ab97;\n      }\n      if (iVar3 == 0x50) {\n        iVar10 = 1;\n      }\n      else {\n        if (iVar3 != 0x65) goto LAB_0009abd8;\n        DAT_00151658 = 1;\n      }\n    }\n  }\n  bVar11 = cdable_vars != 0;\n  bVar2 = false;\n  if ((interactive != 0) && (cdspelling != 0)) {\n    bVar2 = true;\n  }\n  if ((DAT_00151658 != 0) && (iVar10 == 0)) {\n    DAT_00151658 = 0;\n  }\n  if (loptend == (int *)0x0) {\n    pcVar8 = (char *)get_string_value(&DAT_000ed68b);\n    if (pcVar8 != (char *)0x0) {\n      iVar10 = FUN_0009a830();\n      if (iVar10 != 0) goto LAB_0009ad5e;\n      goto LAB_0009ace1;\n    }\n    pcVar8 = "HOME not set";\n  }\n  else {\n    if (*loptend == 0) {\n      pcVar8 = *(char **)loptend[1];\n      if ((*pcVar8 == '-') && (pcVar8[1] == '\0')) {\n        pcVar8 = (char *)get_string_value(&DAT_000ef147);\n        if (pcVar8 == (char *)0x0) {\n          pcVar8 = "OLDPWD not set";\n          goto LAB_0009ad7b;\n        }\n        iVar10 = FUN_0009a830();\n        if (iVar10 != 0) {\n          puts(pcVar8);\n          goto LAB_0009ad5e;\n        }\n      }\n      else {\n        iVar3 = absolute_pathname(pcVar8);\n        if ((iVar3 == 0) &&\n           ((privileged_mode == 0 && (iVar3 = get_string_value("CDPATH"), iVar3 != 0)))) {\n          pcVar8 = *(char **)piVar5[1];\n          local_24 = 0;\n          while (pcVar4 = (char *)extract_colon_unit(iVar3,&local_24), pcVar4 != (char *)0x0) {\n            cVar1 = *pcVar4;\n            pcVar6 = (char *)sh_makepath(pcVar4,pcVar8,1);\n            free(pcVar4);\n            iVar9 = FUN_0009a830();\n            if (iVar9 != 0) {\n              if (cVar1 != '\0') {\n                pcVar8 = pcVar6;\n                if (iVar10 == 0) {\n                  pcVar8 = the_current_working_directory;\n                }\n                if (pcVar8 != (char *)0x0) {\n                  puts(pcVar8);\n                }\n              }\n              free(pcVar6);\n              local_40 = FUN_0009a6e0();\n              goto LAB_0009ab97;\n            }\n            free(pcVar6);\n          }\n        }\n        else {\n          pcVar8 = *(char **)piVar5[1];\n        }\n        iVar10 = FUN_0009a830();\n        if (iVar10 != 0) {\nLAB_0009ad5e:\n          local_40 = FUN_0009a6e0();\n          goto LAB_0009ab97;\n        }\n        if (((bVar11) && (pcVar4 = (char *)get_string_value(pcVar8), pcVar4 != (char *)0x0)) &&\n           (iVar10 = FUN_0009a830(), iVar10 != 0)) {\n          puts(pcVar4);\n          local_40 = FUN_0009a6e0();\n          goto LAB_0009ab97;\n        }\n        if ((bVar2) && (pcVar4 = (char *)dirspell(pcVar8), pcVar4 != (char *)0x0)) {\n          iVar10 = FUN_0009a830();\n          if (iVar10 != 0) {\n            puts(pcVar4);\n            free(pcVar4);\n            local_40 = FUN_0009a6e0();\n            goto LAB_0009ab97;\n          }\n          free(pcVar4);\n        }\n      }\nLAB_0009ace1:\n      piVar5 = __errno_location();\n      iVar10 = *piVar5;\n      pcVar4 = (char *)printable_filename(pcVar8,0);\n      pcVar6 = strerror(iVar10);\n      builtin_error("%s: %s",pcVar4,pcVar6);\n      local_40 = 1;\n      if (pcVar4 != pcVar8) {\n        local_40 = 1;\n        free(pcVar4);\n      }\n      goto LAB_0009ab97;\n    }\n    pcVar8 = "too many arguments";\n  }\nLAB_0009ad7b:\n  uVar7 = dcgettext(0,pcVar8,5);\n  builtin_error(uVar7);\n  local_40 = 1;\nLAB_0009ab97:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_000ecc40();\n  }\n  return local_40;\n}" (type_identifier "undefined4") (function_declarator "cd_builtin(undefined4 param_1)" (identifier "cd_builtin") (parameter_list "(undefined4 param_1)" (( "(") (parameter_declaration "undefined4 param_1" (type_identifier "undefined4") (identifier "param_1")) () ")"))) (compound_statement "{\n  char cVar1;\n  bool bVar2;\n  int iVar3;\n  char *pcVar4;\n  int *piVar5;\n  char *pcVar6;\n  undefined4 uVar7;\n  char *pcVar8;\n  int iVar9;\n  int iVar10;\n  int in_GS_OFFSET;\n  bool bVar11;\n  undefined4 local_40;\n  undefined4 local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  iVar10 = no_symbolic_links;\n  uStack_14 = 0x9ab09;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (restricted != 0) {\n    sh_restricted(0);\n    local_40 = 1;\n    goto LAB_0009ab97;\n  }\n  DAT_00151658 = 0;\n  reset_internal_getopt();\n  while (iVar3 = internal_getopt(param_1,&DAT_001017d8), piVar5 = loptend, iVar3 != -1) {\n    if (iVar3 == 0x4c) {\n      iVar10 = 0;\n    }\n    else {\n      if (iVar3 < 0x4d) {\n        if (iVar3 == -99) {\n          builtin_help();\n          local_40 = 0x102;\n        }\n        else {\nLAB_0009abd8:\n          builtin_usage();\n          local_40 = 0x102;\n        }\n        goto LAB_0009ab97;\n      }\n      if (iVar3 == 0x50) {\n        iVar10 = 1;\n      }\n      else {\n        if (iVar3 != 0x65) goto LAB_0009abd8;\n        DAT_00151658 = 1;\n      }\n    }\n  }\n  bVar11 = cdable_vars != 0;\n  bVar2 = false;\n  if ((interactive != 0) && (cdspelling != 0)) {\n    bVar2 = true;\n  }\n  if ((DAT_00151658 != 0) && (iVar10 == 0)) {\n    DAT_00151658 = 0;\n  }\n  if (loptend == (int *)0x0) {\n    pcVar8 = (char *)get_string_value(&DAT_000ed68b);\n    if (pcVar8 != (char *)0x0) {\n      iVar10 = FUN_0009a830();\n      if (iVar10 != 0) goto LAB_0009ad5e;\n      goto LAB_0009ace1;\n    }\n    pcVar8 = "HOME not set";\n  }\n  else {\n    if (*loptend == 0) {\n      pcVar8 = *(char **)loptend[1];\n      if ((*pcVar8 == '-') && (pcVar8[1] == '\0')) {\n        pcVar8 = (char *)get_string_value(&DAT_000ef147);\n        if (pcVar8 == (char *)0x0) {\n          pcVar8 = "OLDPWD not set";\n          goto LAB_0009ad7b;\n        }\n        iVar10 = FUN_0009a830();\n        if (iVar10 != 0) {\n          puts(pcVar8);\n          goto LAB_0009ad5e;\n        }\n      }\n      else {\n        iVar3 = absolute_pathname(pcVar8);\n        if ((iVar3 == 0) &&\n           ((privileged_mode == 0 && (iVar3 = get_string_value("CDPATH"), iVar3 != 0)))) {\n          pcVar8 = *(char **)piVar5[1];\n          local_24 = 0;\n          while (pcVar4 = (char *)extract_colon_unit(iVar3,&local_24), pcVar4 != (char *)0x0) {\n            cVar1 = *pcVar4;\n            pcVar6 = (char *)sh_makepath(pcVar4,pcVar8,1);\n            free(pcVar4);\n            iVar9 = FUN_0009a830();\n            if (iVar9 != 0) {\n              if (cVar1 != '\0') {\n                pcVar8 = pcVar6;\n                if (iVar10 == 0) {\n                  pcVar8 = the_current_working_directory;\n                }\n                if (pcVar8 != (char *)0x0) {\n                  puts(pcVar8);\n                }\n              }\n              free(pcVar6);\n              local_40 = FUN_0009a6e0();\n              goto LAB_0009ab97;\n            }\n            free(pcVar6);\n          }\n        }\n        else {\n          pcVar8 = *(char **)piVar5[1];\n        }\n        iVar10 = FUN_0009a830();\n        if (iVar10 != 0) {\nLAB_0009ad5e:\n          local_40 = FUN_0009a6e0();\n          goto LAB_0009ab97;\n        }\n        if (((bVar11) && (pcVar4 = (char *)get_string_value(pcVar8), pcVar4 != (char *)0x0)) &&\n           (iVar10 = FUN_0009a830(), iVar10 != 0)) {\n          puts(pcVar4);\n          local_40 = FUN_0009a6e0();\n          goto LAB_0009ab97;\n        }\n        if ((bVar2) && (pcVar4 = (char *)dirspell(pcVar8), pcVar4 != (char *)0x0)) {\n          iVar10 = FUN_0009a830();\n          if (iVar10 != 0) {\n            puts(pcVar4);\n            free(pcVar4);\n            local_40 = FUN_0009a6e0();\n            goto LAB_0009ab97;\n          }\n          free(pcVar4);\n        }\n      }\nLAB_0009ace1:\n      piVar5 = __errno_location();\n      iVar10 = *piVar5;\n      pcVar4 = (char *)printable_filename(pcVar8,0);\n      pcVar6 = strerror(iVar10);\n      builtin_error("%s: %s",pcVar4,pcVar6);\n      local_40 = 1;\n      if (pcVar4 != pcVar8) {\n        local_40 = 1;\n        free(pcVar4);\n      }\n      goto LAB_0009ab97;\n    }\n    pcVar8 = "too many arguments";\n  }\nLAB_0009ad7b:\n  uVar7 = dcgettext(0,pcVar8,5);\n  builtin_error(uVar7);\n  local_40 = 1;\nLAB_0009ab97:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_000ecc40();\n  }\n  return local_40;\n}" ({ "{") (declaration "char cVar1;" (primitive_type "char") (identifier "cVar1") (; ";")) (declaration "bool bVar2;" (primitive_type "bool") (identifier "bVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "char *pcVar4;" (primitive_type "char") (pointer_declarator "*pcVar4" (* "*") (identifier "pcVar4")) (; ";")) (declaration "int *piVar5;" (primitive_type "int") (pointer_declarator "*piVar5" (* "*") (identifier "piVar5")) (; ";")) (declaration "char *pcVar6;" (primitive_type "char") (pointer_declarator "*pcVar6" (* "*") (identifier "pcVar6")) (; ";")) (declaration "undefined4 uVar7;" (type_identifier "undefined4") (identifier "uVar7") (; ";")) (declaration "char *pcVar8;" (primitive_type "char") (pointer_declarator "*pcVar8" (* "*") (identifier "pcVar8")) (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "int iVar10;" (primitive_type "int") (identifier "iVar10") (; ";")) (declaration "int in_GS_OFFSET;" (primitive_type "int") (identifier "in_GS_OFFSET") (; ";")) (declaration "bool bVar11;" (primitive_type "bool") (identifier "bVar11") (; ";")) (declaration "undefined4 local_40;" (type_identifier "undefined4") (identifier "local_40") (; ";")) (declaration "undefined4 local_24;" (type_identifier "undefined4") (identifier "local_24") (; ";")) (declaration "int local_20;" (primitive_type "int") (identifier "local_20") (; ";")) (declaration "undefined4 uStack_14;" (type_identifier "undefined4") (identifier "uStack_14") (; ";")) (expression_statement "iVar10 = no_symbolic_links;" (assignment_expression "iVar10 = no_symbolic_links" (identifier "iVar10") (= "=") (identifier "no_symbolic_links")) (; ";")) (expression_statement "uStack_14 = 0x9ab09;" (assignment_expression "uStack_14 = 0x9ab09" (identifier "uStack_14") (= "=") (number_literal "0x9ab09")) (; ";")) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" (identifier "local_20") (= "=") (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(int *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (if_statement "if (restricted != 0) {\n    sh_restricted(0);\n    local_40 = 1;\n    goto LAB_0009ab97;\n  }" (if "if") (parenthesized_expression "(restricted != 0)" (( "(") (binary_expression "restricted != 0" (identifier "restricted") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    sh_restricted(0);\n    local_40 = 1;\n    goto LAB_0009ab97;\n  }" ({ "{") (expression_statement "sh_restricted(0);" (call_expression "sh_restricted(0)" (identifier "sh_restricted") (argument_list "(0)" (( "(") (number_literal "0") () ")"))) (; ";")) (expression_statement "local_40 = 1;" (assignment_expression "local_40 = 1" (identifier "local_40") (= "=") (number_literal "1")) (; ";")) (goto_statement "goto LAB_0009ab97;" (goto "goto") (statement_identifier "LAB_0009ab97") (; ";")) (} "}"))) (expression_statement "DAT_00151658 = 0;" (assignment_expression "DAT_00151658 = 0" (identifier "DAT_00151658") (= "=") (number_literal "0")) (; ";")) (expression_statement "reset_internal_getopt();" (call_expression "reset_internal_getopt()" (identifier "reset_internal_getopt") (argument_list "()" (( "(") () ")"))) (; ";")) (while_statement "while (iVar3 = internal_getopt(param_1,&DAT_001017d8), piVar5 = loptend, iVar3 != -1) {\n    if (iVar3 == 0x4c) {\n      iVar10 = 0;\n    }\n    else {\n      if (iVar3 < 0x4d) {\n        if (iVar3 == -99) {\n          builtin_help();\n          local_40 = 0x102;\n        }\n        else {\nLAB_0009abd8:\n          builtin_usage();\n          local_40 = 0x102;\n        }\n        goto LAB_0009ab97;\n      }\n      if (iVar3 == 0x50) {\n        iVar10 = 1;\n      }\n      else {\n        if (iVar3 != 0x65) goto LAB_0009abd8;\n        DAT_00151658 = 1;\n      }\n    }\n  }" (while "while") (parenthesized_expression "(iVar3 = internal_getopt(param_1,&DAT_001017d8), piVar5 = loptend, iVar3 != -1)" (( "(") (comma_expression "iVar3 = internal_getopt(param_1,&DAT_001017d8), piVar5 = loptend, iVar3 != -1" (assignment_expression "iVar3 = internal_getopt(param_1,&DAT_001017d8)" (identifier "iVar3") (= "=") (call_expression "internal_getopt(param_1,&DAT_001017d8)" (identifier "internal_getopt") (argument_list "(param_1,&DAT_001017d8)" (( "(") (identifier "param_1") (, ",") (pointer_expression "&DAT_001017d8" (& "&") (identifier "DAT_001017d8")) () ")")))) (, ",") (comma_expression "piVar5 = loptend, iVar3 != -1" (assignment_expression "piVar5 = loptend" (identifier "piVar5") (= "=") (identifier "loptend")) (, ",") (binary_expression "iVar3 != -1" (identifier "iVar3") (!= "!=") (number_literal "-1")))) () ")")) (compound_statement "{\n    if (iVar3 == 0x4c) {\n      iVar10 = 0;\n    }\n    else {\n      if (iVar3 < 0x4d) {\n        if (iVar3 == -99) {\n          builtin_help();\n          local_40 = 0x102;\n        }\n        else {\nLAB_0009abd8:\n          builtin_usage();\n          local_40 = 0x102;\n        }\n        goto LAB_0009ab97;\n      }\n      if (iVar3 == 0x50) {\n        iVar10 = 1;\n      }\n      else {\n        if (iVar3 != 0x65) goto LAB_0009abd8;\n        DAT_00151658 = 1;\n      }\n    }\n  }" ({ "{") (if_statement "if (iVar3 == 0x4c) {\n      iVar10 = 0;\n    }\n    else {\n      if (iVar3 < 0x4d) {\n        if (iVar3 == -99) {\n          builtin_help();\n          local_40 = 0x102;\n        }\n        else {\nLAB_0009abd8:\n          builtin_usage();\n          local_40 = 0x102;\n        }\n        goto LAB_0009ab97;\n      }\n      if (iVar3 == 0x50) {\n        iVar10 = 1;\n      }\n      else {\n        if (iVar3 != 0x65) goto LAB_0009abd8;\n        DAT_00151658 = 1;\n      }\n    }" (if "if") (parenthesized_expression "(iVar3 == 0x4c)" (( "(") (binary_expression "iVar3 == 0x4c" (identifier "iVar3") (== "==") (number_literal "0x4c")) () ")")) (compound_statement "{\n      iVar10 = 0;\n    }" ({ "{") (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" (identifier "iVar10") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n      if (iVar3 < 0x4d) {\n        if (iVar3 == -99) {\n          builtin_help();\n          local_40 = 0x102;\n        }\n        else {\nLAB_0009abd8:\n          builtin_usage();\n          local_40 = 0x102;\n        }\n        goto LAB_0009ab97;\n      }\n      if (iVar3 == 0x50) {\n        iVar10 = 1;\n      }\n      else {\n        if (iVar3 != 0x65) goto LAB_0009abd8;\n        DAT_00151658 = 1;\n      }\n    }" (else "else") (compound_statement "{\n      if (iVar3 < 0x4d) {\n        if (iVar3 == -99) {\n          builtin_help();\n          local_40 = 0x102;\n        }\n        else {\nLAB_0009abd8:\n          builtin_usage();\n          local_40 = 0x102;\n        }\n        goto LAB_0009ab97;\n      }\n      if (iVar3 == 0x50) {\n        iVar10 = 1;\n      }\n      else {\n        if (iVar3 != 0x65) goto LAB_0009abd8;\n        DAT_00151658 = 1;\n      }\n    }" ({ "{") (if_statement "if (iVar3 < 0x4d) {\n        if (iVar3 == -99) {\n          builtin_help();\n          local_40 = 0x102;\n        }\n        else {\nLAB_0009abd8:\n          builtin_usage();\n          local_40 = 0x102;\n        }\n        goto LAB_0009ab97;\n      }" (if "if") (parenthesized_expression "(iVar3 < 0x4d)" (( "(") (binary_expression "iVar3 < 0x4d" (identifier "iVar3") (< "<") (number_literal "0x4d")) () ")")) (compound_statement "{\n        if (iVar3 == -99) {\n          builtin_help();\n          local_40 = 0x102;\n        }\n        else {\nLAB_0009abd8:\n          builtin_usage();\n          local_40 = 0x102;\n        }\n        goto LAB_0009ab97;\n      }" ({ "{") (if_statement "if (iVar3 == -99) {\n          builtin_help();\n          local_40 = 0x102;\n        }\n        else {\nLAB_0009abd8:\n          builtin_usage();\n          local_40 = 0x102;\n        }" (if "if") (parenthesized_expression "(iVar3 == -99)" (( "(") (binary_expression "iVar3 == -99" (identifier "iVar3") (== "==") (number_literal "-99")) () ")")) (compound_statement "{\n          builtin_help();\n          local_40 = 0x102;\n        }" ({ "{") (expression_statement "builtin_help();" (call_expression "builtin_help()" (identifier "builtin_help") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "local_40 = 0x102;" (assignment_expression "local_40 = 0x102" (identifier "local_40") (= "=") (number_literal "0x102")) (; ";")) (} "}")) (else_clause "else {\nLAB_0009abd8:\n          builtin_usage();\n          local_40 = 0x102;\n        }" (else "else") (compound_statement "{\nLAB_0009abd8:\n          builtin_usage();\n          local_40 = 0x102;\n        }" ({ "{") (labeled_statement "LAB_0009abd8:\n          builtin_usage();" (statement_identifier "LAB_0009abd8") (: ":") (expression_statement "builtin_usage();" (call_expression "builtin_usage()" (identifier "builtin_usage") (argument_list "()" (( "(") () ")"))) (; ";"))) (expression_statement "local_40 = 0x102;" (assignment_expression "local_40 = 0x102" (identifier "local_40") (= "=") (number_literal "0x102")) (; ";")) (} "}")))) (goto_statement "goto LAB_0009ab97;" (goto "goto") (statement_identifier "LAB_0009ab97") (; ";")) (} "}"))) (if_statement "if (iVar3 == 0x50) {\n        iVar10 = 1;\n      }\n      else {\n        if (iVar3 != 0x65) goto LAB_0009abd8;\n        DAT_00151658 = 1;\n      }" (if "if") (parenthesized_expression "(iVar3 == 0x50)" (( "(") (binary_expression "iVar3 == 0x50" (identifier "iVar3") (== "==") (number_literal "0x50")) () ")")) (compound_statement "{\n        iVar10 = 1;\n      }" ({ "{") (expression_statement "iVar10 = 1;" (assignment_expression "iVar10 = 1" (identifier "iVar10") (= "=") (number_literal "1")) (; ";")) (} "}")) (else_clause "else {\n        if (iVar3 != 0x65) goto LAB_0009abd8;\n        DAT_00151658 = 1;\n      }" (else "else") (compound_statement "{\n        if (iVar3 != 0x65) goto LAB_0009abd8;\n        DAT_00151658 = 1;\n      }" ({ "{") (if_statement "if (iVar3 != 0x65) goto LAB_0009abd8;" (if "if") (parenthesized_expression "(iVar3 != 0x65)" (( "(") (binary_expression "iVar3 != 0x65" (identifier "iVar3") (!= "!=") (number_literal "0x65")) () ")")) (goto_statement "goto LAB_0009abd8;" (goto "goto") (statement_identifier "LAB_0009abd8") (; ";"))) (expression_statement "DAT_00151658 = 1;" (assignment_expression "DAT_00151658 = 1" (identifier "DAT_00151658") (= "=") (number_literal "1")) (; ";")) (} "}")))) (} "}")))) (} "}"))) (expression_statement "bVar11 = cdable_vars != 0;" (assignment_expression "bVar11 = cdable_vars != 0" (identifier "bVar11") (= "=") (binary_expression "cdable_vars != 0" (identifier "cdable_vars") (!= "!=") (number_literal "0"))) (; ";")) (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" (identifier "bVar2") (= "=") (false "false")) (; ";")) (if_statement "if ((interactive != 0) && (cdspelling != 0)) {\n    bVar2 = true;\n  }" (if "if") (parenthesized_expression "((interactive != 0) && (cdspelling != 0))" (( "(") (binary_expression "(interactive != 0) && (cdspelling != 0)" (parenthesized_expression "(interactive != 0)" (( "(") (binary_expression "interactive != 0" (identifier "interactive") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(cdspelling != 0)" (( "(") (binary_expression "cdspelling != 0" (identifier "cdspelling") (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n    bVar2 = true;\n  }" ({ "{") (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" (identifier "bVar2") (= "=") (true "true")) (; ";")) (} "}"))) (if_statement "if ((DAT_00151658 != 0) && (iVar10 == 0)) {\n    DAT_00151658 = 0;\n  }" (if "if") (parenthesized_expression "((DAT_00151658 != 0) && (iVar10 == 0))" (( "(") (binary_expression "(DAT_00151658 != 0) && (iVar10 == 0)" (parenthesized_expression "(DAT_00151658 != 0)" (( "(") (binary_expression "DAT_00151658 != 0" (identifier "DAT_00151658") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar10 == 0)" (( "(") (binary_expression "iVar10 == 0" (identifier "iVar10") (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n    DAT_00151658 = 0;\n  }" ({ "{") (expression_statement "DAT_00151658 = 0;" (assignment_expression "DAT_00151658 = 0" (identifier "DAT_00151658") (= "=") (number_literal "0")) (; ";")) (} "}"))) (if_statement "if (loptend == (int *)0x0) {\n    pcVar8 = (char *)get_string_value(&DAT_000ed68b);\n    if (pcVar8 != (char *)0x0) {\n      iVar10 = FUN_0009a830();\n      if (iVar10 != 0) goto LAB_0009ad5e;\n      goto LAB_0009ace1;\n    }\n    pcVar8 = "HOME not set";\n  }\n  else {\n    if (*loptend == 0) {\n      pcVar8 = *(char **)loptend[1];\n      if ((*pcVar8 == '-') && (pcVar8[1] == '\0')) {\n        pcVar8 = (char *)get_string_value(&DAT_000ef147);\n        if (pcVar8 == (char *)0x0) {\n          pcVar8 = "OLDPWD not set";\n          goto LAB_0009ad7b;\n        }\n        iVar10 = FUN_0009a830();\n        if (iVar10 != 0) {\n          puts(pcVar8);\n          goto LAB_0009ad5e;\n        }\n      }\n      else {\n        iVar3 = absolute_pathname(pcVar8);\n        if ((iVar3 == 0) &&\n           ((privileged_mode == 0 && (iVar3 = get_string_value("CDPATH"), iVar3 != 0)))) {\n          pcVar8 = *(char **)piVar5[1];\n          local_24 = 0;\n          while (pcVar4 = (char *)extract_colon_unit(iVar3,&local_24), pcVar4 != (char *)0x0) {\n            cVar1 = *pcVar4;\n            pcVar6 = (char *)sh_makepath(pcVar4,pcVar8,1);\n            free(pcVar4);\n            iVar9 = FUN_0009a830();\n            if (iVar9 != 0) {\n              if (cVar1 != '\0') {\n                pcVar8 = pcVar6;\n                if (iVar10 == 0) {\n                  pcVar8 = the_current_working_directory;\n                }\n                if (pcVar8 != (char *)0x0) {\n                  puts(pcVar8);\n                }\n              }\n              free(pcVar6);\n              local_40 = FUN_0009a6e0();\n              goto LAB_0009ab97;\n            }\n            free(pcVar6);\n          }\n        }\n        else {\n          pcVar8 = *(char **)piVar5[1];\n        }\n        iVar10 = FUN_0009a830();\n        if (iVar10 != 0) {\nLAB_0009ad5e:\n          local_40 = FUN_0009a6e0();\n          goto LAB_0009ab97;\n        }\n        if (((bVar11) && (pcVar4 = (char *)get_string_value(pcVar8), pcVar4 != (char *)0x0)) &&\n           (iVar10 = FUN_0009a830(), iVar10 != 0)) {\n          puts(pcVar4);\n          local_40 = FUN_0009a6e0();\n          goto LAB_0009ab97;\n        }\n        if ((bVar2) && (pcVar4 = (char *)dirspell(pcVar8), pcVar4 != (char *)0x0)) {\n          iVar10 = FUN_0009a830();\n          if (iVar10 != 0) {\n            puts(pcVar4);\n            free(pcVar4);\n            local_40 = FUN_0009a6e0();\n            goto LAB_0009ab97;\n          }\n          free(pcVar4);\n        }\n      }\nLAB_0009ace1:\n      piVar5 = __errno_location();\n      iVar10 = *piVar5;\n      pcVar4 = (char *)printable_filename(pcVar8,0);\n      pcVar6 = strerror(iVar10);\n      builtin_error("%s: %s",pcVar4,pcVar6);\n      local_40 = 1;\n      if (pcVar4 != pcVar8) {\n        local_40 = 1;\n        free(pcVar4);\n      }\n      goto LAB_0009ab97;\n    }\n    pcVar8 = "too many arguments";\n  }" (if "if") (parenthesized_expression "(loptend == (int *)0x0)" (( "(") (binary_expression "loptend == (int *)0x0" (identifier "loptend") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    pcVar8 = (char *)get_string_value(&DAT_000ed68b);\n    if (pcVar8 != (char *)0x0) {\n      iVar10 = FUN_0009a830();\n      if (iVar10 != 0) goto LAB_0009ad5e;\n      goto LAB_0009ace1;\n    }\n    pcVar8 = "HOME not set";\n  }" ({ "{") (expression_statement "pcVar8 = (char *)get_string_value(&DAT_000ed68b);" (assignment_expression "pcVar8 = (char *)get_string_value(&DAT_000ed68b)" (identifier "pcVar8") (= "=") (cast_expression "(char *)get_string_value(&DAT_000ed68b)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "get_string_value(&DAT_000ed68b)" (identifier "get_string_value") (argument_list "(&DAT_000ed68b)" (( "(") (pointer_expression "&DAT_000ed68b" (& "&") (identifier "DAT_000ed68b")) () ")"))))) (; ";")) (if_statement "if (pcVar8 != (char *)0x0) {\n      iVar10 = FUN_0009a830();\n      if (iVar10 != 0) goto LAB_0009ad5e;\n      goto LAB_0009ace1;\n    }" (if "if") (parenthesized_expression "(pcVar8 != (char *)0x0)" (( "(") (binary_expression "pcVar8 != (char *)0x0" (identifier "pcVar8") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      iVar10 = FUN_0009a830();\n      if (iVar10 != 0) goto LAB_0009ad5e;\n      goto LAB_0009ace1;\n    }" ({ "{") (expression_statement "iVar10 = FUN_0009a830();" (assignment_expression "iVar10 = FUN_0009a830()" (identifier "iVar10") (= "=") (call_expression "FUN_0009a830()" (identifier "FUN_0009a830") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar10 != 0) goto LAB_0009ad5e;" (if "if") (parenthesized_expression "(iVar10 != 0)" (( "(") (binary_expression "iVar10 != 0" (identifier "iVar10") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0009ad5e;" (goto "goto") (statement_identifier "LAB_0009ad5e") (; ";"))) (goto_statement "goto LAB_0009ace1;" (goto "goto") (statement_identifier "LAB_0009ace1") (; ";")) (} "}"))) (expression_statement "pcVar8 = "HOME not set";" (assignment_expression "pcVar8 = "HOME not set"" (identifier "pcVar8") (= "=") (string_literal ""HOME not set"" (" """) (string_content "HOME not set") (" """))) (; ";")) (} "}")) (else_clause "else {\n    if (*loptend == 0) {\n      pcVar8 = *(char **)loptend[1];\n      if ((*pcVar8 == '-') && (pcVar8[1] == '\0')) {\n        pcVar8 = (char *)get_string_value(&DAT_000ef147);\n        if (pcVar8 == (char *)0x0) {\n          pcVar8 = "OLDPWD not set";\n          goto LAB_0009ad7b;\n        }\n        iVar10 = FUN_0009a830();\n        if (iVar10 != 0) {\n          puts(pcVar8);\n          goto LAB_0009ad5e;\n        }\n      }\n      else {\n        iVar3 = absolute_pathname(pcVar8);\n        if ((iVar3 == 0) &&\n           ((privileged_mode == 0 && (iVar3 = get_string_value("CDPATH"), iVar3 != 0)))) {\n          pcVar8 = *(char **)piVar5[1];\n          local_24 = 0;\n          while (pcVar4 = (char *)extract_colon_unit(iVar3,&local_24), pcVar4 != (char *)0x0) {\n            cVar1 = *pcVar4;\n            pcVar6 = (char *)sh_makepath(pcVar4,pcVar8,1);\n            free(pcVar4);\n            iVar9 = FUN_0009a830();\n            if (iVar9 != 0) {\n              if (cVar1 != '\0') {\n                pcVar8 = pcVar6;\n                if (iVar10 == 0) {\n                  pcVar8 = the_current_working_directory;\n                }\n                if (pcVar8 != (char *)0x0) {\n                  puts(pcVar8);\n                }\n              }\n              free(pcVar6);\n              local_40 = FUN_0009a6e0();\n              goto LAB_0009ab97;\n            }\n            free(pcVar6);\n          }\n        }\n        else {\n          pcVar8 = *(char **)piVar5[1];\n        }\n        iVar10 = FUN_0009a830();\n        if (iVar10 != 0) {\nLAB_0009ad5e:\n          local_40 = FUN_0009a6e0();\n          goto LAB_0009ab97;\n        }\n        if (((bVar11) && (pcVar4 = (char *)get_string_value(pcVar8), pcVar4 != (char *)0x0)) &&\n           (iVar10 = FUN_0009a830(), iVar10 != 0)) {\n          puts(pcVar4);\n          local_40 = FUN_0009a6e0();\n          goto LAB_0009ab97;\n        }\n        if ((bVar2) && (pcVar4 = (char *)dirspell(pcVar8), pcVar4 != (char *)0x0)) {\n          iVar10 = FUN_0009a830();\n          if (iVar10 != 0) {\n            puts(pcVar4);\n            free(pcVar4);\n            local_40 = FUN_0009a6e0();\n            goto LAB_0009ab97;\n          }\n          free(pcVar4);\n        }\n      }\nLAB_0009ace1:\n      piVar5 = __errno_location();\n      iVar10 = *piVar5;\n      pcVar4 = (char *)printable_filename(pcVar8,0);\n      pcVar6 = strerror(iVar10);\n      builtin_error("%s: %s",pcVar4,pcVar6);\n      local_40 = 1;\n      if (pcVar4 != pcVar8) {\n        local_40 = 1;\n        free(pcVar4);\n      }\n      goto LAB_0009ab97;\n    }\n    pcVar8 = "too many arguments";\n  }" (else "else") (compound_statement "{\n    if (*loptend == 0) {\n      pcVar8 = *(char **)loptend[1];\n      if ((*pcVar8 == '-') && (pcVar8[1] == '\0')) {\n        pcVar8 = (char *)get_string_value(&DAT_000ef147);\n        if (pcVar8 == (char *)0x0) {\n          pcVar8 = "OLDPWD not set";\n          goto LAB_0009ad7b;\n        }\n        iVar10 = FUN_0009a830();\n        if (iVar10 != 0) {\n          puts(pcVar8);\n          goto LAB_0009ad5e;\n        }\n      }\n      else {\n        iVar3 = absolute_pathname(pcVar8);\n        if ((iVar3 == 0) &&\n           ((privileged_mode == 0 && (iVar3 = get_string_value("CDPATH"), iVar3 != 0)))) {\n          pcVar8 = *(char **)piVar5[1];\n          local_24 = 0;\n          while (pcVar4 = (char *)extract_colon_unit(iVar3,&local_24), pcVar4 != (char *)0x0) {\n            cVar1 = *pcVar4;\n            pcVar6 = (char *)sh_makepath(pcVar4,pcVar8,1);\n            free(pcVar4);\n            iVar9 = FUN_0009a830();\n            if (iVar9 != 0) {\n              if (cVar1 != '\0') {\n                pcVar8 = pcVar6;\n                if (iVar10 == 0) {\n                  pcVar8 = the_current_working_directory;\n                }\n                if (pcVar8 != (char *)0x0) {\n                  puts(pcVar8);\n                }\n              }\n              free(pcVar6);\n              local_40 = FUN_0009a6e0();\n              goto LAB_0009ab97;\n            }\n            free(pcVar6);\n          }\n        }\n        else {\n          pcVar8 = *(char **)piVar5[1];\n        }\n        iVar10 = FUN_0009a830();\n        if (iVar10 != 0) {\nLAB_0009ad5e:\n          local_40 = FUN_0009a6e0();\n          goto LAB_0009ab97;\n        }\n        if (((bVar11) && (pcVar4 = (char *)get_string_value(pcVar8), pcVar4 != (char *)0x0)) &&\n           (iVar10 = FUN_0009a830(), iVar10 != 0)) {\n          puts(pcVar4);\n          local_40 = FUN_0009a6e0();\n          goto LAB_0009ab97;\n        }\n        if ((bVar2) && (pcVar4 = (char *)dirspell(pcVar8), pcVar4 != (char *)0x0)) {\n          iVar10 = FUN_0009a830();\n          if (iVar10 != 0) {\n            puts(pcVar4);\n            free(pcVar4);\n            local_40 = FUN_0009a6e0();\n            goto LAB_0009ab97;\n          }\n          free(pcVar4);\n        }\n      }\nLAB_0009ace1:\n      piVar5 = __errno_location();\n      iVar10 = *piVar5;\n      pcVar4 = (char *)printable_filename(pcVar8,0);\n      pcVar6 = strerror(iVar10);\n      builtin_error("%s: %s",pcVar4,pcVar6);\n      local_40 = 1;\n      if (pcVar4 != pcVar8) {\n        local_40 = 1;\n        free(pcVar4);\n      }\n      goto LAB_0009ab97;\n    }\n    pcVar8 = "too many arguments";\n  }" ({ "{") (if_statement "if (*loptend == 0) {\n      pcVar8 = *(char **)loptend[1];\n      if ((*pcVar8 == '-') && (pcVar8[1] == '\0')) {\n        pcVar8 = (char *)get_string_value(&DAT_000ef147);\n        if (pcVar8 == (char *)0x0) {\n          pcVar8 = "OLDPWD not set";\n          goto LAB_0009ad7b;\n        }\n        iVar10 = FUN_0009a830();\n        if (iVar10 != 0) {\n          puts(pcVar8);\n          goto LAB_0009ad5e;\n        }\n      }\n      else {\n        iVar3 = absolute_pathname(pcVar8);\n        if ((iVar3 == 0) &&\n           ((privileged_mode == 0 && (iVar3 = get_string_value("CDPATH"), iVar3 != 0)))) {\n          pcVar8 = *(char **)piVar5[1];\n          local_24 = 0;\n          while (pcVar4 = (char *)extract_colon_unit(iVar3,&local_24), pcVar4 != (char *)0x0) {\n            cVar1 = *pcVar4;\n            pcVar6 = (char *)sh_makepath(pcVar4,pcVar8,1);\n            free(pcVar4);\n            iVar9 = FUN_0009a830();\n            if (iVar9 != 0) {\n              if (cVar1 != '\0') {\n                pcVar8 = pcVar6;\n                if (iVar10 == 0) {\n                  pcVar8 = the_current_working_directory;\n                }\n                if (pcVar8 != (char *)0x0) {\n                  puts(pcVar8);\n                }\n              }\n              free(pcVar6);\n              local_40 = FUN_0009a6e0();\n              goto LAB_0009ab97;\n            }\n            free(pcVar6);\n          }\n        }\n        else {\n          pcVar8 = *(char **)piVar5[1];\n        }\n        iVar10 = FUN_0009a830();\n        if (iVar10 != 0) {\nLAB_0009ad5e:\n          local_40 = FUN_0009a6e0();\n          goto LAB_0009ab97;\n        }\n        if (((bVar11) && (pcVar4 = (char *)get_string_value(pcVar8), pcVar4 != (char *)0x0)) &&\n           (iVar10 = FUN_0009a830(), iVar10 != 0)) {\n          puts(pcVar4);\n          local_40 = FUN_0009a6e0();\n          goto LAB_0009ab97;\n        }\n        if ((bVar2) && (pcVar4 = (char *)dirspell(pcVar8), pcVar4 != (char *)0x0)) {\n          iVar10 = FUN_0009a830();\n          if (iVar10 != 0) {\n            puts(pcVar4);\n            free(pcVar4);\n            local_40 = FUN_0009a6e0();\n            goto LAB_0009ab97;\n          }\n          free(pcVar4);\n        }\n      }\nLAB_0009ace1:\n      piVar5 = __errno_location();\n      iVar10 = *piVar5;\n      pcVar4 = (char *)printable_filename(pcVar8,0);\n      pcVar6 = strerror(iVar10);\n      builtin_error("%s: %s",pcVar4,pcVar6);\n      local_40 = 1;\n      if (pcVar4 != pcVar8) {\n        local_40 = 1;\n        free(pcVar4);\n      }\n      goto LAB_0009ab97;\n    }" (if "if") (parenthesized_expression "(*loptend == 0)" (( "(") (binary_expression "*loptend == 0" (pointer_expression "*loptend" (* "*") (identifier "loptend")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      pcVar8 = *(char **)loptend[1];\n      if ((*pcVar8 == '-') && (pcVar8[1] == '\0')) {\n        pcVar8 = (char *)get_string_value(&DAT_000ef147);\n        if (pcVar8 == (char *)0x0) {\n          pcVar8 = "OLDPWD not set";\n          goto LAB_0009ad7b;\n        }\n        iVar10 = FUN_0009a830();\n        if (iVar10 != 0) {\n          puts(pcVar8);\n          goto LAB_0009ad5e;\n        }\n      }\n      else {\n        iVar3 = absolute_pathname(pcVar8);\n        if ((iVar3 == 0) &&\n           ((privileged_mode == 0 && (iVar3 = get_string_value("CDPATH"), iVar3 != 0)))) {\n          pcVar8 = *(char **)piVar5[1];\n          local_24 = 0;\n          while (pcVar4 = (char *)extract_colon_unit(iVar3,&local_24), pcVar4 != (char *)0x0) {\n            cVar1 = *pcVar4;\n            pcVar6 = (char *)sh_makepath(pcVar4,pcVar8,1);\n            free(pcVar4);\n            iVar9 = FUN_0009a830();\n            if (iVar9 != 0) {\n              if (cVar1 != '\0') {\n                pcVar8 = pcVar6;\n                if (iVar10 == 0) {\n                  pcVar8 = the_current_working_directory;\n                }\n                if (pcVar8 != (char *)0x0) {\n                  puts(pcVar8);\n                }\n              }\n              free(pcVar6);\n              local_40 = FUN_0009a6e0();\n              goto LAB_0009ab97;\n            }\n            free(pcVar6);\n          }\n        }\n        else {\n          pcVar8 = *(char **)piVar5[1];\n        }\n        iVar10 = FUN_0009a830();\n        if (iVar10 != 0) {\nLAB_0009ad5e:\n          local_40 = FUN_0009a6e0();\n          goto LAB_0009ab97;\n        }\n        if (((bVar11) && (pcVar4 = (char *)get_string_value(pcVar8), pcVar4 != (char *)0x0)) &&\n           (iVar10 = FUN_0009a830(), iVar10 != 0)) {\n          puts(pcVar4);\n          local_40 = FUN_0009a6e0();\n          goto LAB_0009ab97;\n        }\n        if ((bVar2) && (pcVar4 = (char *)dirspell(pcVar8), pcVar4 != (char *)0x0)) {\n          iVar10 = FUN_0009a830();\n          if (iVar10 != 0) {\n            puts(pcVar4);\n            free(pcVar4);\n            local_40 = FUN_0009a6e0();\n            goto LAB_0009ab97;\n          }\n          free(pcVar4);\n        }\n      }\nLAB_0009ace1:\n      piVar5 = __errno_location();\n      iVar10 = *piVar5;\n      pcVar4 = (char *)printable_filename(pcVar8,0);\n      pcVar6 = strerror(iVar10);\n      builtin_error("%s: %s",pcVar4,pcVar6);\n      local_40 = 1;\n      if (pcVar4 != pcVar8) {\n        local_40 = 1;\n        free(pcVar4);\n      }\n      goto LAB_0009ab97;\n    }" ({ "{") (expression_statement "pcVar8 = *(char **)loptend[1];" (assignment_expression "pcVar8 = *(char **)loptend[1]" (identifier "pcVar8") (= "=") (pointer_expression "*(char **)loptend[1]" (* "*") (cast_expression "(char **)loptend[1]" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (subscript_expression "loptend[1]" (identifier "loptend") ([ "[") (number_literal "1") (] "]"))))) (; ";")) (if_statement "if ((*pcVar8 == '-') && (pcVar8[1] == '\0')) {\n        pcVar8 = (char *)get_string_value(&DAT_000ef147);\n        if (pcVar8 == (char *)0x0) {\n          pcVar8 = "OLDPWD not set";\n          goto LAB_0009ad7b;\n        }\n        iVar10 = FUN_0009a830();\n        if (iVar10 != 0) {\n          puts(pcVar8);\n          goto LAB_0009ad5e;\n        }\n      }\n      else {\n        iVar3 = absolute_pathname(pcVar8);\n        if ((iVar3 == 0) &&\n           ((privileged_mode == 0 && (iVar3 = get_string_value("CDPATH"), iVar3 != 0)))) {\n          pcVar8 = *(char **)piVar5[1];\n          local_24 = 0;\n          while (pcVar4 = (char *)extract_colon_unit(iVar3,&local_24), pcVar4 != (char *)0x0) {\n            cVar1 = *pcVar4;\n            pcVar6 = (char *)sh_makepath(pcVar4,pcVar8,1);\n            free(pcVar4);\n            iVar9 = FUN_0009a830();\n            if (iVar9 != 0) {\n              if (cVar1 != '\0') {\n                pcVar8 = pcVar6;\n                if (iVar10 == 0) {\n                  pcVar8 = the_current_working_directory;\n                }\n                if (pcVar8 != (char *)0x0) {\n                  puts(pcVar8);\n                }\n              }\n              free(pcVar6);\n              local_40 = FUN_0009a6e0();\n              goto LAB_0009ab97;\n            }\n            free(pcVar6);\n          }\n        }\n        else {\n          pcVar8 = *(char **)piVar5[1];\n        }\n        iVar10 = FUN_0009a830();\n        if (iVar10 != 0) {\nLAB_0009ad5e:\n          local_40 = FUN_0009a6e0();\n          goto LAB_0009ab97;\n        }\n        if (((bVar11) && (pcVar4 = (char *)get_string_value(pcVar8), pcVar4 != (char *)0x0)) &&\n           (iVar10 = FUN_0009a830(), iVar10 != 0)) {\n          puts(pcVar4);\n          local_40 = FUN_0009a6e0();\n          goto LAB_0009ab97;\n        }\n        if ((bVar2) && (pcVar4 = (char *)dirspell(pcVar8), pcVar4 != (char *)0x0)) {\n          iVar10 = FUN_0009a830();\n          if (iVar10 != 0) {\n            puts(pcVar4);\n            free(pcVar4);\n            local_40 = FUN_0009a6e0();\n            goto LAB_0009ab97;\n          }\n          free(pcVar4);\n        }\n      }" (if "if") (parenthesized_expression "((*pcVar8 == '-') && (pcVar8[1] == '\0'))" (( "(") (binary_expression "(*pcVar8 == '-') && (pcVar8[1] == '\0')" (parenthesized_expression "(*pcVar8 == '-')" (( "(") (binary_expression "*pcVar8 == '-'" (pointer_expression "*pcVar8" (* "*") (identifier "pcVar8")) (== "==") (char_literal "'-'" (' "'") (character "-") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(pcVar8[1] == '\0')" (( "(") (binary_expression "pcVar8[1] == '\0'" (subscript_expression "pcVar8[1]" (identifier "pcVar8") ([ "[") (number_literal "1") (] "]")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\n        pcVar8 = (char *)get_string_value(&DAT_000ef147);\n        if (pcVar8 == (char *)0x0) {\n          pcVar8 = "OLDPWD not set";\n          goto LAB_0009ad7b;\n        }\n        iVar10 = FUN_0009a830();\n        if (iVar10 != 0) {\n          puts(pcVar8);\n          goto LAB_0009ad5e;\n        }\n      }" ({ "{") (expression_statement "pcVar8 = (char *)get_string_value(&DAT_000ef147);" (assignment_expression "pcVar8 = (char *)get_string_value(&DAT_000ef147)" (identifier "pcVar8") (= "=") (cast_expression "(char *)get_string_value(&DAT_000ef147)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "get_string_value(&DAT_000ef147)" (identifier "get_string_value") (argument_list "(&DAT_000ef147)" (( "(") (pointer_expression "&DAT_000ef147" (& "&") (identifier "DAT_000ef147")) () ")"))))) (; ";")) (if_statement "if (pcVar8 == (char *)0x0) {\n          pcVar8 = "OLDPWD not set";\n          goto LAB_0009ad7b;\n        }" (if "if") (parenthesized_expression "(pcVar8 == (char *)0x0)" (( "(") (binary_expression "pcVar8 == (char *)0x0" (identifier "pcVar8") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          pcVar8 = "OLDPWD not set";\n          goto LAB_0009ad7b;\n        }" ({ "{") (expression_statement "pcVar8 = "OLDPWD not set";" (assignment_expression "pcVar8 = "OLDPWD not set"" (identifier "pcVar8") (= "=") (string_literal ""OLDPWD not set"" (" """) (string_content "OLDPWD not set") (" """))) (; ";")) (goto_statement "goto LAB_0009ad7b;" (goto "goto") (statement_identifier "LAB_0009ad7b") (; ";")) (} "}"))) (expression_statement "iVar10 = FUN_0009a830();" (assignment_expression "iVar10 = FUN_0009a830()" (identifier "iVar10") (= "=") (call_expression "FUN_0009a830()" (identifier "FUN_0009a830") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar10 != 0) {\n          puts(pcVar8);\n          goto LAB_0009ad5e;\n        }" (if "if") (parenthesized_expression "(iVar10 != 0)" (( "(") (binary_expression "iVar10 != 0" (identifier "iVar10") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          puts(pcVar8);\n          goto LAB_0009ad5e;\n        }" ({ "{") (expression_statement "puts(pcVar8);" (call_expression "puts(pcVar8)" (identifier "puts") (argument_list "(pcVar8)" (( "(") (identifier "pcVar8") () ")"))) (; ";")) (goto_statement "goto LAB_0009ad5e;" (goto "goto") (statement_identifier "LAB_0009ad5e") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n        iVar3 = absolute_pathname(pcVar8);\n        if ((iVar3 == 0) &&\n           ((privileged_mode == 0 && (iVar3 = get_string_value("CDPATH"), iVar3 != 0)))) {\n          pcVar8 = *(char **)piVar5[1];\n          local_24 = 0;\n          while (pcVar4 = (char *)extract_colon_unit(iVar3,&local_24), pcVar4 != (char *)0x0) {\n            cVar1 = *pcVar4;\n            pcVar6 = (char *)sh_makepath(pcVar4,pcVar8,1);\n            free(pcVar4);\n            iVar9 = FUN_0009a830();\n            if (iVar9 != 0) {\n              if (cVar1 != '\0') {\n                pcVar8 = pcVar6;\n                if (iVar10 == 0) {\n                  pcVar8 = the_current_working_directory;\n                }\n                if (pcVar8 != (char *)0x0) {\n                  puts(pcVar8);\n                }\n              }\n              free(pcVar6);\n              local_40 = FUN_0009a6e0();\n              goto LAB_0009ab97;\n            }\n            free(pcVar6);\n          }\n        }\n        else {\n          pcVar8 = *(char **)piVar5[1];\n        }\n        iVar10 = FUN_0009a830();\n        if (iVar10 != 0) {\nLAB_0009ad5e:\n          local_40 = FUN_0009a6e0();\n          goto LAB_0009ab97;\n        }\n        if (((bVar11) && (pcVar4 = (char *)get_string_value(pcVar8), pcVar4 != (char *)0x0)) &&\n           (iVar10 = FUN_0009a830(), iVar10 != 0)) {\n          puts(pcVar4);\n          local_40 = FUN_0009a6e0();\n          goto LAB_0009ab97;\n        }\n        if ((bVar2) && (pcVar4 = (char *)dirspell(pcVar8), pcVar4 != (char *)0x0)) {\n          iVar10 = FUN_0009a830();\n          if (iVar10 != 0) {\n            puts(pcVar4);\n            free(pcVar4);\n            local_40 = FUN_0009a6e0();\n            goto LAB_0009ab97;\n          }\n          free(pcVar4);\n        }\n      }" (else "else") (compound_statement "{\n        iVar3 = absolute_pathname(pcVar8);\n        if ((iVar3 == 0) &&\n           ((privileged_mode == 0 && (iVar3 = get_string_value("CDPATH"), iVar3 != 0)))) {\n          pcVar8 = *(char **)piVar5[1];\n          local_24 = 0;\n          while (pcVar4 = (char *)extract_colon_unit(iVar3,&local_24), pcVar4 != (char *)0x0) {\n            cVar1 = *pcVar4;\n            pcVar6 = (char *)sh_makepath(pcVar4,pcVar8,1);\n            free(pcVar4);\n            iVar9 = FUN_0009a830();\n            if (iVar9 != 0) {\n              if (cVar1 != '\0') {\n                pcVar8 = pcVar6;\n                if (iVar10 == 0) {\n                  pcVar8 = the_current_working_directory;\n                }\n                if (pcVar8 != (char *)0x0) {\n                  puts(pcVar8);\n                }\n              }\n              free(pcVar6);\n              local_40 = FUN_0009a6e0();\n              goto LAB_0009ab97;\n            }\n            free(pcVar6);\n          }\n        }\n        else {\n          pcVar8 = *(char **)piVar5[1];\n        }\n        iVar10 = FUN_0009a830();\n        if (iVar10 != 0) {\nLAB_0009ad5e:\n          local_40 = FUN_0009a6e0();\n          goto LAB_0009ab97;\n        }\n        if (((bVar11) && (pcVar4 = (char *)get_string_value(pcVar8), pcVar4 != (char *)0x0)) &&\n           (iVar10 = FUN_0009a830(), iVar10 != 0)) {\n          puts(pcVar4);\n          local_40 = FUN_0009a6e0();\n          goto LAB_0009ab97;\n        }\n        if ((bVar2) && (pcVar4 = (char *)dirspell(pcVar8), pcVar4 != (char *)0x0)) {\n          iVar10 = FUN_0009a830();\n          if (iVar10 != 0) {\n            puts(pcVar4);\n            free(pcVar4);\n            local_40 = FUN_0009a6e0();\n            goto LAB_0009ab97;\n          }\n          free(pcVar4);\n        }\n      }" ({ "{") (expression_statement "iVar3 = absolute_pathname(pcVar8);" (assignment_expression "iVar3 = absolute_pathname(pcVar8)" (identifier "iVar3") (= "=") (call_expression "absolute_pathname(pcVar8)" (identifier "absolute_pathname") (argument_list "(pcVar8)" (( "(") (identifier "pcVar8") () ")")))) (; ";")) (if_statement "if ((iVar3 == 0) &&\n           ((privileged_mode == 0 && (iVar3 = get_string_value("CDPATH"), iVar3 != 0)))) {\n          pcVar8 = *(char **)piVar5[1];\n          local_24 = 0;\n          while (pcVar4 = (char *)extract_colon_unit(iVar3,&local_24), pcVar4 != (char *)0x0) {\n            cVar1 = *pcVar4;\n            pcVar6 = (char *)sh_makepath(pcVar4,pcVar8,1);\n            free(pcVar4);\n            iVar9 = FUN_0009a830();\n            if (iVar9 != 0) {\n              if (cVar1 != '\0') {\n                pcVar8 = pcVar6;\n                if (iVar10 == 0) {\n                  pcVar8 = the_current_working_directory;\n                }\n                if (pcVar8 != (char *)0x0) {\n                  puts(pcVar8);\n                }\n              }\n              free(pcVar6);\n              local_40 = FUN_0009a6e0();\n              goto LAB_0009ab97;\n            }\n            free(pcVar6);\n          }\n        }\n        else {\n          pcVar8 = *(char **)piVar5[1];\n        }" (if "if") (parenthesized_expression "((iVar3 == 0) &&\n           ((privileged_mode == 0 && (iVar3 = get_string_value("CDPATH"), iVar3 != 0))))" (( "(") (binary_expression "(iVar3 == 0) &&\n           ((privileged_mode == 0 && (iVar3 = get_string_value("CDPATH"), iVar3 != 0)))" (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((privileged_mode == 0 && (iVar3 = get_string_value("CDPATH"), iVar3 != 0)))" (( "(") (parenthesized_expression "(privileged_mode == 0 && (iVar3 = get_string_value("CDPATH"), iVar3 != 0))" (( "(") (binary_expression "privileged_mode == 0 && (iVar3 = get_string_value("CDPATH"), iVar3 != 0)" (binary_expression "privileged_mode == 0" (identifier "privileged_mode") (== "==") (number_literal "0")) (&& "&&") (parenthesized_expression "(iVar3 = get_string_value("CDPATH"), iVar3 != 0)" (( "(") (comma_expression "iVar3 = get_string_value("CDPATH"), iVar3 != 0" (assignment_expression "iVar3 = get_string_value("CDPATH")" (identifier "iVar3") (= "=") (call_expression "get_string_value("CDPATH")" (identifier "get_string_value") (argument_list "("CDPATH")" (( "(") (string_literal ""CDPATH"" (" """) (string_content "CDPATH") (" """)) () ")")))) (, ",") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0"))) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n          pcVar8 = *(char **)piVar5[1];\n          local_24 = 0;\n          while (pcVar4 = (char *)extract_colon_unit(iVar3,&local_24), pcVar4 != (char *)0x0) {\n            cVar1 = *pcVar4;\n            pcVar6 = (char *)sh_makepath(pcVar4,pcVar8,1);\n            free(pcVar4);\n            iVar9 = FUN_0009a830();\n            if (iVar9 != 0) {\n              if (cVar1 != '\0') {\n                pcVar8 = pcVar6;\n                if (iVar10 == 0) {\n                  pcVar8 = the_current_working_directory;\n                }\n                if (pcVar8 != (char *)0x0) {\n                  puts(pcVar8);\n                }\n              }\n              free(pcVar6);\n              local_40 = FUN_0009a6e0();\n              goto LAB_0009ab97;\n            }\n            free(pcVar6);\n          }\n        }" ({ "{") (expression_statement "pcVar8 = *(char **)piVar5[1];" (assignment_expression "pcVar8 = *(char **)piVar5[1]" (identifier "pcVar8") (= "=") (pointer_expression "*(char **)piVar5[1]" (* "*") (cast_expression "(char **)piVar5[1]" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (subscript_expression "piVar5[1]" (identifier "piVar5") ([ "[") (number_literal "1") (] "]"))))) (; ";")) (expression_statement "local_24 = 0;" (assignment_expression "local_24 = 0" (identifier "local_24") (= "=") (number_literal "0")) (; ";")) (while_statement "while (pcVar4 = (char *)extract_colon_unit(iVar3,&local_24), pcVar4 != (char *)0x0) {\n            cVar1 = *pcVar4;\n            pcVar6 = (char *)sh_makepath(pcVar4,pcVar8,1);\n            free(pcVar4);\n            iVar9 = FUN_0009a830();\n            if (iVar9 != 0) {\n              if (cVar1 != '\0') {\n                pcVar8 = pcVar6;\n                if (iVar10 == 0) {\n                  pcVar8 = the_current_working_directory;\n                }\n                if (pcVar8 != (char *)0x0) {\n                  puts(pcVar8);\n                }\n              }\n              free(pcVar6);\n              local_40 = FUN_0009a6e0();\n              goto LAB_0009ab97;\n            }\n            free(pcVar6);\n          }" (while "while") (parenthesized_expression "(pcVar4 = (char *)extract_colon_unit(iVar3,&local_24), pcVar4 != (char *)0x0)" (( "(") (comma_expression "pcVar4 = (char *)extract_colon_unit(iVar3,&local_24), pcVar4 != (char *)0x0" (assignment_expression "pcVar4 = (char *)extract_colon_unit(iVar3,&local_24)" (identifier "pcVar4") (= "=") (cast_expression "(char *)extract_colon_unit(iVar3,&local_24)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "extract_colon_unit(iVar3,&local_24)" (identifier "extract_colon_unit") (argument_list "(iVar3,&local_24)" (( "(") (identifier "iVar3") (, ",") (pointer_expression "&local_24" (& "&") (identifier "local_24")) () ")"))))) (, ",") (binary_expression "pcVar4 != (char *)0x0" (identifier "pcVar4") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")")) (compound_statement "{\n            cVar1 = *pcVar4;\n            pcVar6 = (char *)sh_makepath(pcVar4,pcVar8,1);\n            free(pcVar4);\n            iVar9 = FUN_0009a830();\n            if (iVar9 != 0) {\n              if (cVar1 != '\0') {\n                pcVar8 = pcVar6;\n                if (iVar10 == 0) {\n                  pcVar8 = the_current_working_directory;\n                }\n                if (pcVar8 != (char *)0x0) {\n                  puts(pcVar8);\n                }\n              }\n              free(pcVar6);\n              local_40 = FUN_0009a6e0();\n              goto LAB_0009ab97;\n            }\n            free(pcVar6);\n          }" ({ "{") (expression_statement "cVar1 = *pcVar4;" (assignment_expression "cVar1 = *pcVar4" (identifier "cVar1") (= "=") (pointer_expression "*pcVar4" (* "*") (identifier "pcVar4"))) (; ";")) (expression_statement "pcVar6 = (char *)sh_makepath(pcVar4,pcVar8,1);" (assignment_expression "pcVar6 = (char *)sh_makepath(pcVar4,pcVar8,1)" (identifier "pcVar6") (= "=") (cast_expression "(char *)sh_makepath(pcVar4,pcVar8,1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "sh_makepath(pcVar4,pcVar8,1)" (identifier "sh_makepath") (argument_list "(pcVar4,pcVar8,1)" (( "(") (identifier "pcVar4") (, ",") (identifier "pcVar8") (, ",") (number_literal "1") () ")"))))) (; ";")) (expression_statement "free(pcVar4);" (call_expression "free(pcVar4)" (identifier "free") (argument_list "(pcVar4)" (( "(") (identifier "pcVar4") () ")"))) (; ";")) (expression_statement "iVar9 = FUN_0009a830();" (assignment_expression "iVar9 = FUN_0009a830()" (identifier "iVar9") (= "=") (call_expression "FUN_0009a830()" (identifier "FUN_0009a830") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar9 != 0) {\n              if (cVar1 != '\0') {\n                pcVar8 = pcVar6;\n                if (iVar10 == 0) {\n                  pcVar8 = the_current_working_directory;\n                }\n                if (pcVar8 != (char *)0x0) {\n                  puts(pcVar8);\n                }\n              }\n              free(pcVar6);\n              local_40 = FUN_0009a6e0();\n              goto LAB_0009ab97;\n            }" (if "if") (parenthesized_expression "(iVar9 != 0)" (( "(") (binary_expression "iVar9 != 0" (identifier "iVar9") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              if (cVar1 != '\0') {\n                pcVar8 = pcVar6;\n                if (iVar10 == 0) {\n                  pcVar8 = the_current_working_directory;\n                }\n                if (pcVar8 != (char *)0x0) {\n                  puts(pcVar8);\n                }\n              }\n              free(pcVar6);\n              local_40 = FUN_0009a6e0();\n              goto LAB_0009ab97;\n            }" ({ "{") (if_statement "if (cVar1 != '\0') {\n                pcVar8 = pcVar6;\n                if (iVar10 == 0) {\n                  pcVar8 = the_current_working_directory;\n                }\n                if (pcVar8 != (char *)0x0) {\n                  puts(pcVar8);\n                }\n              }" (if "if") (parenthesized_expression "(cVar1 != '\0')" (( "(") (binary_expression "cVar1 != '\0'" (identifier "cVar1") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n                pcVar8 = pcVar6;\n                if (iVar10 == 0) {\n                  pcVar8 = the_current_working_directory;\n                }\n                if (pcVar8 != (char *)0x0) {\n                  puts(pcVar8);\n                }\n              }" ({ "{") (expression_statement "pcVar8 = pcVar6;" (assignment_expression "pcVar8 = pcVar6" (identifier "pcVar8") (= "=") (identifier "pcVar6")) (; ";")) (if_statement "if (iVar10 == 0) {\n                  pcVar8 = the_current_working_directory;\n                }" (if "if") (parenthesized_expression "(iVar10 == 0)" (( "(") (binary_expression "iVar10 == 0" (identifier "iVar10") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                  pcVar8 = the_current_working_directory;\n                }" ({ "{") (expression_statement "pcVar8 = the_current_working_directory;" (assignment_expression "pcVar8 = the_current_working_directory" (identifier "pcVar8") (= "=") (identifier "the_current_working_directory")) (; ";")) (} "}"))) (if_statement "if (pcVar8 != (char *)0x0) {\n                  puts(pcVar8);\n                }" (if "if") (parenthesized_expression "(pcVar8 != (char *)0x0)" (( "(") (binary_expression "pcVar8 != (char *)0x0" (identifier "pcVar8") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                  puts(pcVar8);\n                }" ({ "{") (expression_statement "puts(pcVar8);" (call_expression "puts(pcVar8)" (identifier "puts") (argument_list "(pcVar8)" (( "(") (identifier "pcVar8") () ")"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "free(pcVar6);" (call_expression "free(pcVar6)" (identifier "free") (argument_list "(pcVar6)" (( "(") (identifier "pcVar6") () ")"))) (; ";")) (expression_statement "local_40 = FUN_0009a6e0();" (assignment_expression "local_40 = FUN_0009a6e0()" (identifier "local_40") (= "=") (call_expression "FUN_0009a6e0()" (identifier "FUN_0009a6e0") (argument_list "()" (( "(") () ")")))) (; ";")) (goto_statement "goto LAB_0009ab97;" (goto "goto") (statement_identifier "LAB_0009ab97") (; ";")) (} "}"))) (expression_statement "free(pcVar6);" (call_expression "free(pcVar6)" (identifier "free") (argument_list "(pcVar6)" (( "(") (identifier "pcVar6") () ")"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n          pcVar8 = *(char **)piVar5[1];\n        }" (else "else") (compound_statement "{\n          pcVar8 = *(char **)piVar5[1];\n        }" ({ "{") (expression_statement "pcVar8 = *(char **)piVar5[1];" (assignment_expression "pcVar8 = *(char **)piVar5[1]" (identifier "pcVar8") (= "=") (pointer_expression "*(char **)piVar5[1]" (* "*") (cast_expression "(char **)piVar5[1]" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (subscript_expression "piVar5[1]" (identifier "piVar5") ([ "[") (number_literal "1") (] "]"))))) (; ";")) (} "}")))) (expression_statement "iVar10 = FUN_0009a830();" (assignment_expression "iVar10 = FUN_0009a830()" (identifier "iVar10") (= "=") (call_expression "FUN_0009a830()" (identifier "FUN_0009a830") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar10 != 0) {\nLAB_0009ad5e:\n          local_40 = FUN_0009a6e0();\n          goto LAB_0009ab97;\n        }" (if "if") (parenthesized_expression "(iVar10 != 0)" (( "(") (binary_expression "iVar10 != 0" (identifier "iVar10") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0009ad5e:\n          local_40 = FUN_0009a6e0();\n          goto LAB_0009ab97;\n        }" ({ "{") (labeled_statement "LAB_0009ad5e:\n          local_40 = FUN_0009a6e0();" (statement_identifier "LAB_0009ad5e") (: ":") (expression_statement "local_40 = FUN_0009a6e0();" (assignment_expression "local_40 = FUN_0009a6e0()" (identifier "local_40") (= "=") (call_expression "FUN_0009a6e0()" (identifier "FUN_0009a6e0") (argument_list "()" (( "(") () ")")))) (; ";"))) (goto_statement "goto LAB_0009ab97;" (goto "goto") (statement_identifier "LAB_0009ab97") (; ";")) (} "}"))) (if_statement "if (((bVar11) && (pcVar4 = (char *)get_string_value(pcVar8), pcVar4 != (char *)0x0)) &&\n           (iVar10 = FUN_0009a830(), iVar10 != 0)) {\n          puts(pcVar4);\n          local_40 = FUN_0009a6e0();\n          goto LAB_0009ab97;\n        }" (if "if") (parenthesized_expression "(((bVar11) && (pcVar4 = (char *)get_string_value(pcVar8), pcVar4 != (char *)0x0)) &&\n           (iVar10 = FUN_0009a830(), iVar10 != 0))" (( "(") (binary_expression "((bVar11) && (pcVar4 = (char *)get_string_value(pcVar8), pcVar4 != (char *)0x0)) &&\n           (iVar10 = FUN_0009a830(), iVar10 != 0)" (parenthesized_expression "((bVar11) && (pcVar4 = (char *)get_string_value(pcVar8), pcVar4 != (char *)0x0))" (( "(") (binary_expression "(bVar11) && (pcVar4 = (char *)get_string_value(pcVar8), pcVar4 != (char *)0x0)" (parenthesized_expression "(bVar11)" (( "(") (identifier "bVar11") () ")")) (&& "&&") (parenthesized_expression "(pcVar4 = (char *)get_string_value(pcVar8), pcVar4 != (char *)0x0)" (( "(") (comma_expression "pcVar4 = (char *)get_string_value(pcVar8), pcVar4 != (char *)0x0" (assignment_expression "pcVar4 = (char *)get_string_value(pcVar8)" (identifier "pcVar4") (= "=") (cast_expression "(char *)get_string_value(pcVar8)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "get_string_value(pcVar8)" (identifier "get_string_value") (argument_list "(pcVar8)" (( "(") (identifier "pcVar8") () ")"))))) (, ",") (binary_expression "pcVar4 != (char *)0x0" (identifier "pcVar4") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(iVar10 = FUN_0009a830(), iVar10 != 0)" (( "(") (comma_expression "iVar10 = FUN_0009a830(), iVar10 != 0" (assignment_expression "iVar10 = FUN_0009a830()" (identifier "iVar10") (= "=") (call_expression "FUN_0009a830()" (identifier "FUN_0009a830") (argument_list "()" (( "(") () ")")))) (, ",") (binary_expression "iVar10 != 0" (identifier "iVar10") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n          puts(pcVar4);\n          local_40 = FUN_0009a6e0();\n          goto LAB_0009ab97;\n        }" ({ "{") (expression_statement "puts(pcVar4);" (call_expression "puts(pcVar4)" (identifier "puts") (argument_list "(pcVar4)" (( "(") (identifier "pcVar4") () ")"))) (; ";")) (expression_statement "local_40 = FUN_0009a6e0();" (assignment_expression "local_40 = FUN_0009a6e0()" (identifier "local_40") (= "=") (call_expression "FUN_0009a6e0()" (identifier "FUN_0009a6e0") (argument_list "()" (( "(") () ")")))) (; ";")) (goto_statement "goto LAB_0009ab97;" (goto "goto") (statement_identifier "LAB_0009ab97") (; ";")) (} "}"))) (if_statement "if ((bVar2) && (pcVar4 = (char *)dirspell(pcVar8), pcVar4 != (char *)0x0)) {\n          iVar10 = FUN_0009a830();\n          if (iVar10 != 0) {\n            puts(pcVar4);\n            free(pcVar4);\n            local_40 = FUN_0009a6e0();\n            goto LAB_0009ab97;\n          }\n          free(pcVar4);\n        }" (if "if") (parenthesized_expression "((bVar2) && (pcVar4 = (char *)dirspell(pcVar8), pcVar4 != (char *)0x0))" (( "(") (binary_expression "(bVar2) && (pcVar4 = (char *)dirspell(pcVar8), pcVar4 != (char *)0x0)" (parenthesized_expression "(bVar2)" (( "(") (identifier "bVar2") () ")")) (&& "&&") (parenthesized_expression "(pcVar4 = (char *)dirspell(pcVar8), pcVar4 != (char *)0x0)" (( "(") (comma_expression "pcVar4 = (char *)dirspell(pcVar8), pcVar4 != (char *)0x0" (assignment_expression "pcVar4 = (char *)dirspell(pcVar8)" (identifier "pcVar4") (= "=") (cast_expression "(char *)dirspell(pcVar8)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dirspell(pcVar8)" (identifier "dirspell") (argument_list "(pcVar8)" (( "(") (identifier "pcVar8") () ")"))))) (, ",") (binary_expression "pcVar4 != (char *)0x0" (identifier "pcVar4") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")"))) () ")")) (compound_statement "{\n          iVar10 = FUN_0009a830();\n          if (iVar10 != 0) {\n            puts(pcVar4);\n            free(pcVar4);\n            local_40 = FUN_0009a6e0();\n            goto LAB_0009ab97;\n          }\n          free(pcVar4);\n        }" ({ "{") (expression_statement "iVar10 = FUN_0009a830();" (assignment_expression "iVar10 = FUN_0009a830()" (identifier "iVar10") (= "=") (call_expression "FUN_0009a830()" (identifier "FUN_0009a830") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar10 != 0) {\n            puts(pcVar4);\n            free(pcVar4);\n            local_40 = FUN_0009a6e0();\n            goto LAB_0009ab97;\n          }" (if "if") (parenthesized_expression "(iVar10 != 0)" (( "(") (binary_expression "iVar10 != 0" (identifier "iVar10") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            puts(pcVar4);\n            free(pcVar4);\n            local_40 = FUN_0009a6e0();\n            goto LAB_0009ab97;\n          }" ({ "{") (expression_statement "puts(pcVar4);" (call_expression "puts(pcVar4)" (identifier "puts") (argument_list "(pcVar4)" (( "(") (identifier "pcVar4") () ")"))) (; ";")) (expression_statement "free(pcVar4);" (call_expression "free(pcVar4)" (identifier "free") (argument_list "(pcVar4)" (( "(") (identifier "pcVar4") () ")"))) (; ";")) (expression_statement "local_40 = FUN_0009a6e0();" (assignment_expression "local_40 = FUN_0009a6e0()" (identifier "local_40") (= "=") (call_expression "FUN_0009a6e0()" (identifier "FUN_0009a6e0") (argument_list "()" (( "(") () ")")))) (; ";")) (goto_statement "goto LAB_0009ab97;" (goto "goto") (statement_identifier "LAB_0009ab97") (; ";")) (} "}"))) (expression_statement "free(pcVar4);" (call_expression "free(pcVar4)" (identifier "free") (argument_list "(pcVar4)" (( "(") (identifier "pcVar4") () ")"))) (; ";")) (} "}"))) (} "}")))) (labeled_statement "LAB_0009ace1:\n      piVar5 = __errno_location();" (statement_identifier "LAB_0009ace1") (: ":") (expression_statement "piVar5 = __errno_location();" (assignment_expression "piVar5 = __errno_location()" (identifier "piVar5") (= "=") (call_expression "__errno_location()" (identifier "__errno_location") (argument_list "()" (( "(") () ")")))) (; ";"))) (expression_statement "iVar10 = *piVar5;" (assignment_expression "iVar10 = *piVar5" (identifier "iVar10") (= "=") (pointer_expression "*piVar5" (* "*") (identifier "piVar5"))) (; ";")) (expression_statement "pcVar4 = (char *)printable_filename(pcVar8,0);" (assignment_expression "pcVar4 = (char *)printable_filename(pcVar8,0)" (identifier "pcVar4") (= "=") (cast_expression "(char *)printable_filename(pcVar8,0)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "printable_filename(pcVar8,0)" (identifier "printable_filename") (argument_list "(pcVar8,0)" (( "(") (identifier "pcVar8") (, ",") (number_literal "0") () ")"))))) (; ";")) (expression_statement "pcVar6 = strerror(iVar10);" (assignment_expression "pcVar6 = strerror(iVar10)" (identifier "pcVar6") (= "=") (call_expression "strerror(iVar10)" (identifier "strerror") (argument_list "(iVar10)" (( "(") (identifier "iVar10") () ")")))) (; ";")) (expression_statement "builtin_error("%s: %s",pcVar4,pcVar6);" (call_expression "builtin_error("%s: %s",pcVar4,pcVar6)" (identifier "builtin_error") (argument_list "("%s: %s",pcVar4,pcVar6)" (( "(") (string_literal ""%s: %s"" (" """) (string_content "%s: %s") (" """)) (, ",") (identifier "pcVar4") (, ",") (identifier "pcVar6") () ")"))) (; ";")) (expression_statement "local_40 = 1;" (assignment_expression "local_40 = 1" (identifier "local_40") (= "=") (number_literal "1")) (; ";")) (if_statement "if (pcVar4 != pcVar8) {\n        local_40 = 1;\n        free(pcVar4);\n      }" (if "if") (parenthesized_expression "(pcVar4 != pcVar8)" (( "(") (binary_expression "pcVar4 != pcVar8" (identifier "pcVar4") (!= "!=") (identifier "pcVar8")) () ")")) (compound_statement "{\n        local_40 = 1;\n        free(pcVar4);\n      }" ({ "{") (expression_statement "local_40 = 1;" (assignment_expression "local_40 = 1" (identifier "local_40") (= "=") (number_literal "1")) (; ";")) (expression_statement "free(pcVar4);" (call_expression "free(pcVar4)" (identifier "free") (argument_list "(pcVar4)" (( "(") (identifier "pcVar4") () ")"))) (; ";")) (} "}"))) (goto_statement "goto LAB_0009ab97;" (goto "goto") (statement_identifier "LAB_0009ab97") (; ";")) (} "}"))) (expression_statement "pcVar8 = "too many arguments";" (assignment_expression "pcVar8 = "too many arguments"" (identifier "pcVar8") (= "=") (string_literal ""too many arguments"" (" """) (string_content "too many arguments") (" """))) (; ";")) (} "}")))) (labeled_statement "LAB_0009ad7b:\n  uVar7 = dcgettext(0,pcVar8,5);" (statement_identifier "LAB_0009ad7b") (: ":") (expression_statement "uVar7 = dcgettext(0,pcVar8,5);" (assignment_expression "uVar7 = dcgettext(0,pcVar8,5)" (identifier "uVar7") (= "=") (call_expression "dcgettext(0,pcVar8,5)" (identifier "dcgettext") (argument_list "(0,pcVar8,5)" (( "(") (number_literal "0") (, ",") (identifier "pcVar8") (, ",") (number_literal "5") () ")")))) (; ";"))) (expression_statement "builtin_error(uVar7);" (call_expression "builtin_error(uVar7)" (identifier "builtin_error") (argument_list "(uVar7)" (( "(") (identifier "uVar7") () ")"))) (; ";")) (expression_statement "local_40 = 1;" (assignment_expression "local_40 = 1" (identifier "local_40") (= "=") (number_literal "1")) (; ";")) (labeled_statement "LAB_0009ab97:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_000ecc40();\n  }" (statement_identifier "LAB_0009ab97") (: ":") (if_statement "if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_000ecc40();\n  }" (if "if") (parenthesized_expression "(local_20 != *(int *)(in_GS_OFFSET + 0x14))" (( "(") (binary_expression "local_20 != *(int *)(in_GS_OFFSET + 0x14)" (identifier "local_20") (!= "!=") (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(int *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) () ")")) (compound_statement "{\n                    \n    FUN_000ecc40();\n  }" ({ "{") (expression_statement "FUN_000ecc40();" (call_expression "FUN_000ecc40()" (identifier "FUN_000ecc40") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (return_statement "return local_40;" (return "return") (identifier "local_40") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

int function_1(type_1 *list)

{
  char var_27;
  bool bVar2;
  type_1 *pWVar3;
  int var_6;
  int var_20;
  char *var_22;
  int *piVar7;
  char *var_24;
  char *var_16;
  char *newdir;
  int extraout_ECX;
  int xattr;
  int xattr_00;
  int xattr_01;
  int xattr_02;
  int extraout_ECX_00;
  int xattr_03;
  int extraout_ECX_01;
  int var_13;
  int var_1;
  bool bVar11;
  int local_40;
  int path_index;
  int var_35;
  type_2 uStack_14;
  
  var_13 = no_symbolic_links;
  uStack_14 = 0x9ab09;
  var_35 = *(int *)(var_1 + 0x14);
  if (var_2 != 0) {
    var_3((char *)0x0);
    local_40 = 1;
    goto LAB_0009ab97;
  }
  var_12 = 0;
  var_4();
  while (var_6 = var_5(list,"eLP"), pWVar3 = var_14, var_6 != -1) {
    if (var_6 == 0x4c) {
      var_13 = 0;
    }
    else {
      if (var_6 < 0x4d) {
        if (var_6 == -99) {
          var_7();
          local_40 = 0x102;
        }
        else {
LAB_0009abd8:
          var_8();
          local_40 = 0x102;
        }
        goto LAB_0009ab97;
      }
      if (var_6 == 0x50) {
        var_13 = 1;
      }
      else {
        if (var_6 != 0x65) goto LAB_0009abd8;
        var_12 = 1;
      }
    }
  }
  bVar11 = var_9 != 0;
  bVar2 = false;
  if ((var_10 != 0) && (var_11 != 0)) {
    bVar2 = true;
  }
  if ((var_12 != 0) && (var_13 == 0)) {
    var_12 = 0;
  }
  if (var_14 == (type_1 *)0x0) {
    var_16 = var_15("HOME");
    if (var_16 != (char *)0x0) {
      var_6 = var_17(var_16,var_13,xattr_00);
      if (var_6 != 0) goto LAB_0009ad5e;
      goto LAB_0009ace1;
    }
    var_16 = "HOME not set";
  }
  else {
    if (var_14->next == (type_3 *)0x0) {
      var_16 = var_14->word->word;
      if ((*var_16 == '-') && (var_16[1] == '\0')) {
        var_16 = var_15("OLDPWD");
        if (var_16 == (char *)0x0) {
          var_16 = "OLDPWD not set";
          goto LAB_0009ad7b;
        }
        var_6 = var_17(var_16,var_13,xattr_02);
        if (var_6 != 0) {
          var_18(var_16);
          goto LAB_0009ad5e;
        }
      }
      else {
        var_20 = var_19(var_16);
        var_6 = extraout_ECX;
        if ((var_20 == 0) &&
           ((var_21 == 0 &&
            (var_22 = var_15("CDPATH"), var_6 = extraout_ECX_00, var_22 != (char *)0x0))))
        {
          var_16 = pWVar3->word->word;
          path_index = 0;
          while (var_24 = var_23(var_22,&path_index), var_6 = extraout_ECX_01,
                var_24 != (char *)0x0) {
            var_27 = *var_24;
            newdir = var_25(var_24,var_16,1);
            var_26(var_24);
            var_6 = var_17(newdir,var_13,xattr_03);
            if (var_6 != 0) {
              if (var_27 != '\0') {
                var_16 = newdir;
                if (var_13 == 0) {
                  var_16 = the_current_working_directory;
                }
                if (var_16 != (char *)0x0) {
                  var_18(var_16);
                }
              }
              var_26(newdir);
              local_40 = var_28(var_13);
              goto LAB_0009ab97;
            }
            var_26(newdir);
          }
        }
        else {
          var_16 = pWVar3->word->word;
        }
        var_6 = var_17(var_16,var_13,var_6);
        if (var_6 != 0) {
LAB_0009ad5e:
          local_40 = var_28(var_13);
          goto LAB_0009ab97;
        }
        if (((bVar11) && (var_22 = var_15(var_16), var_22 != (char *)0x0)) &&
           (var_6 = var_17(var_22,var_13,xattr_01), var_6 != 0)) {
          var_18(var_22);
          local_40 = var_28(var_13);
          goto LAB_0009ab97;
        }
        if ((bVar2) && (var_22 = var_29(var_16), var_22 != (char *)0x0)) {
          var_6 = var_17(var_22,var_13,xattr);
          if (var_6 != 0) {
            var_18(var_22);
            var_26(var_22);
            local_40 = var_28(var_13);
            goto LAB_0009ab97;
          }
          var_26(var_22);
        }
      }
LAB_0009ace1:
      piVar7 = var_30();
      var_13 = *piVar7;
      var_22 = var_31(var_16,0);
      var_24 = var_32(var_13);
      var_33("%s: %s",var_22,var_24);
      local_40 = 1;
      if (var_22 != var_16) {
        local_40 = 1;
        var_26(var_22);
      }
      goto LAB_0009ab97;
    }
    var_16 = "too many arguments";
  }
LAB_0009ad7b:
  var_16 = (char *)var_34(0,var_16,5);
  var_33(var_16);
  local_40 = 1;
LAB_0009ab97:
  if (var_35 != *(int *)(var_1 + 0x14)) {
                    /* WARNING: Subroutine does not return */
    var_36();
  }
  return local_40;
}


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

/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

undefined4 MASKED(undefined4 param_1)

{
  char cVar1;
  bool bVar2;
  int iVar3;
  char *pcVar4;
  int *piVar5;
  char *pcVar6;
  undefined4 uVar7;
  char *pcVar8;
  int iVar9;
  int iVar10;
  int in_GS_OFFSET;
  bool bVar11;
  undefined4 local_40;
  undefined4 local_24;
  int local_20;
  undefined4 uStack_14;
  
  iVar10 = no_symbolic_links;
  uStack_14 = 0x9ab09;
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  if (restricted != 0) {
    sh_restricted(0);
    local_40 = 1;
    goto LAB_0009ab97;
  }
  DAT_00151658 = 0;
  reset_internal_getopt();
  while (iVar3 = internal_getopt(param_1,&DAT_001017d8), piVar5 = loptend, iVar3 != -1) {
    if (iVar3 == 0x4c) {
      iVar10 = 0;
    }
    else {
      if (iVar3 < 0x4d) {
        if (iVar3 == -99) {
          builtin_help();
          local_40 = 0x102;
        }
        else {
LAB_0009abd8:
          builtin_usage();
          local_40 = 0x102;
        }
        goto LAB_0009ab97;
      }
      if (iVar3 == 0x50) {
        iVar10 = 1;
      }
      else {
        if (iVar3 != 0x65) goto LAB_0009abd8;
        DAT_00151658 = 1;
      }
    }
  }
  bVar11 = cdable_vars != 0;
  bVar2 = false;
  if ((interactive != 0) && (cdspelling != 0)) {
    bVar2 = true;
  }
  if ((DAT_00151658 != 0) && (iVar10 == 0)) {
    DAT_00151658 = 0;
  }
  if (loptend == (int *)0x0) {
    pcVar8 = (char *)get_string_value(&DAT_000ed68b);
    if (pcVar8 != (char *)0x0) {
      iVar10 = FUN_0009a830();
      if (iVar10 != 0) goto LAB_0009ad5e;
      goto LAB_0009ace1;
    }
    pcVar8 = "HOME not set";
  }
  else {
    if (*loptend == 0) {
      pcVar8 = *(char **)loptend[1];
      if ((*pcVar8 == '-') && (pcVar8[1] == '\0')) {
        pcVar8 = (char *)get_string_value(&DAT_000ef147);
        if (pcVar8 == (char *)0x0) {
          pcVar8 = "OLDPWD not set";
          goto LAB_0009ad7b;
        }
        iVar10 = FUN_0009a830();
        if (iVar10 != 0) {
          puts(pcVar8);
          goto LAB_0009ad5e;
        }
      }
      else {
        iVar3 = absolute_pathname(pcVar8);
        if ((iVar3 == 0) &&
           ((privileged_mode == 0 && (iVar3 = get_string_value("CDPATH"), iVar3 != 0)))) {
          pcVar8 = *(char **)piVar5[1];
          local_24 = 0;
          while (pcVar4 = (char *)extract_colon_unit(iVar3,&local_24), pcVar4 != (char *)0x0) {
            cVar1 = *pcVar4;
            pcVar6 = (char *)sh_makepath(pcVar4,pcVar8,1);
            free(pcVar4);
            iVar9 = FUN_0009a830();
            if (iVar9 != 0) {
              if (cVar1 != '\0') {
                pcVar8 = pcVar6;
                if (iVar10 == 0) {
                  pcVar8 = the_current_working_directory;
                }
                if (pcVar8 != (char *)0x0) {
                  puts(pcVar8);
                }
              }
              free(pcVar6);
              local_40 = FUN_0009a6e0();
              goto LAB_0009ab97;
            }
            free(pcVar6);
          }
        }
        else {
          pcVar8 = *(char **)piVar5[1];
        }
        iVar10 = FUN_0009a830();
        if (iVar10 != 0) {
LAB_0009ad5e:
          local_40 = FUN_0009a6e0();
          goto LAB_0009ab97;
        }
        if (((bVar11) && (pcVar4 = (char *)get_string_value(pcVar8), pcVar4 != (char *)0x0)) &&
           (iVar10 = FUN_0009a830(), iVar10 != 0)) {
          puts(pcVar4);
          local_40 = FUN_0009a6e0();
          goto LAB_0009ab97;
        }
        if ((bVar2) && (pcVar4 = (char *)dirspell(pcVar8), pcVar4 != (char *)0x0)) {
          iVar10 = FUN_0009a830();
          if (iVar10 != 0) {
            puts(pcVar4);
            free(pcVar4);
            local_40 = FUN_0009a6e0();
            goto LAB_0009ab97;
          }
          free(pcVar4);
        }
      }
LAB_0009ace1:
      piVar5 = __errno_location();
      iVar10 = *piVar5;
      pcVar4 = (char *)printable_filename(pcVar8,0);
      pcVar6 = strerror(iVar10);
      builtin_error("%s: %s",pcVar4,pcVar6);
      local_40 = 1;
      if (pcVar4 != pcVar8) {
        local_40 = 1;
        free(pcVar4);
      }
      goto LAB_0009ab97;
    }
    pcVar8 = "too many arguments";
  }
LAB_0009ad7b:
  uVar7 = dcgettext(0,pcVar8,5);
  builtin_error(uVar7);
  local_40 = 1;
LAB_0009ab97:
  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {
                    /* WARNING: Subroutine does not return */
    FUN_000ecc40();
  }
  return local_40;
}

