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

void usage(int status)

{
  FILE *pFVar1;
  undefined *puVar2;
  undefined4 uVar3;
  char *pcVar4;
  infomap *piVar5;
  int extraout_ECX;
  int iVar7;
  byte *pbVar8;
  byte *pbVar9;
  byte *pbVar10;
  bool bVar11;
  bool bVar12;
  byte bVar13;
  infomap infomap [7];
  infomap *piVar6;
  
  pcVar4 = program_name;
  bVar13 = 0;
  if (status != 0) {
    uVar3 = dcgettext(0,"Try \'%s --help\' for more information.\n",5);
    __fprintf_chk(*(undefined4 *)PTR_stderr_0001cfc0,1,uVar3,pcVar4);
    goto LAB_000123b3;
  }
  uVar3 = dcgettext(0,"Usage: %s OPTION... [FILE]...\n",5);
  __printf_chk(1,uVar3,pcVar4);
  puVar2 = PTR_stdout_0001cfd4;
  pFVar1 = *(FILE **)PTR_stdout_0001cfd4;
  pcVar4 = (char *)dcgettext(0,"Print selected parts of lines from each FILE to standard output.\n",
                             5);
  fputs_unlocked(pcVar4,pFVar1);
  pFVar1 = *(FILE **)puVar2;
  pcVar4 = (char *)dcgettext(0,"\nWith no FILE, or when FILE is -, read standard input.\n",5);
  fputs_unlocked(pcVar4,pFVar1);
  pFVar1 = *(FILE **)puVar2;
  pcVar4 = (char *)dcgettext(0,
                             "\nMandatory arguments to long options are mandatory for short options too.\n"
                             ,5);
  fputs_unlocked(pcVar4,pFVar1);
  pFVar1 = *(FILE **)puVar2;
  pcVar4 = (char *)dcgettext(0,
                             "  -b, --bytes=LIST        select only these bytes\n  -c, --characters=LIST   select only these characters\n  -d, --delimiter=DELIM   use DELIM instead of TAB for field delimiter\n"
                             ,5);
  fputs_unlocked(pcVar4,pFVar1);
  pFVar1 = *(FILE **)puVar2;
  pcVar4 = (char *)dcgettext(0,
                             "  -f, --fields=LIST       select only these fields;  also print any line\n                            that contains no delimiter character, unless\n                            the -s option is specified\n  -n                      (ignored)\n"
                             ,5);
  fputs_unlocked(pcVar4,pFVar1);
  pFVar1 = *(FILE **)puVar2;
  pcVar4 = (char *)dcgettext(0,
                             "      --complement        complement the set of selected bytes, characters\n                            or fields\n"
                             ,5);
  fputs_unlocked(pcVar4,pFVar1);
  pFVar1 = *(FILE **)puVar2;
  pcVar4 = (char *)dcgettext(0,
                             "  -s, --only-delimited    do not print lines not containing delimiters\n      --output-delimiter=STRING  use STRING as the output delimiter\n                            the default is to use the input delimiter\n"
                             ,5);
  fputs_unlocked(pcVar4,pFVar1);
  pFVar1 = *(FILE **)puVar2;
  pcVar4 = (char *)dcgettext(0,"  -z, --zero-terminated    line delimiter is NUL, not newline\n",5);
  fputs_unlocked(pcVar4,pFVar1);
  pFVar1 = *(FILE **)puVar2;
  pcVar4 = (char *)dcgettext(0,"      --help     display this help and exit\n",5);
  fputs_unlocked(pcVar4,pFVar1);
  pFVar1 = *(FILE **)puVar2;
  pcVar4 = (char *)dcgettext(0,"      --version  output version information and exit\n",5);
  fputs_unlocked(pcVar4,pFVar1);
  pFVar1 = *(FILE **)puVar2;
  pcVar4 = (char *)dcgettext(0,
                             "\nUse one, and only one of -b, -c or -f.  Each LIST is made up of one\nrange, or many ranges separated by commas.  Selected input is written\nin the same order that it is read, and is written exactly once.\n"
                             ,5);
  pbVar9 = &DAT_0001801f;
  fputs_unlocked(pcVar4,pFVar1);
  pFVar1 = *(FILE **)puVar2;
  pcVar4 = (char *)dcgettext(0,
                             "Each range is one of:\n\n  N     N\'th byte, character or field, counted from 1\n  N-    from N\'th byte, character or field, to end of line\n  N-M   from N\'th to M\'th (included) byte, character or field\n  -M    from first to M\'th (included) byte, character or field\n"
                             ,5);
  fputs_unlocked(pcVar4,pFVar1);
  infomap[0].program = "[";
  infomap[6].program = (char *)0x0;
  infomap[0].node = "test invocation";
  infomap[1].program = "coreutils";
  infomap[1].node = "Multi-call invocation";
  infomap[3].program = "sha256sum";
  infomap[2].program = "sha224sum";
  infomap[4].program = "sha384sum";
  infomap[2].node = "sha2 utilities";
  infomap[3].node = "sha2 utilities";
  infomap[4].node = "sha2 utilities";
  infomap[5].node = "sha2 utilities";
  infomap[5].program = "sha512sum";
  infomap[6].node = (char *)0x0;
  piVar5 = infomap;
  iVar7 = extraout_ECX;
  do {
    piVar6 = piVar5;
    piVar5 = piVar6 + 1;
    pbVar10 = (byte *)piVar5->program;
    bVar11 = false;
    bVar12 = pbVar10 == (byte *)0x0;
    if (bVar12) break;
    iVar7 = 4;
    pbVar8 = pbVar9;
    do {
      if (iVar7 == 0) break;
      iVar7 = iVar7 + -1;
      bVar11 = *pbVar8 < *pbVar10;
      bVar12 = *pbVar8 == *pbVar10;
      pbVar8 = pbVar8 + (uint)bVar13 * -2 + 1;
      pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1;
    } while (bVar12);
  } while ((!bVar11 && !bVar12) != bVar11);
  pbVar10 = (byte *)piVar6[1].node;
  if (pbVar10 == (byte *)0x0) {
    uVar3 = dcgettext(0,"\n%s online help: <%s>\n",5,iVar7);
    __printf_chk(1,uVar3,"GNU coreutils","https://www.gnu.org/software/coreutils/");
    pcVar4 = setlocale(5,(char *)0x0);
    if ((pcVar4 != (char *)0x0) && (pcVar4 = (char *)strncmp(pcVar4,"en_",3), pcVar4 != (char *)0x0)
       ) goto LAB_00012719;
    uVar3 = dcgettext(0,"Full documentation at: <%s%s>\n",5,0);
    pcVar4 = " invocation";
    __printf_chk(1,uVar3,"https://www.gnu.org/software/coreutils/",&DAT_0001801f);
  }
  else {
    uVar3 = dcgettext(0,"\n%s online help: <%s>\n",5,iVar7);
    __printf_chk(1,uVar3,"GNU coreutils","https://www.gnu.org/software/coreutils/");
    pcVar4 = setlocale(5,(char *)0x0);
    pbVar9 = pbVar10;
    if ((pcVar4 != (char *)0x0) && (pcVar4 = (char *)strncmp(pcVar4,"en_",3), pcVar4 != (char *)0x0)
       ) {
LAB_00012719:
      uVar3 = dcgettext(0,"Report %s translation bugs to <https://translationproject.org/team/>\n",5
                        ,pcVar4);
      pcVar4 = (char *)__printf_chk(1,uVar3,&DAT_0001801f);
    }
    uVar3 = dcgettext(0,"Full documentation at: <%s%s>\n",5,pcVar4);
    __printf_chk(1,uVar3,"https://www.gnu.org/software/coreutils/",&DAT_0001801f);
    if (pbVar9 == &DAT_0001801f) {
      pcVar4 = " invocation";
    }
    else {
      pcVar4 = "";
    }
  }
  uVar3 = dcgettext(0,"or available locally via: info \'(coreutils) %s%s\'\n",5,&DAT_0001801f);
  __printf_chk(1,uVar3,pbVar9,pcVar4);
LAB_000123b3:
                    /* WARNING: Subroutine does not return */
  exit(status);
}



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

void FUN_00012360(int param_1)

{
  FILE *pFVar1;
  undefined *puVar2;
  undefined4 uVar3;
  char *pcVar4;
  undefined **ppuVar5;
  undefined4 uVar7;
  int extraout_ECX;
  int iVar8;
  byte *pbVar9;
  byte *pbVar10;
  byte *pbVar11;
  int in_GS_OFFSET;
  bool bVar12;
  bool bVar13;
  byte bVar14;
  undefined *local_58;
  char *local_54;
  char *local_50 [5];
  char *local_3c;
  char *local_38;
  char *local_34;
  char *local_30;
  char *local_2c;
  undefined4 local_28;
  undefined4 local_24;
  undefined4 local_20;
  undefined4 uStack_14;
  undefined **ppuVar6;
  
  uVar7 = DAT_0001d1b8;
  bVar14 = 0;
  uStack_14 = 0x12369;
  local_20 = *(undefined4 *)(in_GS_OFFSET + 0x14);
  if (param_1 != 0) {
    uVar3 = dcgettext(0,"Try \'%s --help\' for more information.\n",5);
    __fprintf_chk(*(undefined4 *)PTR_stderr_0001cfc0,1,uVar3,uVar7);
    goto LAB_000123b3;
  }
  uVar3 = dcgettext(0,"Usage: %s OPTION... [FILE]...\n",5);
  __printf_chk(1,uVar3,uVar7);
  puVar2 = PTR_stdout_0001cfd4;
  pFVar1 = *(FILE **)PTR_stdout_0001cfd4;
  pcVar4 = (char *)dcgettext(0,"Print selected parts of lines from each FILE to standard output.\n",
                             5);
  fputs_unlocked(pcVar4,pFVar1);
  pFVar1 = *(FILE **)puVar2;
  pcVar4 = (char *)dcgettext(0,"\nWith no FILE, or when FILE is -, read standard input.\n",5);
  fputs_unlocked(pcVar4,pFVar1);
  pFVar1 = *(FILE **)puVar2;
  pcVar4 = (char *)dcgettext(0,
                             "\nMandatory arguments to long options are mandatory for short options too.\n"
                             ,5);
  fputs_unlocked(pcVar4,pFVar1);
  pFVar1 = *(FILE **)puVar2;
  pcVar4 = (char *)dcgettext(0,
                             "  -b, --bytes=LIST        select only these bytes\n  -c, --characters=LIST   select only these characters\n  -d, --delimiter=DELIM   use DELIM instead of TAB for field delimiter\n"
                             ,5);
  fputs_unlocked(pcVar4,pFVar1);
  pFVar1 = *(FILE **)puVar2;
  pcVar4 = (char *)dcgettext(0,
                             "  -f, --fields=LIST       select only these fields;  also print any line\n                            that contains no delimiter character, unless\n                            the -s option is specified\n  -n                      (ignored)\n"
                             ,5);
  fputs_unlocked(pcVar4,pFVar1);
  pFVar1 = *(FILE **)puVar2;
  pcVar4 = (char *)dcgettext(0,
                             "      --complement        complement the set of selected bytes, characters\n                            or fields\n"
                             ,5);
  fputs_unlocked(pcVar4,pFVar1);
  pFVar1 = *(FILE **)puVar2;
  pcVar4 = (char *)dcgettext(0,
                             "  -s, --only-delimited    do not print lines not containing delimiters\n      --output-delimiter=STRING  use STRING as the output delimiter\n                            the default is to use the input delimiter\n"
                             ,5);
  fputs_unlocked(pcVar4,pFVar1);
  pFVar1 = *(FILE **)puVar2;
  pcVar4 = (char *)dcgettext(0,"  -z, --zero-terminated    line delimiter is NUL, not newline\n",5);
  fputs_unlocked(pcVar4,pFVar1);
  pFVar1 = *(FILE **)puVar2;
  pcVar4 = (char *)dcgettext(0,"      --help     display this help and exit\n",5);
  fputs_unlocked(pcVar4,pFVar1);
  pFVar1 = *(FILE **)puVar2;
  pcVar4 = (char *)dcgettext(0,"      --version  output version information and exit\n",5);
  fputs_unlocked(pcVar4,pFVar1);
  pFVar1 = *(FILE **)puVar2;
  pcVar4 = (char *)dcgettext(0,
                             "\nUse one, and only one of -b, -c or -f.  Each LIST is made up of one\nrange, or many ranges separated by commas.  Selected input is written\nin the same order that it is read, and is written exactly once.\n"
                             ,5);
  pbVar10 = &DAT_0001801f;
  fputs_unlocked(pcVar4,pFVar1);
  pFVar1 = *(FILE **)puVar2;
  pcVar4 = (char *)dcgettext(0,
                             "Each range is one of:\n\n  N     N\'th byte, character or field, counted from 1\n  N-    from N\'th byte, character or field, to end of line\n  N-M   from N\'th to M\'th (included) byte, character or field\n  -M    from first to M\'th (included) byte, character or field\n"
                             ,5);
  fputs_unlocked(pcVar4,pFVar1);
  local_58 = &DAT_00018023;
  local_28 = 0;
  local_54 = "test invocation";
  local_50[0] = "coreutils";
  local_50[1] = "Multi-call invocation";
  local_50[4] = "sha256sum";
  local_50[2] = "sha224sum";
  local_38 = "sha384sum";
  local_50[3] = "sha2 utilities";
  local_3c = "sha2 utilities";
  local_34 = "sha2 utilities";
  local_2c = "sha2 utilities";
  local_30 = "sha512sum";
  local_24 = 0;
  ppuVar5 = &local_58;
  iVar8 = extraout_ECX;
  do {
    ppuVar6 = ppuVar5;
    ppuVar5 = ppuVar6 + 2;
    pbVar11 = *ppuVar5;
    bVar12 = false;
    bVar13 = pbVar11 == (byte *)0x0;
    if (bVar13) break;
    iVar8 = 4;
    pbVar9 = pbVar10;
    do {
      if (iVar8 == 0) break;
      iVar8 = iVar8 + -1;
      bVar12 = *pbVar9 < *pbVar11;
      bVar13 = *pbVar9 == *pbVar11;
      pbVar9 = pbVar9 + (uint)bVar14 * -2 + 1;
      pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;
    } while (bVar13);
  } while ((!bVar12 && !bVar13) != bVar12);
  pbVar11 = ppuVar6[3];
  if (pbVar11 == (byte *)0x0) {
    uVar7 = dcgettext(0,"\n%s online help: <%s>\n",5,iVar8);
    __printf_chk(1,uVar7,"GNU coreutils","https://www.gnu.org/software/coreutils/");
    pcVar4 = setlocale(5,(char *)0x0);
    if ((pcVar4 != (char *)0x0) && (pcVar4 = (char *)strncmp(pcVar4,"en_",3), pcVar4 != (char *)0x0)
       ) goto LAB_00012719;
    uVar7 = dcgettext(0,"Full documentation at: <%s%s>\n",5,0);
    pcVar4 = " invocation";
    __printf_chk(1,uVar7,"https://www.gnu.org/software/coreutils/",&DAT_0001801f);
  }
  else {
    uVar7 = dcgettext(0,"\n%s online help: <%s>\n",5,iVar8);
    __printf_chk(1,uVar7,"GNU coreutils","https://www.gnu.org/software/coreutils/");
    pcVar4 = setlocale(5,(char *)0x0);
    pbVar10 = pbVar11;
    if ((pcVar4 != (char *)0x0) && (pcVar4 = (char *)strncmp(pcVar4,"en_",3), pcVar4 != (char *)0x0)
       ) {
LAB_00012719:
      uVar7 = dcgettext(0,"Report %s translation bugs to <https://translationproject.org/team/>\n",5
                        ,pcVar4);
      pcVar4 = (char *)__printf_chk(1,uVar7,&DAT_0001801f);
    }
    uVar7 = dcgettext(0,"Full documentation at: <%s%s>\n",5,pcVar4);
    __printf_chk(1,uVar7,"https://www.gnu.org/software/coreutils/",&DAT_0001801f);
    if (pbVar10 == &DAT_0001801f) {
      pcVar4 = " invocation";
    }
    else {
      pcVar4 = "";
    }
  }
  uVar7 = dcgettext(0,"or available locally via: info \'(coreutils) %s%s\'\n",5,&DAT_0001801f);
  __printf_chk(1,uVar7,pbVar10,pcVar4);
LAB_000123b3:
                    /* WARNING: Subroutine does not return */
  exit(param_1);
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00011890
ADD EBX,0xac97
SUB ESP,0x4c
MOV EAX,GS:[0x14]
MOV dword ptr [ESP + 0x3c],EAX
XOR EAX,EAX
MOV EBP,dword ptr [ESP + 0x60]
LEA EAX,[EBX + 0x1b8]
MOV ESI,dword ptr [EAX]
TEST EBP,EBP
JZ 0x000123bf
LEA EAX,[EBX + 0xffffb150]
PUSH EDI
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000110e0
PUSH ESI
PUSH EAX
MOV EAX,dword ptr [EBX + 0xffffffc0]
PUSH 0x1
PUSH dword ptr [EAX]
CALL 0x00011360
ADD ESP,0x20
SUB ESP,0xc
PUSH dword ptr [ESP + 0x6c]
CALL 0x000111d0
LEA EAX,[EBX + 0xffffb178]
PUSH EDI
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000110e0
ADD ESP,0xc
PUSH ESI
PUSH EAX
PUSH 0x1
CALL 0x00011290
MOV ESI,dword ptr [EBX + 0xffffffd4]
ADD ESP,0xc
LEA EAX,[EBX + 0xffffb198]
MOV EDI,dword ptr [ESI]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000110e0
POP EBP
POP EDX
PUSH EDI
PUSH EAX
CALL 0x000111e0
ADD ESP,0xc
LEA EAX,[EBX + 0xffffb1dc]
MOV EDI,dword ptr [ESI]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000110e0
POP ECX
POP EBP
PUSH EDI
PUSH EAX
CALL 0x000111e0
ADD ESP,0xc
LEA EAX,[EBX + 0xffffb214]
MOV EDI,dword ptr [ESI]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000110e0
POP EDX
POP ECX
PUSH EDI
PUSH EAX
CALL 0x000111e0
ADD ESP,0xc
LEA EAX,[EBX + 0xffffb260]
MOV EDI,dword ptr [ESI]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000110e0
POP EBP
POP EDX
PUSH EDI
PUSH EAX
CALL 0x000111e0
ADD ESP,0xc
LEA EAX,[EBX + 0xffffb314]
MOV EDI,dword ptr [ESI]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000110e0
POP ECX
POP EBP
PUSH EDI
PUSH EAX
CALL 0x000111e0
ADD ESP,0xc
LEA EAX,[EBX + 0xffffb404]
MOV EDI,dword ptr [ESI]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000110e0
POP EDX
POP ECX
PUSH EDI
PUSH EAX
CALL 0x000111e0
ADD ESP,0xc
LEA EAX,[EBX + 0xffffb478]
MOV EDI,dword ptr [ESI]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000110e0
POP EBP
POP EDX
PUSH EDI
PUSH EAX
CALL 0x000111e0
ADD ESP,0xc
LEA EAX,[EBX + 0xffffb54c]
MOV EDI,dword ptr [ESI]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000110e0
POP ECX
POP EBP
PUSH EDI
PUSH EAX
CALL 0x000111e0
ADD ESP,0xc
LEA EAX,[EBX + 0xffffb58c]
MOV EDI,dword ptr [ESI]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000110e0
POP EDX
POP ECX
PUSH EDI
PUSH EAX
CALL 0x000111e0
ADD ESP,0xc
LEA EAX,[EBX + 0xffffb5bc]
MOV EDI,dword ptr [ESI]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000110e0
POP EBP
POP EDX
PUSH EDI
PUSH EAX
CALL 0x000111e0
ADD ESP,0xc
LEA EAX,[EBX + 0xffffb5f4]
MOV EDI,dword ptr [ESI]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000110e0
POP ECX
POP EBP
PUSH EDI
PUSH EAX
LEA EBP,[EBX + 0xffffb01f]
CALL 0x000111e0
ADD ESP,0xc
LEA EAX,[EBX + 0xffffb6c0]
MOV ESI,dword ptr [ESI]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000110e0
POP EDX
POP ECX
PUSH ESI
PUSH EAX
CALL 0x000111e0
LEA EAX,[EBX + 0xffffb023]
LEA EDX,[EBX + 0xffffb064]
MOV dword ptr [ESP + 0x44],0x0
MOV dword ptr [ESP + 0x14],EAX
LEA EAX,[EBX + 0xffffb025]
MOV dword ptr [ESP + 0x18],EAX
LEA EAX,[EBX + 0xffffb09d]
MOV dword ptr [ESP + 0x1c],EAX
LEA EAX,[EBX + 0xffffb035]
MOV dword ptr [ESP + 0x20],EAX
LEA EAX,[EBX + 0xffffb04b]
MOV dword ptr [ESP + 0x2c],EDX
LEA EDX,[EBX + 0xffffb06e]
MOV dword ptr [ESP + 0x24],EAX
LEA EAX,[EBX + 0xffffb055]
MOV dword ptr [ESP + 0x34],EDX
LEA EDX,[EBX + 0xffffb078]
MOV dword ptr [ESP + 0x28],EAX
MOV dword ptr [ESP + 0x30],EAX
MOV dword ptr [ESP + 0x38],EAX
MOV dword ptr [ESP + 0x40],EAX
MOV dword ptr [ESP + 0x3c],EDX
MOV dword ptr [ESP + 0x48],0x0
ADD ESP,0x10
LEA EAX,[ESP + 0x4]
LEA ESI,[ESI]
ADD EAX,0x8
MOV EDI,dword ptr [EAX]
TEST EDI,EDI
JZ 0x000125ec
MOV ECX,0x4
MOV ESI,EBP
CMPSB.REPE ES:EDI,ESI
SETA DL
SBB DL,0x0
TEST DL,DL
JNZ 0x000125d0
MOV ESI,dword ptr [EAX + 0x4]
TEST ESI,ESI
JZ 0x0001269b
LEA EAX,[EBX + 0xffffb082]
PUSH ECX
LEA EDI,[EBX + 0xffffb7c8]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000110e0
LEA EDX,[EBX + 0xffffb099]
PUSH EDI
PUSH EDX
PUSH EAX
PUSH 0x1
CALL 0x00011290
ADD ESP,0x18
PUSH 0x0
PUSH 0x5
CALL 0x000112e0
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0001264c
PUSH EDX
LEA EDX,[EBX + 0xffffb0a7]
PUSH 0x3
PUSH EDX
PUSH EAX
CALL 0x00011390
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x00012719
PUSH EAX
LEA EAX,[EBX + 0xffffb838]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000110e0
PUSH EBP
PUSH EDI
PUSH EAX
PUSH 0x1
CALL 0x00011290
ADD ESP,0x20
CMP ESI,EBP
JZ 0x0001273e
LEA EDI,[EBX + 0xffffc76a]
LEA EAX,[EBX + 0xffffb858]
PUSH EBP
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000110e0
PUSH EDI
PUSH ESI
PUSH EAX
PUSH 0x1
CALL 0x00011290
ADD ESP,0x20
JMP 0x000123b3
LEA EAX,[EBX + 0xffffb082]
PUSH ECX
LEA EDI,[EBX + 0xffffb7c8]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000110e0
LEA EDX,[EBX + 0xffffb099]
PUSH EDI
PUSH EDX
PUSH EAX
PUSH 0x1
CALL 0x00011290
ADD ESP,0x18
PUSH 0x0
PUSH 0x5
CALL 0x000112e0
ADD ESP,0x10
TEST EAX,EAX
JZ 0x000126ec
PUSH EDX
LEA EDX,[EBX + 0xffffb0a7]
PUSH 0x3
PUSH EDX
PUSH EAX
CALL 0x00011390
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x00012717
LEA EAX,[EBX + 0xffffb838]
PUSH ESI
MOV ESI,EBP
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000110e0
PUSH EBP
PUSH EDI
LEA EDI,[EBX + 0xffffb03f]
PUSH EAX
PUSH 0x1
CALL 0x00011290
ADD ESP,0x20
JMP 0x00012678
MOV ESI,EBP
PUSH EAX
LEA EAX,[EBX + 0xffffb7f0]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000110e0
ADD ESP,0xc
PUSH EBP
PUSH EAX
PUSH 0x1
CALL 0x00011290
ADD ESP,0x10
JMP 0x0001264c
LEA EDI,[EBX + 0xffffb03f]
JMP 0x00012678
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid FUN_00012360(int param_1)\n\n{\n  FILE *pFVar1;\n  undefined *puVar2;\n  undefined4 uVar3;\n  char *pcVar4;\n  undefined **ppuVar5;\n  undefined4 uVar7;\n  int extraout_ECX;\n  int iVar8;\n  byte *pbVar9;\n  byte *pbVar10;\n  byte *pbVar11;\n  int in_GS_OFFSET;\n  bool bVar12;\n  bool bVar13;\n  byte bVar14;\n  undefined *local_58;\n  char *local_54;\n  char *local_50 [5];\n  char *local_3c;\n  char *local_38;\n  char *local_34;\n  char *local_30;\n  char *local_2c;\n  undefined4 local_28;\n  undefined4 local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  undefined **ppuVar6;\n  \n  uVar7 = DAT_0001d1b8;\n  bVar14 = 0;\n  uStack_14 = 0x12369;\n  local_20 = *(undefined4 *)(in_GS_OFFSET + 0x14);\n  if (param_1 != 0) {\n    uVar3 = dcgettext(0,"Try \'%s --help\' for more information.\n",5);\n    __fprintf_chk(*(undefined4 *)PTR_stderr_0001cfc0,1,uVar3,uVar7);\n    goto LAB_000123b3;\n  }\n  uVar3 = dcgettext(0,"Usage: %s OPTION... [FILE]...\n",5);\n  __printf_chk(1,uVar3,uVar7);\n  puVar2 = PTR_stdout_0001cfd4;\n  pFVar1 = *(FILE **)PTR_stdout_0001cfd4;\n  pcVar4 = (char *)dcgettext(0,"Print selected parts of lines from each FILE to standard output.\n",\n                             5);\n  fputs_unlocked(pcVar4,pFVar1);\n  pFVar1 = *(FILE **)puVar2;\n  pcVar4 = (char *)dcgettext(0,"\nWith no FILE, or when FILE is -, read standard input.\n",5);\n  fputs_unlocked(pcVar4,pFVar1);\n  pFVar1 = *(FILE **)puVar2;\n  pcVar4 = (char *)dcgettext(0,\n                             "\nMandatory arguments to long options are mandatory for short options too.\n"\n                             ,5);\n  fputs_unlocked(pcVar4,pFVar1);\n  pFVar1 = *(FILE **)puVar2;\n  pcVar4 = (char *)dcgettext(0,\n                             "  -b, --bytes=LIST        select only these bytes\n  -c, --characters=LIST   select only these characters\n  -d, --delimiter=DELIM   use DELIM instead of TAB for field delimiter\n"\n                             ,5);\n  fputs_unlocked(pcVar4,pFVar1);\n  pFVar1 = *(FILE **)puVar2;\n  pcVar4 = (char *)dcgettext(0,\n                             "  -f, --fields=LIST       select only these fields;  also print any line\n                            that contains no delimiter character, unless\n                            the -s option is specified\n  -n                      (ignored)\n"\n                             ,5);\n  fputs_unlocked(pcVar4,pFVar1);\n  pFVar1 = *(FILE **)puVar2;\n  pcVar4 = (char *)dcgettext(0,\n                             "      --complement        complement the set of selected bytes, characters\n                            or fields\n"\n                             ,5);\n  fputs_unlocked(pcVar4,pFVar1);\n  pFVar1 = *(FILE **)puVar2;\n  pcVar4 = (char *)dcgettext(0,\n                             "  -s, --only-delimited    do not print lines not containing delimiters\n      --output-delimiter=STRING  use STRING as the output delimiter\n                            the default is to use the input delimiter\n"\n                             ,5);\n  fputs_unlocked(pcVar4,pFVar1);\n  pFVar1 = *(FILE **)puVar2;\n  pcVar4 = (char *)dcgettext(0,"  -z, --zero-terminated    line delimiter is NUL, not newline\n",5);\n  fputs_unlocked(pcVar4,pFVar1);\n  pFVar1 = *(FILE **)puVar2;\n  pcVar4 = (char *)dcgettext(0,"      --help     display this help and exit\n",5);\n  fputs_unlocked(pcVar4,pFVar1);\n  pFVar1 = *(FILE **)puVar2;\n  pcVar4 = (char *)dcgettext(0,"      --version  output version information and exit\n",5);\n  fputs_unlocked(pcVar4,pFVar1);\n  pFVar1 = *(FILE **)puVar2;\n  pcVar4 = (char *)dcgettext(0,\n                             "\nUse one, and only one of -b, -c or -f.  Each LIST is made up of one\nrange, or many ranges separated by commas.  Selected input is written\nin the same order that it is read, and is written exactly once.\n"\n                             ,5);\n  pbVar10 = &DAT_0001801f;\n  fputs_unlocked(pcVar4,pFVar1);\n  pFVar1 = *(FILE **)puVar2;\n  pcVar4 = (char *)dcgettext(0,\n                             "Each range is one of:\n\n  N     N\'th byte, character or field, counted from 1\n  N-    from N\'th byte, character or field, to end of line\n  N-M   from N\'th to M\'th (included) byte, character or field\n  -M    from first to M\'th (included) byte, character or field\n"\n                             ,5);\n  fputs_unlocked(pcVar4,pFVar1);\n  local_58 = &DAT_00018023;\n  local_28 = 0;\n  local_54 = "test invocation";\n  local_50[0] = "coreutils";\n  local_50[1] = "Multi-call invocation";\n  local_50[4] = "sha256sum";\n  local_50[2] = "sha224sum";\n  local_38 = "sha384sum";\n  local_50[3] = "sha2 utilities";\n  local_3c = "sha2 utilities";\n  local_34 = "sha2 utilities";\n  local_2c = "sha2 utilities";\n  local_30 = "sha512sum";\n  local_24 = 0;\n  ppuVar5 = &local_58;\n  iVar8 = extraout_ECX;\n  do {\n    ppuVar6 = ppuVar5;\n    ppuVar5 = ppuVar6 + 2;\n    pbVar11 = *ppuVar5;\n    bVar12 = false;\n    bVar13 = pbVar11 == (byte *)0x0;\n    if (bVar13) break;\n    iVar8 = 4;\n    pbVar9 = pbVar10;\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar12 = *pbVar9 < *pbVar11;\n      bVar13 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar14 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n    } while (bVar13);\n  } while ((!bVar12 && !bVar13) != bVar12);\n  pbVar11 = ppuVar6[3];\n  if (pbVar11 == (byte *)0x0) {\n    uVar7 = dcgettext(0,"\n%s online help: <%s>\n",5,iVar8);\n    __printf_chk(1,uVar7,"GNU coreutils","https://www.gnu.org/software/coreutils/");\n    pcVar4 = setlocale(5,(char *)0x0);\n    if ((pcVar4 != (char *)0x0) && (pcVar4 = (char *)strncmp(pcVar4,"en_",3), pcVar4 != (char *)0x0)\n       ) goto LAB_00012719;\n    uVar7 = dcgettext(0,"Full documentation at: <%s%s>\n",5,0);\n    pcVar4 = " invocation";\n    __printf_chk(1,uVar7,"https://www.gnu.org/software/coreutils/",&DAT_0001801f);\n  }\n  else {\n    uVar7 = dcgettext(0,"\n%s online help: <%s>\n",5,iVar8);\n    __printf_chk(1,uVar7,"GNU coreutils","https://www.gnu.org/software/coreutils/");\n    pcVar4 = setlocale(5,(char *)0x0);\n    pbVar10 = pbVar11;\n    if ((pcVar4 != (char *)0x0) && (pcVar4 = (char *)strncmp(pcVar4,"en_",3), pcVar4 != (char *)0x0)\n       ) {\nLAB_00012719:\n      uVar7 = dcgettext(0,"Report %s translation bugs to <https://translationproject.org/team/>\n",5\n                        ,pcVar4);\n      pcVar4 = (char *)__printf_chk(1,uVar7,&DAT_0001801f);\n    }\n    uVar7 = dcgettext(0,"Full documentation at: <%s%s>\n",5,pcVar4);\n    __printf_chk(1,uVar7,"https://www.gnu.org/software/coreutils/",&DAT_0001801f);\n    if (pbVar10 == &DAT_0001801f) {\n      pcVar4 = " invocation";\n    }\n    else {\n      pcVar4 = "";\n    }\n  }\n  uVar7 = dcgettext(0,"or available locally via: info \'(coreutils) %s%s\'\n",5,&DAT_0001801f);\n  __printf_chk(1,uVar7,pbVar10,pcVar4);\nLAB_000123b3:\n                    /* WARNING: Subroutine does not return */\n  exit(param_1);\n}\n\n" comment (function_definition "void FUN_00012360(int param_1)\n\n{\n  FILE *pFVar1;\n  undefined *puVar2;\n  undefined4 uVar3;\n  char *pcVar4;\n  undefined **ppuVar5;\n  undefined4 uVar7;\n  int extraout_ECX;\n  int iVar8;\n  byte *pbVar9;\n  byte *pbVar10;\n  byte *pbVar11;\n  int in_GS_OFFSET;\n  bool bVar12;\n  bool bVar13;\n  byte bVar14;\n  undefined *local_58;\n  char *local_54;\n  char *local_50 [5];\n  char *local_3c;\n  char *local_38;\n  char *local_34;\n  char *local_30;\n  char *local_2c;\n  undefined4 local_28;\n  undefined4 local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  undefined **ppuVar6;\n  \n  uVar7 = DAT_0001d1b8;\n  bVar14 = 0;\n  uStack_14 = 0x12369;\n  local_20 = *(undefined4 *)(in_GS_OFFSET + 0x14);\n  if (param_1 != 0) {\n    uVar3 = dcgettext(0,"Try \'%s --help\' for more information.\n",5);\n    __fprintf_chk(*(undefined4 *)PTR_stderr_0001cfc0,1,uVar3,uVar7);\n    goto LAB_000123b3;\n  }\n  uVar3 = dcgettext(0,"Usage: %s OPTION... [FILE]...\n",5);\n  __printf_chk(1,uVar3,uVar7);\n  puVar2 = PTR_stdout_0001cfd4;\n  pFVar1 = *(FILE **)PTR_stdout_0001cfd4;\n  pcVar4 = (char *)dcgettext(0,"Print selected parts of lines from each FILE to standard output.\n",\n                             5);\n  fputs_unlocked(pcVar4,pFVar1);\n  pFVar1 = *(FILE **)puVar2;\n  pcVar4 = (char *)dcgettext(0,"\nWith no FILE, or when FILE is -, read standard input.\n",5);\n  fputs_unlocked(pcVar4,pFVar1);\n  pFVar1 = *(FILE **)puVar2;\n  pcVar4 = (char *)dcgettext(0,\n                             "\nMandatory arguments to long options are mandatory for short options too.\n"\n                             ,5);\n  fputs_unlocked(pcVar4,pFVar1);\n  pFVar1 = *(FILE **)puVar2;\n  pcVar4 = (char *)dcgettext(0,\n                             "  -b, --bytes=LIST        select only these bytes\n  -c, --characters=LIST   select only these characters\n  -d, --delimiter=DELIM   use DELIM instead of TAB for field delimiter\n"\n                             ,5);\n  fputs_unlocked(pcVar4,pFVar1);\n  pFVar1 = *(FILE **)puVar2;\n  pcVar4 = (char *)dcgettext(0,\n                             "  -f, --fields=LIST       select only these fields;  also print any line\n                            that contains no delimiter character, unless\n                            the -s option is specified\n  -n                      (ignored)\n"\n                             ,5);\n  fputs_unlocked(pcVar4,pFVar1);\n  pFVar1 = *(FILE **)puVar2;\n  pcVar4 = (char *)dcgettext(0,\n                             "      --complement        complement the set of selected bytes, characters\n                            or fields\n"\n                             ,5);\n  fputs_unlocked(pcVar4,pFVar1);\n  pFVar1 = *(FILE **)puVar2;\n  pcVar4 = (char *)dcgettext(0,\n                             "  -s, --only-delimited    do not print lines not containing delimiters\n      --output-delimiter=STRING  use STRING as the output delimiter\n                            the default is to use the input delimiter\n"\n                             ,5);\n  fputs_unlocked(pcVar4,pFVar1);\n  pFVar1 = *(FILE **)puVar2;\n  pcVar4 = (char *)dcgettext(0,"  -z, --zero-terminated    line delimiter is NUL, not newline\n",5);\n  fputs_unlocked(pcVar4,pFVar1);\n  pFVar1 = *(FILE **)puVar2;\n  pcVar4 = (char *)dcgettext(0,"      --help     display this help and exit\n",5);\n  fputs_unlocked(pcVar4,pFVar1);\n  pFVar1 = *(FILE **)puVar2;\n  pcVar4 = (char *)dcgettext(0,"      --version  output version information and exit\n",5);\n  fputs_unlocked(pcVar4,pFVar1);\n  pFVar1 = *(FILE **)puVar2;\n  pcVar4 = (char *)dcgettext(0,\n                             "\nUse one, and only one of -b, -c or -f.  Each LIST is made up of one\nrange, or many ranges separated by commas.  Selected input is written\nin the same order that it is read, and is written exactly once.\n"\n                             ,5);\n  pbVar10 = &DAT_0001801f;\n  fputs_unlocked(pcVar4,pFVar1);\n  pFVar1 = *(FILE **)puVar2;\n  pcVar4 = (char *)dcgettext(0,\n                             "Each range is one of:\n\n  N     N\'th byte, character or field, counted from 1\n  N-    from N\'th byte, character or field, to end of line\n  N-M   from N\'th to M\'th (included) byte, character or field\n  -M    from first to M\'th (included) byte, character or field\n"\n                             ,5);\n  fputs_unlocked(pcVar4,pFVar1);\n  local_58 = &DAT_00018023;\n  local_28 = 0;\n  local_54 = "test invocation";\n  local_50[0] = "coreutils";\n  local_50[1] = "Multi-call invocation";\n  local_50[4] = "sha256sum";\n  local_50[2] = "sha224sum";\n  local_38 = "sha384sum";\n  local_50[3] = "sha2 utilities";\n  local_3c = "sha2 utilities";\n  local_34 = "sha2 utilities";\n  local_2c = "sha2 utilities";\n  local_30 = "sha512sum";\n  local_24 = 0;\n  ppuVar5 = &local_58;\n  iVar8 = extraout_ECX;\n  do {\n    ppuVar6 = ppuVar5;\n    ppuVar5 = ppuVar6 + 2;\n    pbVar11 = *ppuVar5;\n    bVar12 = false;\n    bVar13 = pbVar11 == (byte *)0x0;\n    if (bVar13) break;\n    iVar8 = 4;\n    pbVar9 = pbVar10;\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar12 = *pbVar9 < *pbVar11;\n      bVar13 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar14 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n    } while (bVar13);\n  } while ((!bVar12 && !bVar13) != bVar12);\n  pbVar11 = ppuVar6[3];\n  if (pbVar11 == (byte *)0x0) {\n    uVar7 = dcgettext(0,"\n%s online help: <%s>\n",5,iVar8);\n    __printf_chk(1,uVar7,"GNU coreutils","https://www.gnu.org/software/coreutils/");\n    pcVar4 = setlocale(5,(char *)0x0);\n    if ((pcVar4 != (char *)0x0) && (pcVar4 = (char *)strncmp(pcVar4,"en_",3), pcVar4 != (char *)0x0)\n       ) goto LAB_00012719;\n    uVar7 = dcgettext(0,"Full documentation at: <%s%s>\n",5,0);\n    pcVar4 = " invocation";\n    __printf_chk(1,uVar7,"https://www.gnu.org/software/coreutils/",&DAT_0001801f);\n  }\n  else {\n    uVar7 = dcgettext(0,"\n%s online help: <%s>\n",5,iVar8);\n    __printf_chk(1,uVar7,"GNU coreutils","https://www.gnu.org/software/coreutils/");\n    pcVar4 = setlocale(5,(char *)0x0);\n    pbVar10 = pbVar11;\n    if ((pcVar4 != (char *)0x0) && (pcVar4 = (char *)strncmp(pcVar4,"en_",3), pcVar4 != (char *)0x0)\n       ) {\nLAB_00012719:\n      uVar7 = dcgettext(0,"Report %s translation bugs to <https://translationproject.org/team/>\n",5\n                        ,pcVar4);\n      pcVar4 = (char *)__printf_chk(1,uVar7,&DAT_0001801f);\n    }\n    uVar7 = dcgettext(0,"Full documentation at: <%s%s>\n",5,pcVar4);\n    __printf_chk(1,uVar7,"https://www.gnu.org/software/coreutils/",&DAT_0001801f);\n    if (pbVar10 == &DAT_0001801f) {\n      pcVar4 = " invocation";\n    }\n    else {\n      pcVar4 = "";\n    }\n  }\n  uVar7 = dcgettext(0,"or available locally via: info \'(coreutils) %s%s\'\n",5,&DAT_0001801f);\n  __printf_chk(1,uVar7,pbVar10,pcVar4);\nLAB_000123b3:\n                    /* WARNING: Subroutine does not return */\n  exit(param_1);\n}" primitive_type (function_declarator "FUN_00012360(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  FILE *pFVar1;\n  undefined *puVar2;\n  undefined4 uVar3;\n  char *pcVar4;\n  undefined **ppuVar5;\n  undefined4 uVar7;\n  int extraout_ECX;\n  int iVar8;\n  byte *pbVar9;\n  byte *pbVar10;\n  byte *pbVar11;\n  int in_GS_OFFSET;\n  bool bVar12;\n  bool bVar13;\n  byte bVar14;\n  undefined *local_58;\n  char *local_54;\n  char *local_50 [5];\n  char *local_3c;\n  char *local_38;\n  char *local_34;\n  char *local_30;\n  char *local_2c;\n  undefined4 local_28;\n  undefined4 local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  undefined **ppuVar6;\n  \n  uVar7 = DAT_0001d1b8;\n  bVar14 = 0;\n  uStack_14 = 0x12369;\n  local_20 = *(undefined4 *)(in_GS_OFFSET + 0x14);\n  if (param_1 != 0) {\n    uVar3 = dcgettext(0,"Try \'%s --help\' for more information.\n",5);\n    __fprintf_chk(*(undefined4 *)PTR_stderr_0001cfc0,1,uVar3,uVar7);\n    goto LAB_000123b3;\n  }\n  uVar3 = dcgettext(0,"Usage: %s OPTION... [FILE]...\n",5);\n  __printf_chk(1,uVar3,uVar7);\n  puVar2 = PTR_stdout_0001cfd4;\n  pFVar1 = *(FILE **)PTR_stdout_0001cfd4;\n  pcVar4 = (char *)dcgettext(0,"Print selected parts of lines from each FILE to standard output.\n",\n                             5);\n  fputs_unlocked(pcVar4,pFVar1);\n  pFVar1 = *(FILE **)puVar2;\n  pcVar4 = (char *)dcgettext(0,"\nWith no FILE, or when FILE is -, read standard input.\n",5);\n  fputs_unlocked(pcVar4,pFVar1);\n  pFVar1 = *(FILE **)puVar2;\n  pcVar4 = (char *)dcgettext(0,\n                             "\nMandatory arguments to long options are mandatory for short options too.\n"\n                             ,5);\n  fputs_unlocked(pcVar4,pFVar1);\n  pFVar1 = *(FILE **)puVar2;\n  pcVar4 = (char *)dcgettext(0,\n                             "  -b, --bytes=LIST        select only these bytes\n  -c, --characters=LIST   select only these characters\n  -d, --delimiter=DELIM   use DELIM instead of TAB for field delimiter\n"\n                             ,5);\n  fputs_unlocked(pcVar4,pFVar1);\n  pFVar1 = *(FILE **)puVar2;\n  pcVar4 = (char *)dcgettext(0,\n                             "  -f, --fields=LIST       select only these fields;  also print any line\n                            that contains no delimiter character, unless\n                            the -s option is specified\n  -n                      (ignored)\n"\n                             ,5);\n  fputs_unlocked(pcVar4,pFVar1);\n  pFVar1 = *(FILE **)puVar2;\n  pcVar4 = (char *)dcgettext(0,\n                             "      --complement        complement the set of selected bytes, characters\n                            or fields\n"\n                             ,5);\n  fputs_unlocked(pcVar4,pFVar1);\n  pFVar1 = *(FILE **)puVar2;\n  pcVar4 = (char *)dcgettext(0,\n                             "  -s, --only-delimited    do not print lines not containing delimiters\n      --output-delimiter=STRING  use STRING as the output delimiter\n                            the default is to use the input delimiter\n"\n                             ,5);\n  fputs_unlocked(pcVar4,pFVar1);\n  pFVar1 = *(FILE **)puVar2;\n  pcVar4 = (char *)dcgettext(0,"  -z, --zero-terminated    line delimiter is NUL, not newline\n",5);\n  fputs_unlocked(pcVar4,pFVar1);\n  pFVar1 = *(FILE **)puVar2;\n  pcVar4 = (char *)dcgettext(0,"      --help     display this help and exit\n",5);\n  fputs_unlocked(pcVar4,pFVar1);\n  pFVar1 = *(FILE **)puVar2;\n  pcVar4 = (char *)dcgettext(0,"      --version  output version information and exit\n",5);\n  fputs_unlocked(pcVar4,pFVar1);\n  pFVar1 = *(FILE **)puVar2;\n  pcVar4 = (char *)dcgettext(0,\n                             "\nUse one, and only one of -b, -c or -f.  Each LIST is made up of one\nrange, or many ranges separated by commas.  Selected input is written\nin the same order that it is read, and is written exactly once.\n"\n                             ,5);\n  pbVar10 = &DAT_0001801f;\n  fputs_unlocked(pcVar4,pFVar1);\n  pFVar1 = *(FILE **)puVar2;\n  pcVar4 = (char *)dcgettext(0,\n                             "Each range is one of:\n\n  N     N\'th byte, character or field, counted from 1\n  N-    from N\'th byte, character or field, to end of line\n  N-M   from N\'th to M\'th (included) byte, character or field\n  -M    from first to M\'th (included) byte, character or field\n"\n                             ,5);\n  fputs_unlocked(pcVar4,pFVar1);\n  local_58 = &DAT_00018023;\n  local_28 = 0;\n  local_54 = "test invocation";\n  local_50[0] = "coreutils";\n  local_50[1] = "Multi-call invocation";\n  local_50[4] = "sha256sum";\n  local_50[2] = "sha224sum";\n  local_38 = "sha384sum";\n  local_50[3] = "sha2 utilities";\n  local_3c = "sha2 utilities";\n  local_34 = "sha2 utilities";\n  local_2c = "sha2 utilities";\n  local_30 = "sha512sum";\n  local_24 = 0;\n  ppuVar5 = &local_58;\n  iVar8 = extraout_ECX;\n  do {\n    ppuVar6 = ppuVar5;\n    ppuVar5 = ppuVar6 + 2;\n    pbVar11 = *ppuVar5;\n    bVar12 = false;\n    bVar13 = pbVar11 == (byte *)0x0;\n    if (bVar13) break;\n    iVar8 = 4;\n    pbVar9 = pbVar10;\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar12 = *pbVar9 < *pbVar11;\n      bVar13 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar14 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n    } while (bVar13);\n  } while ((!bVar12 && !bVar13) != bVar12);\n  pbVar11 = ppuVar6[3];\n  if (pbVar11 == (byte *)0x0) {\n    uVar7 = dcgettext(0,"\n%s online help: <%s>\n",5,iVar8);\n    __printf_chk(1,uVar7,"GNU coreutils","https://www.gnu.org/software/coreutils/");\n    pcVar4 = setlocale(5,(char *)0x0);\n    if ((pcVar4 != (char *)0x0) && (pcVar4 = (char *)strncmp(pcVar4,"en_",3), pcVar4 != (char *)0x0)\n       ) goto LAB_00012719;\n    uVar7 = dcgettext(0,"Full documentation at: <%s%s>\n",5,0);\n    pcVar4 = " invocation";\n    __printf_chk(1,uVar7,"https://www.gnu.org/software/coreutils/",&DAT_0001801f);\n  }\n  else {\n    uVar7 = dcgettext(0,"\n%s online help: <%s>\n",5,iVar8);\n    __printf_chk(1,uVar7,"GNU coreutils","https://www.gnu.org/software/coreutils/");\n    pcVar4 = setlocale(5,(char *)0x0);\n    pbVar10 = pbVar11;\n    if ((pcVar4 != (char *)0x0) && (pcVar4 = (char *)strncmp(pcVar4,"en_",3), pcVar4 != (char *)0x0)\n       ) {\nLAB_00012719:\n      uVar7 = dcgettext(0,"Report %s translation bugs to <https://translationproject.org/team/>\n",5\n                        ,pcVar4);\n      pcVar4 = (char *)__printf_chk(1,uVar7,&DAT_0001801f);\n    }\n    uVar7 = dcgettext(0,"Full documentation at: <%s%s>\n",5,pcVar4);\n    __printf_chk(1,uVar7,"https://www.gnu.org/software/coreutils/",&DAT_0001801f);\n    if (pbVar10 == &DAT_0001801f) {\n      pcVar4 = " invocation";\n    }\n    else {\n      pcVar4 = "";\n    }\n  }\n  uVar7 = dcgettext(0,"or available locally via: info \'(coreutils) %s%s\'\n",5,&DAT_0001801f);\n  __printf_chk(1,uVar7,pbVar10,pcVar4);\nLAB_000123b3:\n                    /* WARNING: Subroutine does not return */\n  exit(param_1);\n}" { (declaration "FILE *pFVar1;" type_identifier (pointer_declarator "*pFVar1" * identifier) ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "char *pcVar4;" primitive_type (pointer_declarator "*pcVar4" * identifier) ;) (declaration "undefined **ppuVar5;" type_identifier (pointer_declarator "**ppuVar5" * (pointer_declarator "*ppuVar5" * identifier)) ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "int extraout_ECX;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "byte *pbVar9;" type_identifier (pointer_declarator "*pbVar9" * identifier) ;) (declaration "byte *pbVar10;" type_identifier (pointer_declarator "*pbVar10" * identifier) ;) (declaration "byte *pbVar11;" type_identifier (pointer_declarator "*pbVar11" * identifier) ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "bool bVar12;" primitive_type identifier ;) (declaration "bool bVar13;" primitive_type identifier ;) (declaration "byte bVar14;" type_identifier identifier ;) (declaration "undefined *local_58;" type_identifier (pointer_declarator "*local_58" * identifier) ;) (declaration "char *local_54;" primitive_type (pointer_declarator "*local_54" * identifier) ;) (declaration "char *local_50 [5];" primitive_type (pointer_declarator "*local_50 [5]" * (array_declarator "local_50 [5]" identifier [ number_literal ])) ;) (declaration "char *local_3c;" primitive_type (pointer_declarator "*local_3c" * identifier) ;) (declaration "char *local_38;" primitive_type (pointer_declarator "*local_38" * identifier) ;) (declaration "char *local_34;" primitive_type (pointer_declarator "*local_34" * identifier) ;) (declaration "char *local_30;" primitive_type (pointer_declarator "*local_30" * identifier) ;) (declaration "char *local_2c;" primitive_type (pointer_declarator "*local_2c" * identifier) ;) (declaration "undefined4 local_28;" type_identifier identifier ;) (declaration "undefined4 local_24;" type_identifier identifier ;) (declaration "undefined4 local_20;" type_identifier identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (declaration "undefined **ppuVar6;" type_identifier (pointer_declarator "**ppuVar6" * (pointer_declarator "*ppuVar6" * identifier)) ;) (expression_statement "uVar7 = DAT_0001d1b8;" (assignment_expression "uVar7 = DAT_0001d1b8" identifier = identifier) ;) (expression_statement "bVar14 = 0;" (assignment_expression "bVar14 = 0" identifier = number_literal) ;) (expression_statement "uStack_14 = 0x12369;" (assignment_expression "uStack_14 = 0x12369" identifier = number_literal) ;) (expression_statement "local_20 = *(undefined4 *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(undefined4 *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(undefined4 *)(in_GS_OFFSET + 0x14)" * (cast_expression "(undefined4 *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (param_1 != 0) {\n    uVar3 = dcgettext(0,"Try \'%s --help\' for more information.\n",5);\n    __fprintf_chk(*(undefined4 *)PTR_stderr_0001cfc0,1,uVar3,uVar7);\n    goto LAB_000123b3;\n  }" if (parenthesized_expression "(param_1 != 0)" ( (binary_expression "param_1 != 0" identifier != number_literal) )) (compound_statement "{\n    uVar3 = dcgettext(0,"Try \'%s --help\' for more information.\n",5);\n    __fprintf_chk(*(undefined4 *)PTR_stderr_0001cfc0,1,uVar3,uVar7);\n    goto LAB_000123b3;\n  }" { (expression_statement "uVar3 = dcgettext(0,"Try \'%s --help\' for more information.\n",5);" (assignment_expression "uVar3 = dcgettext(0,"Try \'%s --help\' for more information.\n",5)" identifier = (call_expression "dcgettext(0,"Try \'%s --help\' for more information.\n",5)" identifier (argument_list "(0,"Try \'%s --help\' for more information.\n",5)" ( number_literal , (string_literal ""Try \'%s --help\' for more information.\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence ") , number_literal )))) ;) (expression_statement "__fprintf_chk(*(undefined4 *)PTR_stderr_0001cfc0,1,uVar3,uVar7);" (call_expression "__fprintf_chk(*(undefined4 *)PTR_stderr_0001cfc0,1,uVar3,uVar7)" identifier (argument_list "(*(undefined4 *)PTR_stderr_0001cfc0,1,uVar3,uVar7)" ( (pointer_expression "*(undefined4 *)PTR_stderr_0001cfc0" * (cast_expression "(undefined4 *)PTR_stderr_0001cfc0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , number_literal , identifier , identifier ))) ;) (goto_statement "goto LAB_000123b3;" goto statement_identifier ;) })) (expression_statement "uVar3 = dcgettext(0,"Usage: %s OPTION... [FILE]...\n",5);" (assignment_expression "uVar3 = dcgettext(0,"Usage: %s OPTION... [FILE]...\n",5)" identifier = (call_expression "dcgettext(0,"Usage: %s OPTION... [FILE]...\n",5)" identifier (argument_list "(0,"Usage: %s OPTION... [FILE]...\n",5)" ( number_literal , (string_literal ""Usage: %s OPTION... [FILE]...\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "__printf_chk(1,uVar3,uVar7);" (call_expression "__printf_chk(1,uVar3,uVar7)" identifier (argument_list "(1,uVar3,uVar7)" ( number_literal , identifier , identifier ))) ;) (expression_statement "puVar2 = PTR_stdout_0001cfd4;" (assignment_expression "puVar2 = PTR_stdout_0001cfd4" identifier = identifier) ;) (expression_statement "pFVar1 = *(FILE **)PTR_stdout_0001cfd4;" (assignment_expression "pFVar1 = *(FILE **)PTR_stdout_0001cfd4" identifier = (pointer_expression "*(FILE **)PTR_stdout_0001cfd4" * (cast_expression "(FILE **)PTR_stdout_0001cfd4" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pcVar4 = (char *)dcgettext(0,"Print selected parts of lines from each FILE to standard output.\n",\n                             5);" (assignment_expression "pcVar4 = (char *)dcgettext(0,"Print selected parts of lines from each FILE to standard output.\n",\n                             5)" identifier = (cast_expression "(char *)dcgettext(0,"Print selected parts of lines from each FILE to standard output.\n",\n                             5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"Print selected parts of lines from each FILE to standard output.\n",\n                             5)" identifier (argument_list "(0,"Print selected parts of lines from each FILE to standard output.\n",\n                             5)" ( number_literal , (string_literal ""Print selected parts of lines from each FILE to standard output.\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "fputs_unlocked(pcVar4,pFVar1);" (call_expression "fputs_unlocked(pcVar4,pFVar1)" identifier (argument_list "(pcVar4,pFVar1)" ( identifier , identifier ))) ;) (expression_statement "pFVar1 = *(FILE **)puVar2;" (assignment_expression "pFVar1 = *(FILE **)puVar2" identifier = (pointer_expression "*(FILE **)puVar2" * (cast_expression "(FILE **)puVar2" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pcVar4 = (char *)dcgettext(0,"\nWith no FILE, or when FILE is -, read standard input.\n",5);" (assignment_expression "pcVar4 = (char *)dcgettext(0,"\nWith no FILE, or when FILE is -, read standard input.\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"\nWith no FILE, or when FILE is -, read standard input.\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"\nWith no FILE, or when FILE is -, read standard input.\n",5)" identifier (argument_list "(0,"\nWith no FILE, or when FILE is -, read standard input.\n",5)" ( number_literal , (string_literal ""\nWith no FILE, or when FILE is -, read standard input.\n"" " escape_sequence string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "fputs_unlocked(pcVar4,pFVar1);" (call_expression "fputs_unlocked(pcVar4,pFVar1)" identifier (argument_list "(pcVar4,pFVar1)" ( identifier , identifier ))) ;) (expression_statement "pFVar1 = *(FILE **)puVar2;" (assignment_expression "pFVar1 = *(FILE **)puVar2" identifier = (pointer_expression "*(FILE **)puVar2" * (cast_expression "(FILE **)puVar2" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pcVar4 = (char *)dcgettext(0,\n                             "\nMandatory arguments to long options are mandatory for short options too.\n"\n                             ,5);" (assignment_expression "pcVar4 = (char *)dcgettext(0,\n                             "\nMandatory arguments to long options are mandatory for short options too.\n"\n                             ,5)" identifier = (cast_expression "(char *)dcgettext(0,\n                             "\nMandatory arguments to long options are mandatory for short options too.\n"\n                             ,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,\n                             "\nMandatory arguments to long options are mandatory for short options too.\n"\n                             ,5)" identifier (argument_list "(0,\n                             "\nMandatory arguments to long options are mandatory for short options too.\n"\n                             ,5)" ( number_literal , (string_literal ""\nMandatory arguments to long options are mandatory for short options too.\n"" " escape_sequence string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "fputs_unlocked(pcVar4,pFVar1);" (call_expression "fputs_unlocked(pcVar4,pFVar1)" identifier (argument_list "(pcVar4,pFVar1)" ( identifier , identifier ))) ;) (expression_statement "pFVar1 = *(FILE **)puVar2;" (assignment_expression "pFVar1 = *(FILE **)puVar2" identifier = (pointer_expression "*(FILE **)puVar2" * (cast_expression "(FILE **)puVar2" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pcVar4 = (char *)dcgettext(0,\n                             "  -b, --bytes=LIST        select only these bytes\n  -c, --characters=LIST   select only these characters\n  -d, --delimiter=DELIM   use DELIM instead of TAB for field delimiter\n"\n                             ,5);" (assignment_expression "pcVar4 = (char *)dcgettext(0,\n                             "  -b, --bytes=LIST        select only these bytes\n  -c, --characters=LIST   select only these characters\n  -d, --delimiter=DELIM   use DELIM instead of TAB for field delimiter\n"\n                             ,5)" identifier = (cast_expression "(char *)dcgettext(0,\n                             "  -b, --bytes=LIST        select only these bytes\n  -c, --characters=LIST   select only these characters\n  -d, --delimiter=DELIM   use DELIM instead of TAB for field delimiter\n"\n                             ,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,\n                             "  -b, --bytes=LIST        select only these bytes\n  -c, --characters=LIST   select only these characters\n  -d, --delimiter=DELIM   use DELIM instead of TAB for field delimiter\n"\n                             ,5)" identifier (argument_list "(0,\n                             "  -b, --bytes=LIST        select only these bytes\n  -c, --characters=LIST   select only these characters\n  -d, --delimiter=DELIM   use DELIM instead of TAB for field delimiter\n"\n                             ,5)" ( number_literal , (string_literal ""  -b, --bytes=LIST        select only these bytes\n  -c, --characters=LIST   select only these characters\n  -d, --delimiter=DELIM   use DELIM instead of TAB for field delimiter\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "fputs_unlocked(pcVar4,pFVar1);" (call_expression "fputs_unlocked(pcVar4,pFVar1)" identifier (argument_list "(pcVar4,pFVar1)" ( identifier , identifier ))) ;) (expression_statement "pFVar1 = *(FILE **)puVar2;" (assignment_expression "pFVar1 = *(FILE **)puVar2" identifier = (pointer_expression "*(FILE **)puVar2" * (cast_expression "(FILE **)puVar2" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pcVar4 = (char *)dcgettext(0,\n                             "  -f, --fields=LIST       select only these fields;  also print any line\n                            that contains no delimiter character, unless\n                            the -s option is specified\n  -n                      (ignored)\n"\n                             ,5);" (assignment_expression "pcVar4 = (char *)dcgettext(0,\n                             "  -f, --fields=LIST       select only these fields;  also print any line\n                            that contains no delimiter character, unless\n                            the -s option is specified\n  -n                      (ignored)\n"\n                             ,5)" identifier = (cast_expression "(char *)dcgettext(0,\n                             "  -f, --fields=LIST       select only these fields;  also print any line\n                            that contains no delimiter character, unless\n                            the -s option is specified\n  -n                      (ignored)\n"\n                             ,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,\n                             "  -f, --fields=LIST       select only these fields;  also print any line\n                            that contains no delimiter character, unless\n                            the -s option is specified\n  -n                      (ignored)\n"\n                             ,5)" identifier (argument_list "(0,\n                             "  -f, --fields=LIST       select only these fields;  also print any line\n                            that contains no delimiter character, unless\n                            the -s option is specified\n  -n                      (ignored)\n"\n                             ,5)" ( number_literal , (string_literal ""  -f, --fields=LIST       select only these fields;  also print any line\n                            that contains no delimiter character, unless\n                            the -s option is specified\n  -n                      (ignored)\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "fputs_unlocked(pcVar4,pFVar1);" (call_expression "fputs_unlocked(pcVar4,pFVar1)" identifier (argument_list "(pcVar4,pFVar1)" ( identifier , identifier ))) ;) (expression_statement "pFVar1 = *(FILE **)puVar2;" (assignment_expression "pFVar1 = *(FILE **)puVar2" identifier = (pointer_expression "*(FILE **)puVar2" * (cast_expression "(FILE **)puVar2" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pcVar4 = (char *)dcgettext(0,\n                             "      --complement        complement the set of selected bytes, characters\n                            or fields\n"\n                             ,5);" (assignment_expression "pcVar4 = (char *)dcgettext(0,\n                             "      --complement        complement the set of selected bytes, characters\n                            or fields\n"\n                             ,5)" identifier = (cast_expression "(char *)dcgettext(0,\n                             "      --complement        complement the set of selected bytes, characters\n                            or fields\n"\n                             ,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,\n                             "      --complement        complement the set of selected bytes, characters\n                            or fields\n"\n                             ,5)" identifier (argument_list "(0,\n                             "      --complement        complement the set of selected bytes, characters\n                            or fields\n"\n                             ,5)" ( number_literal , (string_literal ""      --complement        complement the set of selected bytes, characters\n                            or fields\n"" " string_content escape_sequence string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "fputs_unlocked(pcVar4,pFVar1);" (call_expression "fputs_unlocked(pcVar4,pFVar1)" identifier (argument_list "(pcVar4,pFVar1)" ( identifier , identifier ))) ;) (expression_statement "pFVar1 = *(FILE **)puVar2;" (assignment_expression "pFVar1 = *(FILE **)puVar2" identifier = (pointer_expression "*(FILE **)puVar2" * (cast_expression "(FILE **)puVar2" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pcVar4 = (char *)dcgettext(0,\n                             "  -s, --only-delimited    do not print lines not containing delimiters\n      --output-delimiter=STRING  use STRING as the output delimiter\n                            the default is to use the input delimiter\n"\n                             ,5);" (assignment_expression "pcVar4 = (char *)dcgettext(0,\n                             "  -s, --only-delimited    do not print lines not containing delimiters\n      --output-delimiter=STRING  use STRING as the output delimiter\n                            the default is to use the input delimiter\n"\n                             ,5)" identifier = (cast_expression "(char *)dcgettext(0,\n                             "  -s, --only-delimited    do not print lines not containing delimiters\n      --output-delimiter=STRING  use STRING as the output delimiter\n                            the default is to use the input delimiter\n"\n                             ,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,\n                             "  -s, --only-delimited    do not print lines not containing delimiters\n      --output-delimiter=STRING  use STRING as the output delimiter\n                            the default is to use the input delimiter\n"\n                             ,5)" identifier (argument_list "(0,\n                             "  -s, --only-delimited    do not print lines not containing delimiters\n      --output-delimiter=STRING  use STRING as the output delimiter\n                            the default is to use the input delimiter\n"\n                             ,5)" ( number_literal , (string_literal ""  -s, --only-delimited    do not print lines not containing delimiters\n      --output-delimiter=STRING  use STRING as the output delimiter\n                            the default is to use the input delimiter\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "fputs_unlocked(pcVar4,pFVar1);" (call_expression "fputs_unlocked(pcVar4,pFVar1)" identifier (argument_list "(pcVar4,pFVar1)" ( identifier , identifier ))) ;) (expression_statement "pFVar1 = *(FILE **)puVar2;" (assignment_expression "pFVar1 = *(FILE **)puVar2" identifier = (pointer_expression "*(FILE **)puVar2" * (cast_expression "(FILE **)puVar2" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pcVar4 = (char *)dcgettext(0,"  -z, --zero-terminated    line delimiter is NUL, not newline\n",5);" (assignment_expression "pcVar4 = (char *)dcgettext(0,"  -z, --zero-terminated    line delimiter is NUL, not newline\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"  -z, --zero-terminated    line delimiter is NUL, not newline\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"  -z, --zero-terminated    line delimiter is NUL, not newline\n",5)" identifier (argument_list "(0,"  -z, --zero-terminated    line delimiter is NUL, not newline\n",5)" ( number_literal , (string_literal ""  -z, --zero-terminated    line delimiter is NUL, not newline\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "fputs_unlocked(pcVar4,pFVar1);" (call_expression "fputs_unlocked(pcVar4,pFVar1)" identifier (argument_list "(pcVar4,pFVar1)" ( identifier , identifier ))) ;) (expression_statement "pFVar1 = *(FILE **)puVar2;" (assignment_expression "pFVar1 = *(FILE **)puVar2" identifier = (pointer_expression "*(FILE **)puVar2" * (cast_expression "(FILE **)puVar2" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pcVar4 = (char *)dcgettext(0,"      --help     display this help and exit\n",5);" (assignment_expression "pcVar4 = (char *)dcgettext(0,"      --help     display this help and exit\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"      --help     display this help and exit\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"      --help     display this help and exit\n",5)" identifier (argument_list "(0,"      --help     display this help and exit\n",5)" ( number_literal , (string_literal ""      --help     display this help and exit\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "fputs_unlocked(pcVar4,pFVar1);" (call_expression "fputs_unlocked(pcVar4,pFVar1)" identifier (argument_list "(pcVar4,pFVar1)" ( identifier , identifier ))) ;) (expression_statement "pFVar1 = *(FILE **)puVar2;" (assignment_expression "pFVar1 = *(FILE **)puVar2" identifier = (pointer_expression "*(FILE **)puVar2" * (cast_expression "(FILE **)puVar2" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pcVar4 = (char *)dcgettext(0,"      --version  output version information and exit\n",5);" (assignment_expression "pcVar4 = (char *)dcgettext(0,"      --version  output version information and exit\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"      --version  output version information and exit\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"      --version  output version information and exit\n",5)" identifier (argument_list "(0,"      --version  output version information and exit\n",5)" ( number_literal , (string_literal ""      --version  output version information and exit\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "fputs_unlocked(pcVar4,pFVar1);" (call_expression "fputs_unlocked(pcVar4,pFVar1)" identifier (argument_list "(pcVar4,pFVar1)" ( identifier , identifier ))) ;) (expression_statement "pFVar1 = *(FILE **)puVar2;" (assignment_expression "pFVar1 = *(FILE **)puVar2" identifier = (pointer_expression "*(FILE **)puVar2" * (cast_expression "(FILE **)puVar2" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pcVar4 = (char *)dcgettext(0,\n                             "\nUse one, and only one of -b, -c or -f.  Each LIST is made up of one\nrange, or many ranges separated by commas.  Selected input is written\nin the same order that it is read, and is written exactly once.\n"\n                             ,5);" (assignment_expression "pcVar4 = (char *)dcgettext(0,\n                             "\nUse one, and only one of -b, -c or -f.  Each LIST is made up of one\nrange, or many ranges separated by commas.  Selected input is written\nin the same order that it is read, and is written exactly once.\n"\n                             ,5)" identifier = (cast_expression "(char *)dcgettext(0,\n                             "\nUse one, and only one of -b, -c or -f.  Each LIST is made up of one\nrange, or many ranges separated by commas.  Selected input is written\nin the same order that it is read, and is written exactly once.\n"\n                             ,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,\n                             "\nUse one, and only one of -b, -c or -f.  Each LIST is made up of one\nrange, or many ranges separated by commas.  Selected input is written\nin the same order that it is read, and is written exactly once.\n"\n                             ,5)" identifier (argument_list "(0,\n                             "\nUse one, and only one of -b, -c or -f.  Each LIST is made up of one\nrange, or many ranges separated by commas.  Selected input is written\nin the same order that it is read, and is written exactly once.\n"\n                             ,5)" ( number_literal , (string_literal ""\nUse one, and only one of -b, -c or -f.  Each LIST is made up of one\nrange, or many ranges separated by commas.  Selected input is written\nin the same order that it is read, and is written exactly once.\n"" " escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "pbVar10 = &DAT_0001801f;" (assignment_expression "pbVar10 = &DAT_0001801f" identifier = (pointer_expression "&DAT_0001801f" & identifier)) ;) (expression_statement "fputs_unlocked(pcVar4,pFVar1);" (call_expression "fputs_unlocked(pcVar4,pFVar1)" identifier (argument_list "(pcVar4,pFVar1)" ( identifier , identifier ))) ;) (expression_statement "pFVar1 = *(FILE **)puVar2;" (assignment_expression "pFVar1 = *(FILE **)puVar2" identifier = (pointer_expression "*(FILE **)puVar2" * (cast_expression "(FILE **)puVar2" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pcVar4 = (char *)dcgettext(0,\n                             "Each range is one of:\n\n  N     N\'th byte, character or field, counted from 1\n  N-    from N\'th byte, character or field, to end of line\n  N-M   from N\'th to M\'th (included) byte, character or field\n  -M    from first to M\'th (included) byte, character or field\n"\n                             ,5);" (assignment_expression "pcVar4 = (char *)dcgettext(0,\n                             "Each range is one of:\n\n  N     N\'th byte, character or field, counted from 1\n  N-    from N\'th byte, character or field, to end of line\n  N-M   from N\'th to M\'th (included) byte, character or field\n  -M    from first to M\'th (included) byte, character or field\n"\n                             ,5)" identifier = (cast_expression "(char *)dcgettext(0,\n                             "Each range is one of:\n\n  N     N\'th byte, character or field, counted from 1\n  N-    from N\'th byte, character or field, to end of line\n  N-M   from N\'th to M\'th (included) byte, character or field\n  -M    from first to M\'th (included) byte, character or field\n"\n                             ,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,\n                             "Each range is one of:\n\n  N     N\'th byte, character or field, counted from 1\n  N-    from N\'th byte, character or field, to end of line\n  N-M   from N\'th to M\'th (included) byte, character or field\n  -M    from first to M\'th (included) byte, character or field\n"\n                             ,5)" identifier (argument_list "(0,\n                             "Each range is one of:\n\n  N     N\'th byte, character or field, counted from 1\n  N-    from N\'th byte, character or field, to end of line\n  N-M   from N\'th to M\'th (included) byte, character or field\n  -M    from first to M\'th (included) byte, character or field\n"\n                             ,5)" ( number_literal , (string_literal ""Each range is one of:\n\n  N     N\'th byte, character or field, counted from 1\n  N-    from N\'th byte, character or field, to end of line\n  N-M   from N\'th to M\'th (included) byte, character or field\n  -M    from first to M\'th (included) byte, character or field\n"" " string_content escape_sequence escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "fputs_unlocked(pcVar4,pFVar1);" (call_expression "fputs_unlocked(pcVar4,pFVar1)" identifier (argument_list "(pcVar4,pFVar1)" ( identifier , identifier ))) ;) (expression_statement "local_58 = &DAT_00018023;" (assignment_expression "local_58 = &DAT_00018023" identifier = (pointer_expression "&DAT_00018023" & identifier)) ;) (expression_statement "local_28 = 0;" (assignment_expression "local_28 = 0" identifier = number_literal) ;) (expression_statement "local_54 = "test invocation";" (assignment_expression "local_54 = "test invocation"" identifier = (string_literal ""test invocation"" " string_content ")) ;) (expression_statement "local_50[0] = "coreutils";" (assignment_expression "local_50[0] = "coreutils"" (subscript_expression "local_50[0]" identifier [ number_literal ]) = (string_literal ""coreutils"" " string_content ")) ;) (expression_statement "local_50[1] = "Multi-call invocation";" (assignment_expression "local_50[1] = "Multi-call invocation"" (subscript_expression "local_50[1]" identifier [ number_literal ]) = (string_literal ""Multi-call invocation"" " string_content ")) ;) (expression_statement "local_50[4] = "sha256sum";" (assignment_expression "local_50[4] = "sha256sum"" (subscript_expression "local_50[4]" identifier [ number_literal ]) = (string_literal ""sha256sum"" " string_content ")) ;) (expression_statement "local_50[2] = "sha224sum";" (assignment_expression "local_50[2] = "sha224sum"" (subscript_expression "local_50[2]" identifier [ number_literal ]) = (string_literal ""sha224sum"" " string_content ")) ;) (expression_statement "local_38 = "sha384sum";" (assignment_expression "local_38 = "sha384sum"" identifier = (string_literal ""sha384sum"" " string_content ")) ;) (expression_statement "local_50[3] = "sha2 utilities";" (assignment_expression "local_50[3] = "sha2 utilities"" (subscript_expression "local_50[3]" identifier [ number_literal ]) = (string_literal ""sha2 utilities"" " string_content ")) ;) (expression_statement "local_3c = "sha2 utilities";" (assignment_expression "local_3c = "sha2 utilities"" identifier = (string_literal ""sha2 utilities"" " string_content ")) ;) (expression_statement "local_34 = "sha2 utilities";" (assignment_expression "local_34 = "sha2 utilities"" identifier = (string_literal ""sha2 utilities"" " string_content ")) ;) (expression_statement "local_2c = "sha2 utilities";" (assignment_expression "local_2c = "sha2 utilities"" identifier = (string_literal ""sha2 utilities"" " string_content ")) ;) (expression_statement "local_30 = "sha512sum";" (assignment_expression "local_30 = "sha512sum"" identifier = (string_literal ""sha512sum"" " string_content ")) ;) (expression_statement "local_24 = 0;" (assignment_expression "local_24 = 0" identifier = number_literal) ;) (expression_statement "ppuVar5 = &local_58;" (assignment_expression "ppuVar5 = &local_58" identifier = (pointer_expression "&local_58" & identifier)) ;) (expression_statement "iVar8 = extraout_ECX;" (assignment_expression "iVar8 = extraout_ECX" identifier = identifier) ;) (do_statement "do {\n    ppuVar6 = ppuVar5;\n    ppuVar5 = ppuVar6 + 2;\n    pbVar11 = *ppuVar5;\n    bVar12 = false;\n    bVar13 = pbVar11 == (byte *)0x0;\n    if (bVar13) break;\n    iVar8 = 4;\n    pbVar9 = pbVar10;\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar12 = *pbVar9 < *pbVar11;\n      bVar13 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar14 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n    } while (bVar13);\n  } while ((!bVar12 && !bVar13) != bVar12);" do (compound_statement "{\n    ppuVar6 = ppuVar5;\n    ppuVar5 = ppuVar6 + 2;\n    pbVar11 = *ppuVar5;\n    bVar12 = false;\n    bVar13 = pbVar11 == (byte *)0x0;\n    if (bVar13) break;\n    iVar8 = 4;\n    pbVar9 = pbVar10;\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar12 = *pbVar9 < *pbVar11;\n      bVar13 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar14 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n    } while (bVar13);\n  }" { (expression_statement "ppuVar6 = ppuVar5;" (assignment_expression "ppuVar6 = ppuVar5" identifier = identifier) ;) (expression_statement "ppuVar5 = ppuVar6 + 2;" (assignment_expression "ppuVar5 = ppuVar6 + 2" identifier = (binary_expression "ppuVar6 + 2" identifier + number_literal)) ;) (expression_statement "pbVar11 = *ppuVar5;" (assignment_expression "pbVar11 = *ppuVar5" identifier = (pointer_expression "*ppuVar5" * identifier)) ;) (expression_statement "bVar12 = false;" (assignment_expression "bVar12 = false" identifier = false) ;) (expression_statement "bVar13 = pbVar11 == (byte *)0x0;" (assignment_expression "bVar13 = pbVar11 == (byte *)0x0" identifier = (binary_expression "pbVar11 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (if_statement "if (bVar13) break;" if (parenthesized_expression "(bVar13)" ( identifier )) (break_statement "break;" break ;)) (expression_statement "iVar8 = 4;" (assignment_expression "iVar8 = 4" identifier = number_literal) ;) (expression_statement "pbVar9 = pbVar10;" (assignment_expression "pbVar9 = pbVar10" identifier = identifier) ;) (do_statement "do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar12 = *pbVar9 < *pbVar11;\n      bVar13 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar14 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n    } while (bVar13);" do (compound_statement "{\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar12 = *pbVar9 < *pbVar11;\n      bVar13 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar14 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n    }" { (if_statement "if (iVar8 == 0) break;" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar8 = iVar8 + -1;" (assignment_expression "iVar8 = iVar8 + -1" identifier = (binary_expression "iVar8 + -1" identifier + number_literal)) ;) (expression_statement "bVar12 = *pbVar9 < *pbVar11;" (assignment_expression "bVar12 = *pbVar9 < *pbVar11" identifier = (binary_expression "*pbVar9 < *pbVar11" (pointer_expression "*pbVar9" * identifier) < (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "bVar13 = *pbVar9 == *pbVar11;" (assignment_expression "bVar13 = *pbVar9 == *pbVar11" identifier = (binary_expression "*pbVar9 == *pbVar11" (pointer_expression "*pbVar9" * identifier) == (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "pbVar9 = pbVar9 + (uint)bVar14 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar14 * -2 + 1" identifier = (binary_expression "pbVar9 + (uint)bVar14 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar14 * -2" identifier + (binary_expression "(uint)bVar14 * -2" (cast_expression "(uint)bVar14" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1" identifier = (binary_expression "pbVar11 + (uint)bVar14 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar14 * -2" identifier + (binary_expression "(uint)bVar14 * -2" (cast_expression "(uint)bVar14" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar13)" ( identifier )) ;) }) while (parenthesized_expression "((!bVar12 && !bVar13) != bVar12)" ( (binary_expression "(!bVar12 && !bVar13) != bVar12" (parenthesized_expression "(!bVar12 && !bVar13)" ( (binary_expression "!bVar12 && !bVar13" (unary_expression "!bVar12" ! identifier) && (unary_expression "!bVar13" ! identifier)) )) != identifier) )) ;) (expression_statement "pbVar11 = ppuVar6[3];" (assignment_expression "pbVar11 = ppuVar6[3]" identifier = (subscript_expression "ppuVar6[3]" identifier [ number_literal ])) ;) (if_statement "if (pbVar11 == (byte *)0x0) {\n    uVar7 = dcgettext(0,"\n%s online help: <%s>\n",5,iVar8);\n    __printf_chk(1,uVar7,"GNU coreutils","https://www.gnu.org/software/coreutils/");\n    pcVar4 = setlocale(5,(char *)0x0);\n    if ((pcVar4 != (char *)0x0) && (pcVar4 = (char *)strncmp(pcVar4,"en_",3), pcVar4 != (char *)0x0)\n       ) goto LAB_00012719;\n    uVar7 = dcgettext(0,"Full documentation at: <%s%s>\n",5,0);\n    pcVar4 = " invocation";\n    __printf_chk(1,uVar7,"https://www.gnu.org/software/coreutils/",&DAT_0001801f);\n  }\n  else {\n    uVar7 = dcgettext(0,"\n%s online help: <%s>\n",5,iVar8);\n    __printf_chk(1,uVar7,"GNU coreutils","https://www.gnu.org/software/coreutils/");\n    pcVar4 = setlocale(5,(char *)0x0);\n    pbVar10 = pbVar11;\n    if ((pcVar4 != (char *)0x0) && (pcVar4 = (char *)strncmp(pcVar4,"en_",3), pcVar4 != (char *)0x0)\n       ) {\nLAB_00012719:\n      uVar7 = dcgettext(0,"Report %s translation bugs to <https://translationproject.org/team/>\n",5\n                        ,pcVar4);\n      pcVar4 = (char *)__printf_chk(1,uVar7,&DAT_0001801f);\n    }\n    uVar7 = dcgettext(0,"Full documentation at: <%s%s>\n",5,pcVar4);\n    __printf_chk(1,uVar7,"https://www.gnu.org/software/coreutils/",&DAT_0001801f);\n    if (pbVar10 == &DAT_0001801f) {\n      pcVar4 = " invocation";\n    }\n    else {\n      pcVar4 = "";\n    }\n  }" if (parenthesized_expression "(pbVar11 == (byte *)0x0)" ( (binary_expression "pbVar11 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar7 = dcgettext(0,"\n%s online help: <%s>\n",5,iVar8);\n    __printf_chk(1,uVar7,"GNU coreutils","https://www.gnu.org/software/coreutils/");\n    pcVar4 = setlocale(5,(char *)0x0);\n    if ((pcVar4 != (char *)0x0) && (pcVar4 = (char *)strncmp(pcVar4,"en_",3), pcVar4 != (char *)0x0)\n       ) goto LAB_00012719;\n    uVar7 = dcgettext(0,"Full documentation at: <%s%s>\n",5,0);\n    pcVar4 = " invocation";\n    __printf_chk(1,uVar7,"https://www.gnu.org/software/coreutils/",&DAT_0001801f);\n  }" { (expression_statement "uVar7 = dcgettext(0,"\n%s online help: <%s>\n",5,iVar8);" (assignment_expression "uVar7 = dcgettext(0,"\n%s online help: <%s>\n",5,iVar8)" identifier = (call_expression "dcgettext(0,"\n%s online help: <%s>\n",5,iVar8)" identifier (argument_list "(0,"\n%s online help: <%s>\n",5,iVar8)" ( number_literal , (string_literal ""\n%s online help: <%s>\n"" " escape_sequence string_content escape_sequence ") , number_literal , identifier )))) ;) (expression_statement "__printf_chk(1,uVar7,"GNU coreutils","https://www.gnu.org/software/coreutils/");" (call_expression "__printf_chk(1,uVar7,"GNU coreutils","https://www.gnu.org/software/coreutils/")" identifier (argument_list "(1,uVar7,"GNU coreutils","https://www.gnu.org/software/coreutils/")" ( number_literal , identifier , (string_literal ""GNU coreutils"" " string_content ") , (string_literal ""https://www.gnu.org/software/coreutils/"" " string_content ") ))) ;) (expression_statement "pcVar4 = setlocale(5,(char *)0x0);" (assignment_expression "pcVar4 = setlocale(5,(char *)0x0)" identifier = (call_expression "setlocale(5,(char *)0x0)" identifier (argument_list "(5,(char *)0x0)" ( number_literal , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) )))) ;) (if_statement "if ((pcVar4 != (char *)0x0) && (pcVar4 = (char *)strncmp(pcVar4,"en_",3), pcVar4 != (char *)0x0)\n       ) goto LAB_00012719;" if (parenthesized_expression "((pcVar4 != (char *)0x0) && (pcVar4 = (char *)strncmp(pcVar4,"en_",3), pcVar4 != (char *)0x0)\n       )" ( (binary_expression "(pcVar4 != (char *)0x0) && (pcVar4 = (char *)strncmp(pcVar4,"en_",3), pcVar4 != (char *)0x0)" (parenthesized_expression "(pcVar4 != (char *)0x0)" ( (binary_expression "pcVar4 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(pcVar4 = (char *)strncmp(pcVar4,"en_",3), pcVar4 != (char *)0x0)" ( (comma_expression "pcVar4 = (char *)strncmp(pcVar4,"en_",3), pcVar4 != (char *)0x0" (assignment_expression "pcVar4 = (char *)strncmp(pcVar4,"en_",3)" identifier = (cast_expression "(char *)strncmp(pcVar4,"en_",3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "strncmp(pcVar4,"en_",3)" identifier (argument_list "(pcVar4,"en_",3)" ( identifier , (string_literal ""en_"" " string_content ") , number_literal ))))) , (binary_expression "pcVar4 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (goto_statement "goto LAB_00012719;" goto statement_identifier ;)) (expression_statement "uVar7 = dcgettext(0,"Full documentation at: <%s%s>\n",5,0);" (assignment_expression "uVar7 = dcgettext(0,"Full documentation at: <%s%s>\n",5,0)" identifier = (call_expression "dcgettext(0,"Full documentation at: <%s%s>\n",5,0)" identifier (argument_list "(0,"Full documentation at: <%s%s>\n",5,0)" ( number_literal , (string_literal ""Full documentation at: <%s%s>\n"" " string_content escape_sequence ") , number_literal , number_literal )))) ;) (expression_statement "pcVar4 = " invocation";" (assignment_expression "pcVar4 = " invocation"" identifier = (string_literal "" invocation"" " string_content ")) ;) (expression_statement "__printf_chk(1,uVar7,"https://www.gnu.org/software/coreutils/",&DAT_0001801f);" (call_expression "__printf_chk(1,uVar7,"https://www.gnu.org/software/coreutils/",&DAT_0001801f)" identifier (argument_list "(1,uVar7,"https://www.gnu.org/software/coreutils/",&DAT_0001801f)" ( number_literal , identifier , (string_literal ""https://www.gnu.org/software/coreutils/"" " string_content ") , (pointer_expression "&DAT_0001801f" & identifier) ))) ;) }) (else_clause "else {\n    uVar7 = dcgettext(0,"\n%s online help: <%s>\n",5,iVar8);\n    __printf_chk(1,uVar7,"GNU coreutils","https://www.gnu.org/software/coreutils/");\n    pcVar4 = setlocale(5,(char *)0x0);\n    pbVar10 = pbVar11;\n    if ((pcVar4 != (char *)0x0) && (pcVar4 = (char *)strncmp(pcVar4,"en_",3), pcVar4 != (char *)0x0)\n       ) {\nLAB_00012719:\n      uVar7 = dcgettext(0,"Report %s translation bugs to <https://translationproject.org/team/>\n",5\n                        ,pcVar4);\n      pcVar4 = (char *)__printf_chk(1,uVar7,&DAT_0001801f);\n    }\n    uVar7 = dcgettext(0,"Full documentation at: <%s%s>\n",5,pcVar4);\n    __printf_chk(1,uVar7,"https://www.gnu.org/software/coreutils/",&DAT_0001801f);\n    if (pbVar10 == &DAT_0001801f) {\n      pcVar4 = " invocation";\n    }\n    else {\n      pcVar4 = "";\n    }\n  }" else (compound_statement "{\n    uVar7 = dcgettext(0,"\n%s online help: <%s>\n",5,iVar8);\n    __printf_chk(1,uVar7,"GNU coreutils","https://www.gnu.org/software/coreutils/");\n    pcVar4 = setlocale(5,(char *)0x0);\n    pbVar10 = pbVar11;\n    if ((pcVar4 != (char *)0x0) && (pcVar4 = (char *)strncmp(pcVar4,"en_",3), pcVar4 != (char *)0x0)\n       ) {\nLAB_00012719:\n      uVar7 = dcgettext(0,"Report %s translation bugs to <https://translationproject.org/team/>\n",5\n                        ,pcVar4);\n      pcVar4 = (char *)__printf_chk(1,uVar7,&DAT_0001801f);\n    }\n    uVar7 = dcgettext(0,"Full documentation at: <%s%s>\n",5,pcVar4);\n    __printf_chk(1,uVar7,"https://www.gnu.org/software/coreutils/",&DAT_0001801f);\n    if (pbVar10 == &DAT_0001801f) {\n      pcVar4 = " invocation";\n    }\n    else {\n      pcVar4 = "";\n    }\n  }" { (expression_statement "uVar7 = dcgettext(0,"\n%s online help: <%s>\n",5,iVar8);" (assignment_expression "uVar7 = dcgettext(0,"\n%s online help: <%s>\n",5,iVar8)" identifier = (call_expression "dcgettext(0,"\n%s online help: <%s>\n",5,iVar8)" identifier (argument_list "(0,"\n%s online help: <%s>\n",5,iVar8)" ( number_literal , (string_literal ""\n%s online help: <%s>\n"" " escape_sequence string_content escape_sequence ") , number_literal , identifier )))) ;) (expression_statement "__printf_chk(1,uVar7,"GNU coreutils","https://www.gnu.org/software/coreutils/");" (call_expression "__printf_chk(1,uVar7,"GNU coreutils","https://www.gnu.org/software/coreutils/")" identifier (argument_list "(1,uVar7,"GNU coreutils","https://www.gnu.org/software/coreutils/")" ( number_literal , identifier , (string_literal ""GNU coreutils"" " string_content ") , (string_literal ""https://www.gnu.org/software/coreutils/"" " string_content ") ))) ;) (expression_statement "pcVar4 = setlocale(5,(char *)0x0);" (assignment_expression "pcVar4 = setlocale(5,(char *)0x0)" identifier = (call_expression "setlocale(5,(char *)0x0)" identifier (argument_list "(5,(char *)0x0)" ( number_literal , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) )))) ;) (expression_statement "pbVar10 = pbVar11;" (assignment_expression "pbVar10 = pbVar11" identifier = identifier) ;) (if_statement "if ((pcVar4 != (char *)0x0) && (pcVar4 = (char *)strncmp(pcVar4,"en_",3), pcVar4 != (char *)0x0)\n       ) {\nLAB_00012719:\n      uVar7 = dcgettext(0,"Report %s translation bugs to <https://translationproject.org/team/>\n",5\n                        ,pcVar4);\n      pcVar4 = (char *)__printf_chk(1,uVar7,&DAT_0001801f);\n    }" if (parenthesized_expression "((pcVar4 != (char *)0x0) && (pcVar4 = (char *)strncmp(pcVar4,"en_",3), pcVar4 != (char *)0x0)\n       )" ( (binary_expression "(pcVar4 != (char *)0x0) && (pcVar4 = (char *)strncmp(pcVar4,"en_",3), pcVar4 != (char *)0x0)" (parenthesized_expression "(pcVar4 != (char *)0x0)" ( (binary_expression "pcVar4 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(pcVar4 = (char *)strncmp(pcVar4,"en_",3), pcVar4 != (char *)0x0)" ( (comma_expression "pcVar4 = (char *)strncmp(pcVar4,"en_",3), pcVar4 != (char *)0x0" (assignment_expression "pcVar4 = (char *)strncmp(pcVar4,"en_",3)" identifier = (cast_expression "(char *)strncmp(pcVar4,"en_",3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "strncmp(pcVar4,"en_",3)" identifier (argument_list "(pcVar4,"en_",3)" ( identifier , (string_literal ""en_"" " string_content ") , number_literal ))))) , (binary_expression "pcVar4 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\nLAB_00012719:\n      uVar7 = dcgettext(0,"Report %s translation bugs to <https://translationproject.org/team/>\n",5\n                        ,pcVar4);\n      pcVar4 = (char *)__printf_chk(1,uVar7,&DAT_0001801f);\n    }" { (labeled_statement "LAB_00012719:\n      uVar7 = dcgettext(0,"Report %s translation bugs to <https://translationproject.org/team/>\n",5\n                        ,pcVar4);" statement_identifier : (expression_statement "uVar7 = dcgettext(0,"Report %s translation bugs to <https://translationproject.org/team/>\n",5\n                        ,pcVar4);" (assignment_expression "uVar7 = dcgettext(0,"Report %s translation bugs to <https://translationproject.org/team/>\n",5\n                        ,pcVar4)" identifier = (call_expression "dcgettext(0,"Report %s translation bugs to <https://translationproject.org/team/>\n",5\n                        ,pcVar4)" identifier (argument_list "(0,"Report %s translation bugs to <https://translationproject.org/team/>\n",5\n                        ,pcVar4)" ( number_literal , (string_literal ""Report %s translation bugs to <https://translationproject.org/team/>\n"" " string_content escape_sequence ") , number_literal , identifier )))) ;)) (expression_statement "pcVar4 = (char *)__printf_chk(1,uVar7,&DAT_0001801f);" (assignment_expression "pcVar4 = (char *)__printf_chk(1,uVar7,&DAT_0001801f)" identifier = (cast_expression "(char *)__printf_chk(1,uVar7,&DAT_0001801f)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "__printf_chk(1,uVar7,&DAT_0001801f)" identifier (argument_list "(1,uVar7,&DAT_0001801f)" ( number_literal , identifier , (pointer_expression "&DAT_0001801f" & identifier) ))))) ;) })) (expression_statement "uVar7 = dcgettext(0,"Full documentation at: <%s%s>\n",5,pcVar4);" (assignment_expression "uVar7 = dcgettext(0,"Full documentation at: <%s%s>\n",5,pcVar4)" identifier = (call_expression "dcgettext(0,"Full documentation at: <%s%s>\n",5,pcVar4)" identifier (argument_list "(0,"Full documentation at: <%s%s>\n",5,pcVar4)" ( number_literal , (string_literal ""Full documentation at: <%s%s>\n"" " string_content escape_sequence ") , number_literal , identifier )))) ;) (expression_statement "__printf_chk(1,uVar7,"https://www.gnu.org/software/coreutils/",&DAT_0001801f);" (call_expression "__printf_chk(1,uVar7,"https://www.gnu.org/software/coreutils/",&DAT_0001801f)" identifier (argument_list "(1,uVar7,"https://www.gnu.org/software/coreutils/",&DAT_0001801f)" ( number_literal , identifier , (string_literal ""https://www.gnu.org/software/coreutils/"" " string_content ") , (pointer_expression "&DAT_0001801f" & identifier) ))) ;) (if_statement "if (pbVar10 == &DAT_0001801f) {\n      pcVar4 = " invocation";\n    }\n    else {\n      pcVar4 = "";\n    }" if (parenthesized_expression "(pbVar10 == &DAT_0001801f)" ( (binary_expression "pbVar10 == &DAT_0001801f" identifier == (pointer_expression "&DAT_0001801f" & identifier)) )) (compound_statement "{\n      pcVar4 = " invocation";\n    }" { (expression_statement "pcVar4 = " invocation";" (assignment_expression "pcVar4 = " invocation"" identifier = (string_literal "" invocation"" " string_content ")) ;) }) (else_clause "else {\n      pcVar4 = "";\n    }" else (compound_statement "{\n      pcVar4 = "";\n    }" { (expression_statement "pcVar4 = "";" (assignment_expression "pcVar4 = """ identifier = (string_literal """" " ")) ;) }))) }))) (expression_statement "uVar7 = dcgettext(0,"or available locally via: info \'(coreutils) %s%s\'\n",5,&DAT_0001801f);" (assignment_expression "uVar7 = dcgettext(0,"or available locally via: info \'(coreutils) %s%s\'\n",5,&DAT_0001801f)" identifier = (call_expression "dcgettext(0,"or available locally via: info \'(coreutils) %s%s\'\n",5,&DAT_0001801f)" identifier (argument_list "(0,"or available locally via: info \'(coreutils) %s%s\'\n",5,&DAT_0001801f)" ( number_literal , (string_literal ""or available locally via: info \'(coreutils) %s%s\'\n"" " string_content escape_sequence string_content escape_sequence escape_sequence ") , number_literal , (pointer_expression "&DAT_0001801f" & identifier) )))) ;) (expression_statement "__printf_chk(1,uVar7,pbVar10,pcVar4);" (call_expression "__printf_chk(1,uVar7,pbVar10,pcVar4)" identifier (argument_list "(1,uVar7,pbVar10,pcVar4)" ( number_literal , identifier , identifier , identifier ))) ;) (labeled_statement "LAB_000123b3:\n                    /* WARNING: Subroutine does not return */\n  exit(param_1);" statement_identifier : comment (expression_statement "exit(param_1);" (call_expression "exit(param_1)" identifier (argument_list "(param_1)" ( identifier ))) ;)) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid usage(int status)\n\n{\n  FILE *pFVar1;\n  undefined *puVar2;\n  undefined4 uVar3;\n  char *pcVar4;\n  infomap *piVar5;\n  int extraout_ECX;\n  int iVar7;\n  byte *pbVar8;\n  byte *pbVar9;\n  byte *pbVar10;\n  bool bVar11;\n  bool bVar12;\n  byte bVar13;\n  infomap infomap [7];\n  infomap *piVar6;\n  \n  pcVar4 = program_name;\n  bVar13 = 0;\n  if (status != 0) {\n    uVar3 = dcgettext(0,"Try \'%s --help\' for more information.\n",5);\n    __fprintf_chk(*(undefined4 *)PTR_stderr_0001cfc0,1,uVar3,pcVar4);\n    goto LAB_000123b3;\n  }\n  uVar3 = dcgettext(0,"Usage: %s OPTION... [FILE]...\n",5);\n  __printf_chk(1,uVar3,pcVar4);\n  puVar2 = PTR_stdout_0001cfd4;\n  pFVar1 = *(FILE **)PTR_stdout_0001cfd4;\n  pcVar4 = (char *)dcgettext(0,"Print selected parts of lines from each FILE to standard output.\n",\n                             5);\n  fputs_unlocked(pcVar4,pFVar1);\n  pFVar1 = *(FILE **)puVar2;\n  pcVar4 = (char *)dcgettext(0,"\nWith no FILE, or when FILE is -, read standard input.\n",5);\n  fputs_unlocked(pcVar4,pFVar1);\n  pFVar1 = *(FILE **)puVar2;\n  pcVar4 = (char *)dcgettext(0,\n                             "\nMandatory arguments to long options are mandatory for short options too.\n"\n                             ,5);\n  fputs_unlocked(pcVar4,pFVar1);\n  pFVar1 = *(FILE **)puVar2;\n  pcVar4 = (char *)dcgettext(0,\n                             "  -b, --bytes=LIST        select only these bytes\n  -c, --characters=LIST   select only these characters\n  -d, --delimiter=DELIM   use DELIM instead of TAB for field delimiter\n"\n                             ,5);\n  fputs_unlocked(pcVar4,pFVar1);\n  pFVar1 = *(FILE **)puVar2;\n  pcVar4 = (char *)dcgettext(0,\n                             "  -f, --fields=LIST       select only these fields;  also print any line\n                            that contains no delimiter character, unless\n                            the -s option is specified\n  -n                      (ignored)\n"\n                             ,5);\n  fputs_unlocked(pcVar4,pFVar1);\n  pFVar1 = *(FILE **)puVar2;\n  pcVar4 = (char *)dcgettext(0,\n                             "      --complement        complement the set of selected bytes, characters\n                            or fields\n"\n                             ,5);\n  fputs_unlocked(pcVar4,pFVar1);\n  pFVar1 = *(FILE **)puVar2;\n  pcVar4 = (char *)dcgettext(0,\n                             "  -s, --only-delimited    do not print lines not containing delimiters\n      --output-delimiter=STRING  use STRING as the output delimiter\n                            the default is to use the input delimiter\n"\n                             ,5);\n  fputs_unlocked(pcVar4,pFVar1);\n  pFVar1 = *(FILE **)puVar2;\n  pcVar4 = (char *)dcgettext(0,"  -z, --zero-terminated    line delimiter is NUL, not newline\n",5);\n  fputs_unlocked(pcVar4,pFVar1);\n  pFVar1 = *(FILE **)puVar2;\n  pcVar4 = (char *)dcgettext(0,"      --help     display this help and exit\n",5);\n  fputs_unlocked(pcVar4,pFVar1);\n  pFVar1 = *(FILE **)puVar2;\n  pcVar4 = (char *)dcgettext(0,"      --version  output version information and exit\n",5);\n  fputs_unlocked(pcVar4,pFVar1);\n  pFVar1 = *(FILE **)puVar2;\n  pcVar4 = (char *)dcgettext(0,\n                             "\nUse one, and only one of -b, -c or -f.  Each LIST is made up of one\nrange, or many ranges separated by commas.  Selected input is written\nin the same order that it is read, and is written exactly once.\n"\n                             ,5);\n  pbVar9 = &DAT_0001801f;\n  fputs_unlocked(pcVar4,pFVar1);\n  pFVar1 = *(FILE **)puVar2;\n  pcVar4 = (char *)dcgettext(0,\n                             "Each range is one of:\n\n  N     N\'th byte, character or field, counted from 1\n  N-    from N\'th byte, character or field, to end of line\n  N-M   from N\'th to M\'th (included) byte, character or field\n  -M    from first to M\'th (included) byte, character or field\n"\n                             ,5);\n  fputs_unlocked(pcVar4,pFVar1);\n  infomap[0].program = "[";\n  infomap[6].program = (char *)0x0;\n  infomap[0].node = "test invocation";\n  infomap[1].program = "coreutils";\n  infomap[1].node = "Multi-call invocation";\n  infomap[3].program = "sha256sum";\n  infomap[2].program = "sha224sum";\n  infomap[4].program = "sha384sum";\n  infomap[2].node = "sha2 utilities";\n  infomap[3].node = "sha2 utilities";\n  infomap[4].node = "sha2 utilities";\n  infomap[5].node = "sha2 utilities";\n  infomap[5].program = "sha512sum";\n  infomap[6].node = (char *)0x0;\n  piVar5 = infomap;\n  iVar7 = extraout_ECX;\n  do {\n    piVar6 = piVar5;\n    piVar5 = piVar6 + 1;\n    pbVar10 = (byte *)piVar5->program;\n    bVar11 = false;\n    bVar12 = pbVar10 == (byte *)0x0;\n    if (bVar12) break;\n    iVar7 = 4;\n    pbVar8 = pbVar9;\n    do {\n      if (iVar7 == 0) break;\n      iVar7 = iVar7 + -1;\n      bVar11 = *pbVar8 < *pbVar10;\n      bVar12 = *pbVar8 == *pbVar10;\n      pbVar8 = pbVar8 + (uint)bVar13 * -2 + 1;\n      pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1;\n    } while (bVar12);\n  } while ((!bVar11 && !bVar12) != bVar11);\n  pbVar10 = (byte *)piVar6[1].node;\n  if (pbVar10 == (byte *)0x0) {\n    uVar3 = dcgettext(0,"\n%s online help: <%s>\n",5,iVar7);\n    __printf_chk(1,uVar3,"GNU coreutils","https://www.gnu.org/software/coreutils/");\n    pcVar4 = setlocale(5,(char *)0x0);\n    if ((pcVar4 != (char *)0x0) && (pcVar4 = (char *)strncmp(pcVar4,"en_",3), pcVar4 != (char *)0x0)\n       ) goto LAB_00012719;\n    uVar3 = dcgettext(0,"Full documentation at: <%s%s>\n",5,0);\n    pcVar4 = " invocation";\n    __printf_chk(1,uVar3,"https://www.gnu.org/software/coreutils/",&DAT_0001801f);\n  }\n  else {\n    uVar3 = dcgettext(0,"\n%s online help: <%s>\n",5,iVar7);\n    __printf_chk(1,uVar3,"GNU coreutils","https://www.gnu.org/software/coreutils/");\n    pcVar4 = setlocale(5,(char *)0x0);\n    pbVar9 = pbVar10;\n    if ((pcVar4 != (char *)0x0) && (pcVar4 = (char *)strncmp(pcVar4,"en_",3), pcVar4 != (char *)0x0)\n       ) {\nLAB_00012719:\n      uVar3 = dcgettext(0,"Report %s translation bugs to <https://translationproject.org/team/>\n",5\n                        ,pcVar4);\n      pcVar4 = (char *)__printf_chk(1,uVar3,&DAT_0001801f);\n    }\n    uVar3 = dcgettext(0,"Full documentation at: <%s%s>\n",5,pcVar4);\n    __printf_chk(1,uVar3,"https://www.gnu.org/software/coreutils/",&DAT_0001801f);\n    if (pbVar9 == &DAT_0001801f) {\n      pcVar4 = " invocation";\n    }\n    else {\n      pcVar4 = "";\n    }\n  }\n  uVar3 = dcgettext(0,"or available locally via: info \'(coreutils) %s%s\'\n",5,&DAT_0001801f);\n  __printf_chk(1,uVar3,pbVar9,pcVar4);\nLAB_000123b3:\n                    /* WARNING: Subroutine does not return */\n  exit(status);\n}\n\n" comment (function_definition "void usage(int status)\n\n{\n  FILE *pFVar1;\n  undefined *puVar2;\n  undefined4 uVar3;\n  char *pcVar4;\n  infomap *piVar5;\n  int extraout_ECX;\n  int iVar7;\n  byte *pbVar8;\n  byte *pbVar9;\n  byte *pbVar10;\n  bool bVar11;\n  bool bVar12;\n  byte bVar13;\n  infomap infomap [7];\n  infomap *piVar6;\n  \n  pcVar4 = program_name;\n  bVar13 = 0;\n  if (status != 0) {\n    uVar3 = dcgettext(0,"Try \'%s --help\' for more information.\n",5);\n    __fprintf_chk(*(undefined4 *)PTR_stderr_0001cfc0,1,uVar3,pcVar4);\n    goto LAB_000123b3;\n  }\n  uVar3 = dcgettext(0,"Usage: %s OPTION... [FILE]...\n",5);\n  __printf_chk(1,uVar3,pcVar4);\n  puVar2 = PTR_stdout_0001cfd4;\n  pFVar1 = *(FILE **)PTR_stdout_0001cfd4;\n  pcVar4 = (char *)dcgettext(0,"Print selected parts of lines from each FILE to standard output.\n",\n                             5);\n  fputs_unlocked(pcVar4,pFVar1);\n  pFVar1 = *(FILE **)puVar2;\n  pcVar4 = (char *)dcgettext(0,"\nWith no FILE, or when FILE is -, read standard input.\n",5);\n  fputs_unlocked(pcVar4,pFVar1);\n  pFVar1 = *(FILE **)puVar2;\n  pcVar4 = (char *)dcgettext(0,\n                             "\nMandatory arguments to long options are mandatory for short options too.\n"\n                             ,5);\n  fputs_unlocked(pcVar4,pFVar1);\n  pFVar1 = *(FILE **)puVar2;\n  pcVar4 = (char *)dcgettext(0,\n                             "  -b, --bytes=LIST        select only these bytes\n  -c, --characters=LIST   select only these characters\n  -d, --delimiter=DELIM   use DELIM instead of TAB for field delimiter\n"\n                             ,5);\n  fputs_unlocked(pcVar4,pFVar1);\n  pFVar1 = *(FILE **)puVar2;\n  pcVar4 = (char *)dcgettext(0,\n                             "  -f, --fields=LIST       select only these fields;  also print any line\n                            that contains no delimiter character, unless\n                            the -s option is specified\n  -n                      (ignored)\n"\n                             ,5);\n  fputs_unlocked(pcVar4,pFVar1);\n  pFVar1 = *(FILE **)puVar2;\n  pcVar4 = (char *)dcgettext(0,\n                             "      --complement        complement the set of selected bytes, characters\n                            or fields\n"\n                             ,5);\n  fputs_unlocked(pcVar4,pFVar1);\n  pFVar1 = *(FILE **)puVar2;\n  pcVar4 = (char *)dcgettext(0,\n                             "  -s, --only-delimited    do not print lines not containing delimiters\n      --output-delimiter=STRING  use STRING as the output delimiter\n                            the default is to use the input delimiter\n"\n                             ,5);\n  fputs_unlocked(pcVar4,pFVar1);\n  pFVar1 = *(FILE **)puVar2;\n  pcVar4 = (char *)dcgettext(0,"  -z, --zero-terminated    line delimiter is NUL, not newline\n",5);\n  fputs_unlocked(pcVar4,pFVar1);\n  pFVar1 = *(FILE **)puVar2;\n  pcVar4 = (char *)dcgettext(0,"      --help     display this help and exit\n",5);\n  fputs_unlocked(pcVar4,pFVar1);\n  pFVar1 = *(FILE **)puVar2;\n  pcVar4 = (char *)dcgettext(0,"      --version  output version information and exit\n",5);\n  fputs_unlocked(pcVar4,pFVar1);\n  pFVar1 = *(FILE **)puVar2;\n  pcVar4 = (char *)dcgettext(0,\n                             "\nUse one, and only one of -b, -c or -f.  Each LIST is made up of one\nrange, or many ranges separated by commas.  Selected input is written\nin the same order that it is read, and is written exactly once.\n"\n                             ,5);\n  pbVar9 = &DAT_0001801f;\n  fputs_unlocked(pcVar4,pFVar1);\n  pFVar1 = *(FILE **)puVar2;\n  pcVar4 = (char *)dcgettext(0,\n                             "Each range is one of:\n\n  N     N\'th byte, character or field, counted from 1\n  N-    from N\'th byte, character or field, to end of line\n  N-M   from N\'th to M\'th (included) byte, character or field\n  -M    from first to M\'th (included) byte, character or field\n"\n                             ,5);\n  fputs_unlocked(pcVar4,pFVar1);\n  infomap[0].program = "[";\n  infomap[6].program = (char *)0x0;\n  infomap[0].node = "test invocation";\n  infomap[1].program = "coreutils";\n  infomap[1].node = "Multi-call invocation";\n  infomap[3].program = "sha256sum";\n  infomap[2].program = "sha224sum";\n  infomap[4].program = "sha384sum";\n  infomap[2].node = "sha2 utilities";\n  infomap[3].node = "sha2 utilities";\n  infomap[4].node = "sha2 utilities";\n  infomap[5].node = "sha2 utilities";\n  infomap[5].program = "sha512sum";\n  infomap[6].node = (char *)0x0;\n  piVar5 = infomap;\n  iVar7 = extraout_ECX;\n  do {\n    piVar6 = piVar5;\n    piVar5 = piVar6 + 1;\n    pbVar10 = (byte *)piVar5->program;\n    bVar11 = false;\n    bVar12 = pbVar10 == (byte *)0x0;\n    if (bVar12) break;\n    iVar7 = 4;\n    pbVar8 = pbVar9;\n    do {\n      if (iVar7 == 0) break;\n      iVar7 = iVar7 + -1;\n      bVar11 = *pbVar8 < *pbVar10;\n      bVar12 = *pbVar8 == *pbVar10;\n      pbVar8 = pbVar8 + (uint)bVar13 * -2 + 1;\n      pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1;\n    } while (bVar12);\n  } while ((!bVar11 && !bVar12) != bVar11);\n  pbVar10 = (byte *)piVar6[1].node;\n  if (pbVar10 == (byte *)0x0) {\n    uVar3 = dcgettext(0,"\n%s online help: <%s>\n",5,iVar7);\n    __printf_chk(1,uVar3,"GNU coreutils","https://www.gnu.org/software/coreutils/");\n    pcVar4 = setlocale(5,(char *)0x0);\n    if ((pcVar4 != (char *)0x0) && (pcVar4 = (char *)strncmp(pcVar4,"en_",3), pcVar4 != (char *)0x0)\n       ) goto LAB_00012719;\n    uVar3 = dcgettext(0,"Full documentation at: <%s%s>\n",5,0);\n    pcVar4 = " invocation";\n    __printf_chk(1,uVar3,"https://www.gnu.org/software/coreutils/",&DAT_0001801f);\n  }\n  else {\n    uVar3 = dcgettext(0,"\n%s online help: <%s>\n",5,iVar7);\n    __printf_chk(1,uVar3,"GNU coreutils","https://www.gnu.org/software/coreutils/");\n    pcVar4 = setlocale(5,(char *)0x0);\n    pbVar9 = pbVar10;\n    if ((pcVar4 != (char *)0x0) && (pcVar4 = (char *)strncmp(pcVar4,"en_",3), pcVar4 != (char *)0x0)\n       ) {\nLAB_00012719:\n      uVar3 = dcgettext(0,"Report %s translation bugs to <https://translationproject.org/team/>\n",5\n                        ,pcVar4);\n      pcVar4 = (char *)__printf_chk(1,uVar3,&DAT_0001801f);\n    }\n    uVar3 = dcgettext(0,"Full documentation at: <%s%s>\n",5,pcVar4);\n    __printf_chk(1,uVar3,"https://www.gnu.org/software/coreutils/",&DAT_0001801f);\n    if (pbVar9 == &DAT_0001801f) {\n      pcVar4 = " invocation";\n    }\n    else {\n      pcVar4 = "";\n    }\n  }\n  uVar3 = dcgettext(0,"or available locally via: info \'(coreutils) %s%s\'\n",5,&DAT_0001801f);\n  __printf_chk(1,uVar3,pbVar9,pcVar4);\nLAB_000123b3:\n                    /* WARNING: Subroutine does not return */\n  exit(status);\n}" primitive_type (function_declarator "usage(int status)" identifier (parameter_list "(int status)" ( (parameter_declaration "int status" primitive_type identifier) ))) (compound_statement "{\n  FILE *pFVar1;\n  undefined *puVar2;\n  undefined4 uVar3;\n  char *pcVar4;\n  infomap *piVar5;\n  int extraout_ECX;\n  int iVar7;\n  byte *pbVar8;\n  byte *pbVar9;\n  byte *pbVar10;\n  bool bVar11;\n  bool bVar12;\n  byte bVar13;\n  infomap infomap [7];\n  infomap *piVar6;\n  \n  pcVar4 = program_name;\n  bVar13 = 0;\n  if (status != 0) {\n    uVar3 = dcgettext(0,"Try \'%s --help\' for more information.\n",5);\n    __fprintf_chk(*(undefined4 *)PTR_stderr_0001cfc0,1,uVar3,pcVar4);\n    goto LAB_000123b3;\n  }\n  uVar3 = dcgettext(0,"Usage: %s OPTION... [FILE]...\n",5);\n  __printf_chk(1,uVar3,pcVar4);\n  puVar2 = PTR_stdout_0001cfd4;\n  pFVar1 = *(FILE **)PTR_stdout_0001cfd4;\n  pcVar4 = (char *)dcgettext(0,"Print selected parts of lines from each FILE to standard output.\n",\n                             5);\n  fputs_unlocked(pcVar4,pFVar1);\n  pFVar1 = *(FILE **)puVar2;\n  pcVar4 = (char *)dcgettext(0,"\nWith no FILE, or when FILE is -, read standard input.\n",5);\n  fputs_unlocked(pcVar4,pFVar1);\n  pFVar1 = *(FILE **)puVar2;\n  pcVar4 = (char *)dcgettext(0,\n                             "\nMandatory arguments to long options are mandatory for short options too.\n"\n                             ,5);\n  fputs_unlocked(pcVar4,pFVar1);\n  pFVar1 = *(FILE **)puVar2;\n  pcVar4 = (char *)dcgettext(0,\n                             "  -b, --bytes=LIST        select only these bytes\n  -c, --characters=LIST   select only these characters\n  -d, --delimiter=DELIM   use DELIM instead of TAB for field delimiter\n"\n                             ,5);\n  fputs_unlocked(pcVar4,pFVar1);\n  pFVar1 = *(FILE **)puVar2;\n  pcVar4 = (char *)dcgettext(0,\n                             "  -f, --fields=LIST       select only these fields;  also print any line\n                            that contains no delimiter character, unless\n                            the -s option is specified\n  -n                      (ignored)\n"\n                             ,5);\n  fputs_unlocked(pcVar4,pFVar1);\n  pFVar1 = *(FILE **)puVar2;\n  pcVar4 = (char *)dcgettext(0,\n                             "      --complement        complement the set of selected bytes, characters\n                            or fields\n"\n                             ,5);\n  fputs_unlocked(pcVar4,pFVar1);\n  pFVar1 = *(FILE **)puVar2;\n  pcVar4 = (char *)dcgettext(0,\n                             "  -s, --only-delimited    do not print lines not containing delimiters\n      --output-delimiter=STRING  use STRING as the output delimiter\n                            the default is to use the input delimiter\n"\n                             ,5);\n  fputs_unlocked(pcVar4,pFVar1);\n  pFVar1 = *(FILE **)puVar2;\n  pcVar4 = (char *)dcgettext(0,"  -z, --zero-terminated    line delimiter is NUL, not newline\n",5);\n  fputs_unlocked(pcVar4,pFVar1);\n  pFVar1 = *(FILE **)puVar2;\n  pcVar4 = (char *)dcgettext(0,"      --help     display this help and exit\n",5);\n  fputs_unlocked(pcVar4,pFVar1);\n  pFVar1 = *(FILE **)puVar2;\n  pcVar4 = (char *)dcgettext(0,"      --version  output version information and exit\n",5);\n  fputs_unlocked(pcVar4,pFVar1);\n  pFVar1 = *(FILE **)puVar2;\n  pcVar4 = (char *)dcgettext(0,\n                             "\nUse one, and only one of -b, -c or -f.  Each LIST is made up of one\nrange, or many ranges separated by commas.  Selected input is written\nin the same order that it is read, and is written exactly once.\n"\n                             ,5);\n  pbVar9 = &DAT_0001801f;\n  fputs_unlocked(pcVar4,pFVar1);\n  pFVar1 = *(FILE **)puVar2;\n  pcVar4 = (char *)dcgettext(0,\n                             "Each range is one of:\n\n  N     N\'th byte, character or field, counted from 1\n  N-    from N\'th byte, character or field, to end of line\n  N-M   from N\'th to M\'th (included) byte, character or field\n  -M    from first to M\'th (included) byte, character or field\n"\n                             ,5);\n  fputs_unlocked(pcVar4,pFVar1);\n  infomap[0].program = "[";\n  infomap[6].program = (char *)0x0;\n  infomap[0].node = "test invocation";\n  infomap[1].program = "coreutils";\n  infomap[1].node = "Multi-call invocation";\n  infomap[3].program = "sha256sum";\n  infomap[2].program = "sha224sum";\n  infomap[4].program = "sha384sum";\n  infomap[2].node = "sha2 utilities";\n  infomap[3].node = "sha2 utilities";\n  infomap[4].node = "sha2 utilities";\n  infomap[5].node = "sha2 utilities";\n  infomap[5].program = "sha512sum";\n  infomap[6].node = (char *)0x0;\n  piVar5 = infomap;\n  iVar7 = extraout_ECX;\n  do {\n    piVar6 = piVar5;\n    piVar5 = piVar6 + 1;\n    pbVar10 = (byte *)piVar5->program;\n    bVar11 = false;\n    bVar12 = pbVar10 == (byte *)0x0;\n    if (bVar12) break;\n    iVar7 = 4;\n    pbVar8 = pbVar9;\n    do {\n      if (iVar7 == 0) break;\n      iVar7 = iVar7 + -1;\n      bVar11 = *pbVar8 < *pbVar10;\n      bVar12 = *pbVar8 == *pbVar10;\n      pbVar8 = pbVar8 + (uint)bVar13 * -2 + 1;\n      pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1;\n    } while (bVar12);\n  } while ((!bVar11 && !bVar12) != bVar11);\n  pbVar10 = (byte *)piVar6[1].node;\n  if (pbVar10 == (byte *)0x0) {\n    uVar3 = dcgettext(0,"\n%s online help: <%s>\n",5,iVar7);\n    __printf_chk(1,uVar3,"GNU coreutils","https://www.gnu.org/software/coreutils/");\n    pcVar4 = setlocale(5,(char *)0x0);\n    if ((pcVar4 != (char *)0x0) && (pcVar4 = (char *)strncmp(pcVar4,"en_",3), pcVar4 != (char *)0x0)\n       ) goto LAB_00012719;\n    uVar3 = dcgettext(0,"Full documentation at: <%s%s>\n",5,0);\n    pcVar4 = " invocation";\n    __printf_chk(1,uVar3,"https://www.gnu.org/software/coreutils/",&DAT_0001801f);\n  }\n  else {\n    uVar3 = dcgettext(0,"\n%s online help: <%s>\n",5,iVar7);\n    __printf_chk(1,uVar3,"GNU coreutils","https://www.gnu.org/software/coreutils/");\n    pcVar4 = setlocale(5,(char *)0x0);\n    pbVar9 = pbVar10;\n    if ((pcVar4 != (char *)0x0) && (pcVar4 = (char *)strncmp(pcVar4,"en_",3), pcVar4 != (char *)0x0)\n       ) {\nLAB_00012719:\n      uVar3 = dcgettext(0,"Report %s translation bugs to <https://translationproject.org/team/>\n",5\n                        ,pcVar4);\n      pcVar4 = (char *)__printf_chk(1,uVar3,&DAT_0001801f);\n    }\n    uVar3 = dcgettext(0,"Full documentation at: <%s%s>\n",5,pcVar4);\n    __printf_chk(1,uVar3,"https://www.gnu.org/software/coreutils/",&DAT_0001801f);\n    if (pbVar9 == &DAT_0001801f) {\n      pcVar4 = " invocation";\n    }\n    else {\n      pcVar4 = "";\n    }\n  }\n  uVar3 = dcgettext(0,"or available locally via: info \'(coreutils) %s%s\'\n",5,&DAT_0001801f);\n  __printf_chk(1,uVar3,pbVar9,pcVar4);\nLAB_000123b3:\n                    /* WARNING: Subroutine does not return */\n  exit(status);\n}" { (declaration "FILE *pFVar1;" type_identifier (pointer_declarator "*pFVar1" * identifier) ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "char *pcVar4;" primitive_type (pointer_declarator "*pcVar4" * identifier) ;) (declaration "infomap *piVar5;" type_identifier (pointer_declarator "*piVar5" * identifier) ;) (declaration "int extraout_ECX;" primitive_type identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "byte *pbVar8;" type_identifier (pointer_declarator "*pbVar8" * identifier) ;) (declaration "byte *pbVar9;" type_identifier (pointer_declarator "*pbVar9" * identifier) ;) (declaration "byte *pbVar10;" type_identifier (pointer_declarator "*pbVar10" * identifier) ;) (declaration "bool bVar11;" primitive_type identifier ;) (declaration "bool bVar12;" primitive_type identifier ;) (declaration "byte bVar13;" type_identifier identifier ;) (declaration "infomap infomap [7];" type_identifier (array_declarator "infomap [7]" identifier [ number_literal ]) ;) (declaration "infomap *piVar6;" type_identifier (pointer_declarator "*piVar6" * identifier) ;) (expression_statement "pcVar4 = program_name;" (assignment_expression "pcVar4 = program_name" identifier = identifier) ;) (expression_statement "bVar13 = 0;" (assignment_expression "bVar13 = 0" identifier = number_literal) ;) (if_statement "if (status != 0) {\n    uVar3 = dcgettext(0,"Try \'%s --help\' for more information.\n",5);\n    __fprintf_chk(*(undefined4 *)PTR_stderr_0001cfc0,1,uVar3,pcVar4);\n    goto LAB_000123b3;\n  }" if (parenthesized_expression "(status != 0)" ( (binary_expression "status != 0" identifier != number_literal) )) (compound_statement "{\n    uVar3 = dcgettext(0,"Try \'%s --help\' for more information.\n",5);\n    __fprintf_chk(*(undefined4 *)PTR_stderr_0001cfc0,1,uVar3,pcVar4);\n    goto LAB_000123b3;\n  }" { (expression_statement "uVar3 = dcgettext(0,"Try \'%s --help\' for more information.\n",5);" (assignment_expression "uVar3 = dcgettext(0,"Try \'%s --help\' for more information.\n",5)" identifier = (call_expression "dcgettext(0,"Try \'%s --help\' for more information.\n",5)" identifier (argument_list "(0,"Try \'%s --help\' for more information.\n",5)" ( number_literal , (string_literal ""Try \'%s --help\' for more information.\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence ") , number_literal )))) ;) (expression_statement "__fprintf_chk(*(undefined4 *)PTR_stderr_0001cfc0,1,uVar3,pcVar4);" (call_expression "__fprintf_chk(*(undefined4 *)PTR_stderr_0001cfc0,1,uVar3,pcVar4)" identifier (argument_list "(*(undefined4 *)PTR_stderr_0001cfc0,1,uVar3,pcVar4)" ( (pointer_expression "*(undefined4 *)PTR_stderr_0001cfc0" * (cast_expression "(undefined4 *)PTR_stderr_0001cfc0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , number_literal , identifier , identifier ))) ;) (goto_statement "goto LAB_000123b3;" goto statement_identifier ;) })) (expression_statement "uVar3 = dcgettext(0,"Usage: %s OPTION... [FILE]...\n",5);" (assignment_expression "uVar3 = dcgettext(0,"Usage: %s OPTION... [FILE]...\n",5)" identifier = (call_expression "dcgettext(0,"Usage: %s OPTION... [FILE]...\n",5)" identifier (argument_list "(0,"Usage: %s OPTION... [FILE]...\n",5)" ( number_literal , (string_literal ""Usage: %s OPTION... [FILE]...\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "__printf_chk(1,uVar3,pcVar4);" (call_expression "__printf_chk(1,uVar3,pcVar4)" identifier (argument_list "(1,uVar3,pcVar4)" ( number_literal , identifier , identifier ))) ;) (expression_statement "puVar2 = PTR_stdout_0001cfd4;" (assignment_expression "puVar2 = PTR_stdout_0001cfd4" identifier = identifier) ;) (expression_statement "pFVar1 = *(FILE **)PTR_stdout_0001cfd4;" (assignment_expression "pFVar1 = *(FILE **)PTR_stdout_0001cfd4" identifier = (pointer_expression "*(FILE **)PTR_stdout_0001cfd4" * (cast_expression "(FILE **)PTR_stdout_0001cfd4" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pcVar4 = (char *)dcgettext(0,"Print selected parts of lines from each FILE to standard output.\n",\n                             5);" (assignment_expression "pcVar4 = (char *)dcgettext(0,"Print selected parts of lines from each FILE to standard output.\n",\n                             5)" identifier = (cast_expression "(char *)dcgettext(0,"Print selected parts of lines from each FILE to standard output.\n",\n                             5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"Print selected parts of lines from each FILE to standard output.\n",\n                             5)" identifier (argument_list "(0,"Print selected parts of lines from each FILE to standard output.\n",\n                             5)" ( number_literal , (string_literal ""Print selected parts of lines from each FILE to standard output.\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "fputs_unlocked(pcVar4,pFVar1);" (call_expression "fputs_unlocked(pcVar4,pFVar1)" identifier (argument_list "(pcVar4,pFVar1)" ( identifier , identifier ))) ;) (expression_statement "pFVar1 = *(FILE **)puVar2;" (assignment_expression "pFVar1 = *(FILE **)puVar2" identifier = (pointer_expression "*(FILE **)puVar2" * (cast_expression "(FILE **)puVar2" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pcVar4 = (char *)dcgettext(0,"\nWith no FILE, or when FILE is -, read standard input.\n",5);" (assignment_expression "pcVar4 = (char *)dcgettext(0,"\nWith no FILE, or when FILE is -, read standard input.\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"\nWith no FILE, or when FILE is -, read standard input.\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"\nWith no FILE, or when FILE is -, read standard input.\n",5)" identifier (argument_list "(0,"\nWith no FILE, or when FILE is -, read standard input.\n",5)" ( number_literal , (string_literal ""\nWith no FILE, or when FILE is -, read standard input.\n"" " escape_sequence string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "fputs_unlocked(pcVar4,pFVar1);" (call_expression "fputs_unlocked(pcVar4,pFVar1)" identifier (argument_list "(pcVar4,pFVar1)" ( identifier , identifier ))) ;) (expression_statement "pFVar1 = *(FILE **)puVar2;" (assignment_expression "pFVar1 = *(FILE **)puVar2" identifier = (pointer_expression "*(FILE **)puVar2" * (cast_expression "(FILE **)puVar2" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pcVar4 = (char *)dcgettext(0,\n                             "\nMandatory arguments to long options are mandatory for short options too.\n"\n                             ,5);" (assignment_expression "pcVar4 = (char *)dcgettext(0,\n                             "\nMandatory arguments to long options are mandatory for short options too.\n"\n                             ,5)" identifier = (cast_expression "(char *)dcgettext(0,\n                             "\nMandatory arguments to long options are mandatory for short options too.\n"\n                             ,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,\n                             "\nMandatory arguments to long options are mandatory for short options too.\n"\n                             ,5)" identifier (argument_list "(0,\n                             "\nMandatory arguments to long options are mandatory for short options too.\n"\n                             ,5)" ( number_literal , (string_literal ""\nMandatory arguments to long options are mandatory for short options too.\n"" " escape_sequence string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "fputs_unlocked(pcVar4,pFVar1);" (call_expression "fputs_unlocked(pcVar4,pFVar1)" identifier (argument_list "(pcVar4,pFVar1)" ( identifier , identifier ))) ;) (expression_statement "pFVar1 = *(FILE **)puVar2;" (assignment_expression "pFVar1 = *(FILE **)puVar2" identifier = (pointer_expression "*(FILE **)puVar2" * (cast_expression "(FILE **)puVar2" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pcVar4 = (char *)dcgettext(0,\n                             "  -b, --bytes=LIST        select only these bytes\n  -c, --characters=LIST   select only these characters\n  -d, --delimiter=DELIM   use DELIM instead of TAB for field delimiter\n"\n                             ,5);" (assignment_expression "pcVar4 = (char *)dcgettext(0,\n                             "  -b, --bytes=LIST        select only these bytes\n  -c, --characters=LIST   select only these characters\n  -d, --delimiter=DELIM   use DELIM instead of TAB for field delimiter\n"\n                             ,5)" identifier = (cast_expression "(char *)dcgettext(0,\n                             "  -b, --bytes=LIST        select only these bytes\n  -c, --characters=LIST   select only these characters\n  -d, --delimiter=DELIM   use DELIM instead of TAB for field delimiter\n"\n                             ,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,\n                             "  -b, --bytes=LIST        select only these bytes\n  -c, --characters=LIST   select only these characters\n  -d, --delimiter=DELIM   use DELIM instead of TAB for field delimiter\n"\n                             ,5)" identifier (argument_list "(0,\n                             "  -b, --bytes=LIST        select only these bytes\n  -c, --characters=LIST   select only these characters\n  -d, --delimiter=DELIM   use DELIM instead of TAB for field delimiter\n"\n                             ,5)" ( number_literal , (string_literal ""  -b, --bytes=LIST        select only these bytes\n  -c, --characters=LIST   select only these characters\n  -d, --delimiter=DELIM   use DELIM instead of TAB for field delimiter\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "fputs_unlocked(pcVar4,pFVar1);" (call_expression "fputs_unlocked(pcVar4,pFVar1)" identifier (argument_list "(pcVar4,pFVar1)" ( identifier , identifier ))) ;) (expression_statement "pFVar1 = *(FILE **)puVar2;" (assignment_expression "pFVar1 = *(FILE **)puVar2" identifier = (pointer_expression "*(FILE **)puVar2" * (cast_expression "(FILE **)puVar2" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pcVar4 = (char *)dcgettext(0,\n                             "  -f, --fields=LIST       select only these fields;  also print any line\n                            that contains no delimiter character, unless\n                            the -s option is specified\n  -n                      (ignored)\n"\n                             ,5);" (assignment_expression "pcVar4 = (char *)dcgettext(0,\n                             "  -f, --fields=LIST       select only these fields;  also print any line\n                            that contains no delimiter character, unless\n                            the -s option is specified\n  -n                      (ignored)\n"\n                             ,5)" identifier = (cast_expression "(char *)dcgettext(0,\n                             "  -f, --fields=LIST       select only these fields;  also print any line\n                            that contains no delimiter character, unless\n                            the -s option is specified\n  -n                      (ignored)\n"\n                             ,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,\n                             "  -f, --fields=LIST       select only these fields;  also print any line\n                            that contains no delimiter character, unless\n                            the -s option is specified\n  -n                      (ignored)\n"\n                             ,5)" identifier (argument_list "(0,\n                             "  -f, --fields=LIST       select only these fields;  also print any line\n                            that contains no delimiter character, unless\n                            the -s option is specified\n  -n                      (ignored)\n"\n                             ,5)" ( number_literal , (string_literal ""  -f, --fields=LIST       select only these fields;  also print any line\n                            that contains no delimiter character, unless\n                            the -s option is specified\n  -n                      (ignored)\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "fputs_unlocked(pcVar4,pFVar1);" (call_expression "fputs_unlocked(pcVar4,pFVar1)" identifier (argument_list "(pcVar4,pFVar1)" ( identifier , identifier ))) ;) (expression_statement "pFVar1 = *(FILE **)puVar2;" (assignment_expression "pFVar1 = *(FILE **)puVar2" identifier = (pointer_expression "*(FILE **)puVar2" * (cast_expression "(FILE **)puVar2" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pcVar4 = (char *)dcgettext(0,\n                             "      --complement        complement the set of selected bytes, characters\n                            or fields\n"\n                             ,5);" (assignment_expression "pcVar4 = (char *)dcgettext(0,\n                             "      --complement        complement the set of selected bytes, characters\n                            or fields\n"\n                             ,5)" identifier = (cast_expression "(char *)dcgettext(0,\n                             "      --complement        complement the set of selected bytes, characters\n                            or fields\n"\n                             ,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,\n                             "      --complement        complement the set of selected bytes, characters\n                            or fields\n"\n                             ,5)" identifier (argument_list "(0,\n                             "      --complement        complement the set of selected bytes, characters\n                            or fields\n"\n                             ,5)" ( number_literal , (string_literal ""      --complement        complement the set of selected bytes, characters\n                            or fields\n"" " string_content escape_sequence string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "fputs_unlocked(pcVar4,pFVar1);" (call_expression "fputs_unlocked(pcVar4,pFVar1)" identifier (argument_list "(pcVar4,pFVar1)" ( identifier , identifier ))) ;) (expression_statement "pFVar1 = *(FILE **)puVar2;" (assignment_expression "pFVar1 = *(FILE **)puVar2" identifier = (pointer_expression "*(FILE **)puVar2" * (cast_expression "(FILE **)puVar2" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pcVar4 = (char *)dcgettext(0,\n                             "  -s, --only-delimited    do not print lines not containing delimiters\n      --output-delimiter=STRING  use STRING as the output delimiter\n                            the default is to use the input delimiter\n"\n                             ,5);" (assignment_expression "pcVar4 = (char *)dcgettext(0,\n                             "  -s, --only-delimited    do not print lines not containing delimiters\n      --output-delimiter=STRING  use STRING as the output delimiter\n                            the default is to use the input delimiter\n"\n                             ,5)" identifier = (cast_expression "(char *)dcgettext(0,\n                             "  -s, --only-delimited    do not print lines not containing delimiters\n      --output-delimiter=STRING  use STRING as the output delimiter\n                            the default is to use the input delimiter\n"\n                             ,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,\n                             "  -s, --only-delimited    do not print lines not containing delimiters\n      --output-delimiter=STRING  use STRING as the output delimiter\n                            the default is to use the input delimiter\n"\n                             ,5)" identifier (argument_list "(0,\n                             "  -s, --only-delimited    do not print lines not containing delimiters\n      --output-delimiter=STRING  use STRING as the output delimiter\n                            the default is to use the input delimiter\n"\n                             ,5)" ( number_literal , (string_literal ""  -s, --only-delimited    do not print lines not containing delimiters\n      --output-delimiter=STRING  use STRING as the output delimiter\n                            the default is to use the input delimiter\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "fputs_unlocked(pcVar4,pFVar1);" (call_expression "fputs_unlocked(pcVar4,pFVar1)" identifier (argument_list "(pcVar4,pFVar1)" ( identifier , identifier ))) ;) (expression_statement "pFVar1 = *(FILE **)puVar2;" (assignment_expression "pFVar1 = *(FILE **)puVar2" identifier = (pointer_expression "*(FILE **)puVar2" * (cast_expression "(FILE **)puVar2" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pcVar4 = (char *)dcgettext(0,"  -z, --zero-terminated    line delimiter is NUL, not newline\n",5);" (assignment_expression "pcVar4 = (char *)dcgettext(0,"  -z, --zero-terminated    line delimiter is NUL, not newline\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"  -z, --zero-terminated    line delimiter is NUL, not newline\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"  -z, --zero-terminated    line delimiter is NUL, not newline\n",5)" identifier (argument_list "(0,"  -z, --zero-terminated    line delimiter is NUL, not newline\n",5)" ( number_literal , (string_literal ""  -z, --zero-terminated    line delimiter is NUL, not newline\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "fputs_unlocked(pcVar4,pFVar1);" (call_expression "fputs_unlocked(pcVar4,pFVar1)" identifier (argument_list "(pcVar4,pFVar1)" ( identifier , identifier ))) ;) (expression_statement "pFVar1 = *(FILE **)puVar2;" (assignment_expression "pFVar1 = *(FILE **)puVar2" identifier = (pointer_expression "*(FILE **)puVar2" * (cast_expression "(FILE **)puVar2" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pcVar4 = (char *)dcgettext(0,"      --help     display this help and exit\n",5);" (assignment_expression "pcVar4 = (char *)dcgettext(0,"      --help     display this help and exit\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"      --help     display this help and exit\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"      --help     display this help and exit\n",5)" identifier (argument_list "(0,"      --help     display this help and exit\n",5)" ( number_literal , (string_literal ""      --help     display this help and exit\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "fputs_unlocked(pcVar4,pFVar1);" (call_expression "fputs_unlocked(pcVar4,pFVar1)" identifier (argument_list "(pcVar4,pFVar1)" ( identifier , identifier ))) ;) (expression_statement "pFVar1 = *(FILE **)puVar2;" (assignment_expression "pFVar1 = *(FILE **)puVar2" identifier = (pointer_expression "*(FILE **)puVar2" * (cast_expression "(FILE **)puVar2" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pcVar4 = (char *)dcgettext(0,"      --version  output version information and exit\n",5);" (assignment_expression "pcVar4 = (char *)dcgettext(0,"      --version  output version information and exit\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"      --version  output version information and exit\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"      --version  output version information and exit\n",5)" identifier (argument_list "(0,"      --version  output version information and exit\n",5)" ( number_literal , (string_literal ""      --version  output version information and exit\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "fputs_unlocked(pcVar4,pFVar1);" (call_expression "fputs_unlocked(pcVar4,pFVar1)" identifier (argument_list "(pcVar4,pFVar1)" ( identifier , identifier ))) ;) (expression_statement "pFVar1 = *(FILE **)puVar2;" (assignment_expression "pFVar1 = *(FILE **)puVar2" identifier = (pointer_expression "*(FILE **)puVar2" * (cast_expression "(FILE **)puVar2" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pcVar4 = (char *)dcgettext(0,\n                             "\nUse one, and only one of -b, -c or -f.  Each LIST is made up of one\nrange, or many ranges separated by commas.  Selected input is written\nin the same order that it is read, and is written exactly once.\n"\n                             ,5);" (assignment_expression "pcVar4 = (char *)dcgettext(0,\n                             "\nUse one, and only one of -b, -c or -f.  Each LIST is made up of one\nrange, or many ranges separated by commas.  Selected input is written\nin the same order that it is read, and is written exactly once.\n"\n                             ,5)" identifier = (cast_expression "(char *)dcgettext(0,\n                             "\nUse one, and only one of -b, -c or -f.  Each LIST is made up of one\nrange, or many ranges separated by commas.  Selected input is written\nin the same order that it is read, and is written exactly once.\n"\n                             ,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,\n                             "\nUse one, and only one of -b, -c or -f.  Each LIST is made up of one\nrange, or many ranges separated by commas.  Selected input is written\nin the same order that it is read, and is written exactly once.\n"\n                             ,5)" identifier (argument_list "(0,\n                             "\nUse one, and only one of -b, -c or -f.  Each LIST is made up of one\nrange, or many ranges separated by commas.  Selected input is written\nin the same order that it is read, and is written exactly once.\n"\n                             ,5)" ( number_literal , (string_literal ""\nUse one, and only one of -b, -c or -f.  Each LIST is made up of one\nrange, or many ranges separated by commas.  Selected input is written\nin the same order that it is read, and is written exactly once.\n"" " escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "pbVar9 = &DAT_0001801f;" (assignment_expression "pbVar9 = &DAT_0001801f" identifier = (pointer_expression "&DAT_0001801f" & identifier)) ;) (expression_statement "fputs_unlocked(pcVar4,pFVar1);" (call_expression "fputs_unlocked(pcVar4,pFVar1)" identifier (argument_list "(pcVar4,pFVar1)" ( identifier , identifier ))) ;) (expression_statement "pFVar1 = *(FILE **)puVar2;" (assignment_expression "pFVar1 = *(FILE **)puVar2" identifier = (pointer_expression "*(FILE **)puVar2" * (cast_expression "(FILE **)puVar2" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pcVar4 = (char *)dcgettext(0,\n                             "Each range is one of:\n\n  N     N\'th byte, character or field, counted from 1\n  N-    from N\'th byte, character or field, to end of line\n  N-M   from N\'th to M\'th (included) byte, character or field\n  -M    from first to M\'th (included) byte, character or field\n"\n                             ,5);" (assignment_expression "pcVar4 = (char *)dcgettext(0,\n                             "Each range is one of:\n\n  N     N\'th byte, character or field, counted from 1\n  N-    from N\'th byte, character or field, to end of line\n  N-M   from N\'th to M\'th (included) byte, character or field\n  -M    from first to M\'th (included) byte, character or field\n"\n                             ,5)" identifier = (cast_expression "(char *)dcgettext(0,\n                             "Each range is one of:\n\n  N     N\'th byte, character or field, counted from 1\n  N-    from N\'th byte, character or field, to end of line\n  N-M   from N\'th to M\'th (included) byte, character or field\n  -M    from first to M\'th (included) byte, character or field\n"\n                             ,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,\n                             "Each range is one of:\n\n  N     N\'th byte, character or field, counted from 1\n  N-    from N\'th byte, character or field, to end of line\n  N-M   from N\'th to M\'th (included) byte, character or field\n  -M    from first to M\'th (included) byte, character or field\n"\n                             ,5)" identifier (argument_list "(0,\n                             "Each range is one of:\n\n  N     N\'th byte, character or field, counted from 1\n  N-    from N\'th byte, character or field, to end of line\n  N-M   from N\'th to M\'th (included) byte, character or field\n  -M    from first to M\'th (included) byte, character or field\n"\n                             ,5)" ( number_literal , (string_literal ""Each range is one of:\n\n  N     N\'th byte, character or field, counted from 1\n  N-    from N\'th byte, character or field, to end of line\n  N-M   from N\'th to M\'th (included) byte, character or field\n  -M    from first to M\'th (included) byte, character or field\n"" " string_content escape_sequence escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "fputs_unlocked(pcVar4,pFVar1);" (call_expression "fputs_unlocked(pcVar4,pFVar1)" identifier (argument_list "(pcVar4,pFVar1)" ( identifier , identifier ))) ;) (expression_statement "infomap[0].program = "[";" (assignment_expression "infomap[0].program = "["" (field_expression "infomap[0].program" (subscript_expression "infomap[0]" identifier [ number_literal ]) . field_identifier) = (string_literal ""["" " string_content ")) ;) (expression_statement "infomap[6].program = (char *)0x0;" (assignment_expression "infomap[6].program = (char *)0x0" (field_expression "infomap[6].program" (subscript_expression "infomap[6]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "infomap[0].node = "test invocation";" (assignment_expression "infomap[0].node = "test invocation"" (field_expression "infomap[0].node" (subscript_expression "infomap[0]" identifier [ number_literal ]) . field_identifier) = (string_literal ""test invocation"" " string_content ")) ;) (expression_statement "infomap[1].program = "coreutils";" (assignment_expression "infomap[1].program = "coreutils"" (field_expression "infomap[1].program" (subscript_expression "infomap[1]" identifier [ number_literal ]) . field_identifier) = (string_literal ""coreutils"" " string_content ")) ;) (expression_statement "infomap[1].node = "Multi-call invocation";" (assignment_expression "infomap[1].node = "Multi-call invocation"" (field_expression "infomap[1].node" (subscript_expression "infomap[1]" identifier [ number_literal ]) . field_identifier) = (string_literal ""Multi-call invocation"" " string_content ")) ;) (expression_statement "infomap[3].program = "sha256sum";" (assignment_expression "infomap[3].program = "sha256sum"" (field_expression "infomap[3].program" (subscript_expression "infomap[3]" identifier [ number_literal ]) . field_identifier) = (string_literal ""sha256sum"" " string_content ")) ;) (expression_statement "infomap[2].program = "sha224sum";" (assignment_expression "infomap[2].program = "sha224sum"" (field_expression "infomap[2].program" (subscript_expression "infomap[2]" identifier [ number_literal ]) . field_identifier) = (string_literal ""sha224sum"" " string_content ")) ;) (expression_statement "infomap[4].program = "sha384sum";" (assignment_expression "infomap[4].program = "sha384sum"" (field_expression "infomap[4].program" (subscript_expression "infomap[4]" identifier [ number_literal ]) . field_identifier) = (string_literal ""sha384sum"" " string_content ")) ;) (expression_statement "infomap[2].node = "sha2 utilities";" (assignment_expression "infomap[2].node = "sha2 utilities"" (field_expression "infomap[2].node" (subscript_expression "infomap[2]" identifier [ number_literal ]) . field_identifier) = (string_literal ""sha2 utilities"" " string_content ")) ;) (expression_statement "infomap[3].node = "sha2 utilities";" (assignment_expression "infomap[3].node = "sha2 utilities"" (field_expression "infomap[3].node" (subscript_expression "infomap[3]" identifier [ number_literal ]) . field_identifier) = (string_literal ""sha2 utilities"" " string_content ")) ;) (expression_statement "infomap[4].node = "sha2 utilities";" (assignment_expression "infomap[4].node = "sha2 utilities"" (field_expression "infomap[4].node" (subscript_expression "infomap[4]" identifier [ number_literal ]) . field_identifier) = (string_literal ""sha2 utilities"" " string_content ")) ;) (expression_statement "infomap[5].node = "sha2 utilities";" (assignment_expression "infomap[5].node = "sha2 utilities"" (field_expression "infomap[5].node" (subscript_expression "infomap[5]" identifier [ number_literal ]) . field_identifier) = (string_literal ""sha2 utilities"" " string_content ")) ;) (expression_statement "infomap[5].program = "sha512sum";" (assignment_expression "infomap[5].program = "sha512sum"" (field_expression "infomap[5].program" (subscript_expression "infomap[5]" identifier [ number_literal ]) . field_identifier) = (string_literal ""sha512sum"" " string_content ")) ;) (expression_statement "infomap[6].node = (char *)0x0;" (assignment_expression "infomap[6].node = (char *)0x0" (field_expression "infomap[6].node" (subscript_expression "infomap[6]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "piVar5 = infomap;" (assignment_expression "piVar5 = infomap" identifier = identifier) ;) (expression_statement "iVar7 = extraout_ECX;" (assignment_expression "iVar7 = extraout_ECX" identifier = identifier) ;) (do_statement "do {\n    piVar6 = piVar5;\n    piVar5 = piVar6 + 1;\n    pbVar10 = (byte *)piVar5->program;\n    bVar11 = false;\n    bVar12 = pbVar10 == (byte *)0x0;\n    if (bVar12) break;\n    iVar7 = 4;\n    pbVar8 = pbVar9;\n    do {\n      if (iVar7 == 0) break;\n      iVar7 = iVar7 + -1;\n      bVar11 = *pbVar8 < *pbVar10;\n      bVar12 = *pbVar8 == *pbVar10;\n      pbVar8 = pbVar8 + (uint)bVar13 * -2 + 1;\n      pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1;\n    } while (bVar12);\n  } while ((!bVar11 && !bVar12) != bVar11);" do (compound_statement "{\n    piVar6 = piVar5;\n    piVar5 = piVar6 + 1;\n    pbVar10 = (byte *)piVar5->program;\n    bVar11 = false;\n    bVar12 = pbVar10 == (byte *)0x0;\n    if (bVar12) break;\n    iVar7 = 4;\n    pbVar8 = pbVar9;\n    do {\n      if (iVar7 == 0) break;\n      iVar7 = iVar7 + -1;\n      bVar11 = *pbVar8 < *pbVar10;\n      bVar12 = *pbVar8 == *pbVar10;\n      pbVar8 = pbVar8 + (uint)bVar13 * -2 + 1;\n      pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1;\n    } while (bVar12);\n  }" { (expression_statement "piVar6 = piVar5;" (assignment_expression "piVar6 = piVar5" identifier = identifier) ;) (expression_statement "piVar5 = piVar6 + 1;" (assignment_expression "piVar5 = piVar6 + 1" identifier = (binary_expression "piVar6 + 1" identifier + number_literal)) ;) (expression_statement "pbVar10 = (byte *)piVar5->program;" (assignment_expression "pbVar10 = (byte *)piVar5->program" identifier = (cast_expression "(byte *)piVar5->program" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "piVar5->program" identifier -> field_identifier))) ;) (expression_statement "bVar11 = false;" (assignment_expression "bVar11 = false" identifier = false) ;) (expression_statement "bVar12 = pbVar10 == (byte *)0x0;" (assignment_expression "bVar12 = pbVar10 == (byte *)0x0" identifier = (binary_expression "pbVar10 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (if_statement "if (bVar12) break;" if (parenthesized_expression "(bVar12)" ( identifier )) (break_statement "break;" break ;)) (expression_statement "iVar7 = 4;" (assignment_expression "iVar7 = 4" identifier = number_literal) ;) (expression_statement "pbVar8 = pbVar9;" (assignment_expression "pbVar8 = pbVar9" identifier = identifier) ;) (do_statement "do {\n      if (iVar7 == 0) break;\n      iVar7 = iVar7 + -1;\n      bVar11 = *pbVar8 < *pbVar10;\n      bVar12 = *pbVar8 == *pbVar10;\n      pbVar8 = pbVar8 + (uint)bVar13 * -2 + 1;\n      pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1;\n    } while (bVar12);" do (compound_statement "{\n      if (iVar7 == 0) break;\n      iVar7 = iVar7 + -1;\n      bVar11 = *pbVar8 < *pbVar10;\n      bVar12 = *pbVar8 == *pbVar10;\n      pbVar8 = pbVar8 + (uint)bVar13 * -2 + 1;\n      pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1;\n    }" { (if_statement "if (iVar7 == 0) break;" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar7 = iVar7 + -1;" (assignment_expression "iVar7 = iVar7 + -1" identifier = (binary_expression "iVar7 + -1" identifier + number_literal)) ;) (expression_statement "bVar11 = *pbVar8 < *pbVar10;" (assignment_expression "bVar11 = *pbVar8 < *pbVar10" identifier = (binary_expression "*pbVar8 < *pbVar10" (pointer_expression "*pbVar8" * identifier) < (pointer_expression "*pbVar10" * identifier))) ;) (expression_statement "bVar12 = *pbVar8 == *pbVar10;" (assignment_expression "bVar12 = *pbVar8 == *pbVar10" identifier = (binary_expression "*pbVar8 == *pbVar10" (pointer_expression "*pbVar8" * identifier) == (pointer_expression "*pbVar10" * identifier))) ;) (expression_statement "pbVar8 = pbVar8 + (uint)bVar13 * -2 + 1;" (assignment_expression "pbVar8 = pbVar8 + (uint)bVar13 * -2 + 1" identifier = (binary_expression "pbVar8 + (uint)bVar13 * -2 + 1" (binary_expression "pbVar8 + (uint)bVar13 * -2" identifier + (binary_expression "(uint)bVar13 * -2" (cast_expression "(uint)bVar13" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1;" (assignment_expression "pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1" identifier = (binary_expression "pbVar10 + (uint)bVar13 * -2 + 1" (binary_expression "pbVar10 + (uint)bVar13 * -2" identifier + (binary_expression "(uint)bVar13 * -2" (cast_expression "(uint)bVar13" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar12)" ( identifier )) ;) }) while (parenthesized_expression "((!bVar11 && !bVar12) != bVar11)" ( (binary_expression "(!bVar11 && !bVar12) != bVar11" (parenthesized_expression "(!bVar11 && !bVar12)" ( (binary_expression "!bVar11 && !bVar12" (unary_expression "!bVar11" ! identifier) && (unary_expression "!bVar12" ! identifier)) )) != identifier) )) ;) (expression_statement "pbVar10 = (byte *)piVar6[1].node;" (assignment_expression "pbVar10 = (byte *)piVar6[1].node" identifier = (cast_expression "(byte *)piVar6[1].node" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "piVar6[1].node" (subscript_expression "piVar6[1]" identifier [ number_literal ]) . field_identifier))) ;) (if_statement "if (pbVar10 == (byte *)0x0) {\n    uVar3 = dcgettext(0,"\n%s online help: <%s>\n",5,iVar7);\n    __printf_chk(1,uVar3,"GNU coreutils","https://www.gnu.org/software/coreutils/");\n    pcVar4 = setlocale(5,(char *)0x0);\n    if ((pcVar4 != (char *)0x0) && (pcVar4 = (char *)strncmp(pcVar4,"en_",3), pcVar4 != (char *)0x0)\n       ) goto LAB_00012719;\n    uVar3 = dcgettext(0,"Full documentation at: <%s%s>\n",5,0);\n    pcVar4 = " invocation";\n    __printf_chk(1,uVar3,"https://www.gnu.org/software/coreutils/",&DAT_0001801f);\n  }\n  else {\n    uVar3 = dcgettext(0,"\n%s online help: <%s>\n",5,iVar7);\n    __printf_chk(1,uVar3,"GNU coreutils","https://www.gnu.org/software/coreutils/");\n    pcVar4 = setlocale(5,(char *)0x0);\n    pbVar9 = pbVar10;\n    if ((pcVar4 != (char *)0x0) && (pcVar4 = (char *)strncmp(pcVar4,"en_",3), pcVar4 != (char *)0x0)\n       ) {\nLAB_00012719:\n      uVar3 = dcgettext(0,"Report %s translation bugs to <https://translationproject.org/team/>\n",5\n                        ,pcVar4);\n      pcVar4 = (char *)__printf_chk(1,uVar3,&DAT_0001801f);\n    }\n    uVar3 = dcgettext(0,"Full documentation at: <%s%s>\n",5,pcVar4);\n    __printf_chk(1,uVar3,"https://www.gnu.org/software/coreutils/",&DAT_0001801f);\n    if (pbVar9 == &DAT_0001801f) {\n      pcVar4 = " invocation";\n    }\n    else {\n      pcVar4 = "";\n    }\n  }" if (parenthesized_expression "(pbVar10 == (byte *)0x0)" ( (binary_expression "pbVar10 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar3 = dcgettext(0,"\n%s online help: <%s>\n",5,iVar7);\n    __printf_chk(1,uVar3,"GNU coreutils","https://www.gnu.org/software/coreutils/");\n    pcVar4 = setlocale(5,(char *)0x0);\n    if ((pcVar4 != (char *)0x0) && (pcVar4 = (char *)strncmp(pcVar4,"en_",3), pcVar4 != (char *)0x0)\n       ) goto LAB_00012719;\n    uVar3 = dcgettext(0,"Full documentation at: <%s%s>\n",5,0);\n    pcVar4 = " invocation";\n    __printf_chk(1,uVar3,"https://www.gnu.org/software/coreutils/",&DAT_0001801f);\n  }" { (expression_statement "uVar3 = dcgettext(0,"\n%s online help: <%s>\n",5,iVar7);" (assignment_expression "uVar3 = dcgettext(0,"\n%s online help: <%s>\n",5,iVar7)" identifier = (call_expression "dcgettext(0,"\n%s online help: <%s>\n",5,iVar7)" identifier (argument_list "(0,"\n%s online help: <%s>\n",5,iVar7)" ( number_literal , (string_literal ""\n%s online help: <%s>\n"" " escape_sequence string_content escape_sequence ") , number_literal , identifier )))) ;) (expression_statement "__printf_chk(1,uVar3,"GNU coreutils","https://www.gnu.org/software/coreutils/");" (call_expression "__printf_chk(1,uVar3,"GNU coreutils","https://www.gnu.org/software/coreutils/")" identifier (argument_list "(1,uVar3,"GNU coreutils","https://www.gnu.org/software/coreutils/")" ( number_literal , identifier , (string_literal ""GNU coreutils"" " string_content ") , (string_literal ""https://www.gnu.org/software/coreutils/"" " string_content ") ))) ;) (expression_statement "pcVar4 = setlocale(5,(char *)0x0);" (assignment_expression "pcVar4 = setlocale(5,(char *)0x0)" identifier = (call_expression "setlocale(5,(char *)0x0)" identifier (argument_list "(5,(char *)0x0)" ( number_literal , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) )))) ;) (if_statement "if ((pcVar4 != (char *)0x0) && (pcVar4 = (char *)strncmp(pcVar4,"en_",3), pcVar4 != (char *)0x0)\n       ) goto LAB_00012719;" if (parenthesized_expression "((pcVar4 != (char *)0x0) && (pcVar4 = (char *)strncmp(pcVar4,"en_",3), pcVar4 != (char *)0x0)\n       )" ( (binary_expression "(pcVar4 != (char *)0x0) && (pcVar4 = (char *)strncmp(pcVar4,"en_",3), pcVar4 != (char *)0x0)" (parenthesized_expression "(pcVar4 != (char *)0x0)" ( (binary_expression "pcVar4 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(pcVar4 = (char *)strncmp(pcVar4,"en_",3), pcVar4 != (char *)0x0)" ( (comma_expression "pcVar4 = (char *)strncmp(pcVar4,"en_",3), pcVar4 != (char *)0x0" (assignment_expression "pcVar4 = (char *)strncmp(pcVar4,"en_",3)" identifier = (cast_expression "(char *)strncmp(pcVar4,"en_",3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "strncmp(pcVar4,"en_",3)" identifier (argument_list "(pcVar4,"en_",3)" ( identifier , (string_literal ""en_"" " string_content ") , number_literal ))))) , (binary_expression "pcVar4 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (goto_statement "goto LAB_00012719;" goto statement_identifier ;)) (expression_statement "uVar3 = dcgettext(0,"Full documentation at: <%s%s>\n",5,0);" (assignment_expression "uVar3 = dcgettext(0,"Full documentation at: <%s%s>\n",5,0)" identifier = (call_expression "dcgettext(0,"Full documentation at: <%s%s>\n",5,0)" identifier (argument_list "(0,"Full documentation at: <%s%s>\n",5,0)" ( number_literal , (string_literal ""Full documentation at: <%s%s>\n"" " string_content escape_sequence ") , number_literal , number_literal )))) ;) (expression_statement "pcVar4 = " invocation";" (assignment_expression "pcVar4 = " invocation"" identifier = (string_literal "" invocation"" " string_content ")) ;) (expression_statement "__printf_chk(1,uVar3,"https://www.gnu.org/software/coreutils/",&DAT_0001801f);" (call_expression "__printf_chk(1,uVar3,"https://www.gnu.org/software/coreutils/",&DAT_0001801f)" identifier (argument_list "(1,uVar3,"https://www.gnu.org/software/coreutils/",&DAT_0001801f)" ( number_literal , identifier , (string_literal ""https://www.gnu.org/software/coreutils/"" " string_content ") , (pointer_expression "&DAT_0001801f" & identifier) ))) ;) }) (else_clause "else {\n    uVar3 = dcgettext(0,"\n%s online help: <%s>\n",5,iVar7);\n    __printf_chk(1,uVar3,"GNU coreutils","https://www.gnu.org/software/coreutils/");\n    pcVar4 = setlocale(5,(char *)0x0);\n    pbVar9 = pbVar10;\n    if ((pcVar4 != (char *)0x0) && (pcVar4 = (char *)strncmp(pcVar4,"en_",3), pcVar4 != (char *)0x0)\n       ) {\nLAB_00012719:\n      uVar3 = dcgettext(0,"Report %s translation bugs to <https://translationproject.org/team/>\n",5\n                        ,pcVar4);\n      pcVar4 = (char *)__printf_chk(1,uVar3,&DAT_0001801f);\n    }\n    uVar3 = dcgettext(0,"Full documentation at: <%s%s>\n",5,pcVar4);\n    __printf_chk(1,uVar3,"https://www.gnu.org/software/coreutils/",&DAT_0001801f);\n    if (pbVar9 == &DAT_0001801f) {\n      pcVar4 = " invocation";\n    }\n    else {\n      pcVar4 = "";\n    }\n  }" else (compound_statement "{\n    uVar3 = dcgettext(0,"\n%s online help: <%s>\n",5,iVar7);\n    __printf_chk(1,uVar3,"GNU coreutils","https://www.gnu.org/software/coreutils/");\n    pcVar4 = setlocale(5,(char *)0x0);\n    pbVar9 = pbVar10;\n    if ((pcVar4 != (char *)0x0) && (pcVar4 = (char *)strncmp(pcVar4,"en_",3), pcVar4 != (char *)0x0)\n       ) {\nLAB_00012719:\n      uVar3 = dcgettext(0,"Report %s translation bugs to <https://translationproject.org/team/>\n",5\n                        ,pcVar4);\n      pcVar4 = (char *)__printf_chk(1,uVar3,&DAT_0001801f);\n    }\n    uVar3 = dcgettext(0,"Full documentation at: <%s%s>\n",5,pcVar4);\n    __printf_chk(1,uVar3,"https://www.gnu.org/software/coreutils/",&DAT_0001801f);\n    if (pbVar9 == &DAT_0001801f) {\n      pcVar4 = " invocation";\n    }\n    else {\n      pcVar4 = "";\n    }\n  }" { (expression_statement "uVar3 = dcgettext(0,"\n%s online help: <%s>\n",5,iVar7);" (assignment_expression "uVar3 = dcgettext(0,"\n%s online help: <%s>\n",5,iVar7)" identifier = (call_expression "dcgettext(0,"\n%s online help: <%s>\n",5,iVar7)" identifier (argument_list "(0,"\n%s online help: <%s>\n",5,iVar7)" ( number_literal , (string_literal ""\n%s online help: <%s>\n"" " escape_sequence string_content escape_sequence ") , number_literal , identifier )))) ;) (expression_statement "__printf_chk(1,uVar3,"GNU coreutils","https://www.gnu.org/software/coreutils/");" (call_expression "__printf_chk(1,uVar3,"GNU coreutils","https://www.gnu.org/software/coreutils/")" identifier (argument_list "(1,uVar3,"GNU coreutils","https://www.gnu.org/software/coreutils/")" ( number_literal , identifier , (string_literal ""GNU coreutils"" " string_content ") , (string_literal ""https://www.gnu.org/software/coreutils/"" " string_content ") ))) ;) (expression_statement "pcVar4 = setlocale(5,(char *)0x0);" (assignment_expression "pcVar4 = setlocale(5,(char *)0x0)" identifier = (call_expression "setlocale(5,(char *)0x0)" identifier (argument_list "(5,(char *)0x0)" ( number_literal , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) )))) ;) (expression_statement "pbVar9 = pbVar10;" (assignment_expression "pbVar9 = pbVar10" identifier = identifier) ;) (if_statement "if ((pcVar4 != (char *)0x0) && (pcVar4 = (char *)strncmp(pcVar4,"en_",3), pcVar4 != (char *)0x0)\n       ) {\nLAB_00012719:\n      uVar3 = dcgettext(0,"Report %s translation bugs to <https://translationproject.org/team/>\n",5\n                        ,pcVar4);\n      pcVar4 = (char *)__printf_chk(1,uVar3,&DAT_0001801f);\n    }" if (parenthesized_expression "((pcVar4 != (char *)0x0) && (pcVar4 = (char *)strncmp(pcVar4,"en_",3), pcVar4 != (char *)0x0)\n       )" ( (binary_expression "(pcVar4 != (char *)0x0) && (pcVar4 = (char *)strncmp(pcVar4,"en_",3), pcVar4 != (char *)0x0)" (parenthesized_expression "(pcVar4 != (char *)0x0)" ( (binary_expression "pcVar4 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(pcVar4 = (char *)strncmp(pcVar4,"en_",3), pcVar4 != (char *)0x0)" ( (comma_expression "pcVar4 = (char *)strncmp(pcVar4,"en_",3), pcVar4 != (char *)0x0" (assignment_expression "pcVar4 = (char *)strncmp(pcVar4,"en_",3)" identifier = (cast_expression "(char *)strncmp(pcVar4,"en_",3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "strncmp(pcVar4,"en_",3)" identifier (argument_list "(pcVar4,"en_",3)" ( identifier , (string_literal ""en_"" " string_content ") , number_literal ))))) , (binary_expression "pcVar4 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\nLAB_00012719:\n      uVar3 = dcgettext(0,"Report %s translation bugs to <https://translationproject.org/team/>\n",5\n                        ,pcVar4);\n      pcVar4 = (char *)__printf_chk(1,uVar3,&DAT_0001801f);\n    }" { (labeled_statement "LAB_00012719:\n      uVar3 = dcgettext(0,"Report %s translation bugs to <https://translationproject.org/team/>\n",5\n                        ,pcVar4);" statement_identifier : (expression_statement "uVar3 = dcgettext(0,"Report %s translation bugs to <https://translationproject.org/team/>\n",5\n                        ,pcVar4);" (assignment_expression "uVar3 = dcgettext(0,"Report %s translation bugs to <https://translationproject.org/team/>\n",5\n                        ,pcVar4)" identifier = (call_expression "dcgettext(0,"Report %s translation bugs to <https://translationproject.org/team/>\n",5\n                        ,pcVar4)" identifier (argument_list "(0,"Report %s translation bugs to <https://translationproject.org/team/>\n",5\n                        ,pcVar4)" ( number_literal , (string_literal ""Report %s translation bugs to <https://translationproject.org/team/>\n"" " string_content escape_sequence ") , number_literal , identifier )))) ;)) (expression_statement "pcVar4 = (char *)__printf_chk(1,uVar3,&DAT_0001801f);" (assignment_expression "pcVar4 = (char *)__printf_chk(1,uVar3,&DAT_0001801f)" identifier = (cast_expression "(char *)__printf_chk(1,uVar3,&DAT_0001801f)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "__printf_chk(1,uVar3,&DAT_0001801f)" identifier (argument_list "(1,uVar3,&DAT_0001801f)" ( number_literal , identifier , (pointer_expression "&DAT_0001801f" & identifier) ))))) ;) })) (expression_statement "uVar3 = dcgettext(0,"Full documentation at: <%s%s>\n",5,pcVar4);" (assignment_expression "uVar3 = dcgettext(0,"Full documentation at: <%s%s>\n",5,pcVar4)" identifier = (call_expression "dcgettext(0,"Full documentation at: <%s%s>\n",5,pcVar4)" identifier (argument_list "(0,"Full documentation at: <%s%s>\n",5,pcVar4)" ( number_literal , (string_literal ""Full documentation at: <%s%s>\n"" " string_content escape_sequence ") , number_literal , identifier )))) ;) (expression_statement "__printf_chk(1,uVar3,"https://www.gnu.org/software/coreutils/",&DAT_0001801f);" (call_expression "__printf_chk(1,uVar3,"https://www.gnu.org/software/coreutils/",&DAT_0001801f)" identifier (argument_list "(1,uVar3,"https://www.gnu.org/software/coreutils/",&DAT_0001801f)" ( number_literal , identifier , (string_literal ""https://www.gnu.org/software/coreutils/"" " string_content ") , (pointer_expression "&DAT_0001801f" & identifier) ))) ;) (if_statement "if (pbVar9 == &DAT_0001801f) {\n      pcVar4 = " invocation";\n    }\n    else {\n      pcVar4 = "";\n    }" if (parenthesized_expression "(pbVar9 == &DAT_0001801f)" ( (binary_expression "pbVar9 == &DAT_0001801f" identifier == (pointer_expression "&DAT_0001801f" & identifier)) )) (compound_statement "{\n      pcVar4 = " invocation";\n    }" { (expression_statement "pcVar4 = " invocation";" (assignment_expression "pcVar4 = " invocation"" identifier = (string_literal "" invocation"" " string_content ")) ;) }) (else_clause "else {\n      pcVar4 = "";\n    }" else (compound_statement "{\n      pcVar4 = "";\n    }" { (expression_statement "pcVar4 = "";" (assignment_expression "pcVar4 = """ identifier = (string_literal """" " ")) ;) }))) }))) (expression_statement "uVar3 = dcgettext(0,"or available locally via: info \'(coreutils) %s%s\'\n",5,&DAT_0001801f);" (assignment_expression "uVar3 = dcgettext(0,"or available locally via: info \'(coreutils) %s%s\'\n",5,&DAT_0001801f)" identifier = (call_expression "dcgettext(0,"or available locally via: info \'(coreutils) %s%s\'\n",5,&DAT_0001801f)" identifier (argument_list "(0,"or available locally via: info \'(coreutils) %s%s\'\n",5,&DAT_0001801f)" ( number_literal , (string_literal ""or available locally via: info \'(coreutils) %s%s\'\n"" " string_content escape_sequence string_content escape_sequence escape_sequence ") , number_literal , (pointer_expression "&DAT_0001801f" & identifier) )))) ;) (expression_statement "__printf_chk(1,uVar3,pbVar9,pcVar4);" (call_expression "__printf_chk(1,uVar3,pbVar9,pcVar4)" identifier (argument_list "(1,uVar3,pbVar9,pcVar4)" ( number_literal , identifier , identifier , identifier ))) ;) (labeled_statement "LAB_000123b3:\n                    /* WARNING: Subroutine does not return */\n  exit(status);" statement_identifier : comment (expression_statement "exit(status);" (call_expression "exit(status)" identifier (argument_list "(status)" ( identifier ))) ;)) })))
(translation_unit "void FUN_00012360(int param_1)\n\n{\n  FILE *pFVar1;\n  undefined *puVar2;\n  undefined4 uVar3;\n  char *pcVar4;\n  undefined **ppuVar5;\n  undefined4 uVar7;\n  int extraout_ECX;\n  int iVar8;\n  byte *pbVar9;\n  byte *pbVar10;\n  byte *pbVar11;\n  int in_GS_OFFSET;\n  bool bVar12;\n  bool bVar13;\n  byte bVar14;\n  undefined *local_58;\n  char *local_54;\n  char *local_50 [5];\n  char *local_3c;\n  char *local_38;\n  char *local_34;\n  char *local_30;\n  char *local_2c;\n  undefined4 local_28;\n  undefined4 local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  undefined **ppuVar6;\n  \n  uVar7 = DAT_0001d1b8;\n  bVar14 = 0;\n  uStack_14 = 0x12369;\n  local_20 = *(undefined4 *)(in_GS_OFFSET + 0x14);\n  if (param_1 != 0) {\n    uVar3 = dcgettext(0,"Try \'%s --help\' for more information.\n",5);\n    __fprintf_chk(*(undefined4 *)PTR_stderr_0001cfc0,1,uVar3,uVar7);\n    goto LAB_000123b3;\n  }\n  uVar3 = dcgettext(0,"Usage: %s OPTION... [FILE]...\n",5);\n  __printf_chk(1,uVar3,uVar7);\n  puVar2 = PTR_stdout_0001cfd4;\n  pFVar1 = *(FILE **)PTR_stdout_0001cfd4;\n  pcVar4 = (char *)dcgettext(0,"Print selected parts of lines from each FILE to standard output.\n",\n                             5);\n  fputs_unlocked(pcVar4,pFVar1);\n  pFVar1 = *(FILE **)puVar2;\n  pcVar4 = (char *)dcgettext(0,"\nWith no FILE, or when FILE is -, read standard input.\n",5);\n  fputs_unlocked(pcVar4,pFVar1);\n  pFVar1 = *(FILE **)puVar2;\n  pcVar4 = (char *)dcgettext(0,\n                             "\nMandatory arguments to long options are mandatory for short options too.\n"\n                             ,5);\n  fputs_unlocked(pcVar4,pFVar1);\n  pFVar1 = *(FILE **)puVar2;\n  pcVar4 = (char *)dcgettext(0,\n                             "  -b, --bytes=LIST        select only these bytes\n  -c, --characters=LIST   select only these characters\n  -d, --delimiter=DELIM   use DELIM instead of TAB for field delimiter\n"\n                             ,5);\n  fputs_unlocked(pcVar4,pFVar1);\n  pFVar1 = *(FILE **)puVar2;\n  pcVar4 = (char *)dcgettext(0,\n                             "  -f, --fields=LIST       select only these fields;  also print any line\n                            that contains no delimiter character, unless\n                            the -s option is specified\n  -n                      (ignored)\n"\n                             ,5);\n  fputs_unlocked(pcVar4,pFVar1);\n  pFVar1 = *(FILE **)puVar2;\n  pcVar4 = (char *)dcgettext(0,\n                             "      --complement        complement the set of selected bytes, characters\n                            or fields\n"\n                             ,5);\n  fputs_unlocked(pcVar4,pFVar1);\n  pFVar1 = *(FILE **)puVar2;\n  pcVar4 = (char *)dcgettext(0,\n                             "  -s, --only-delimited    do not print lines not containing delimiters\n      --output-delimiter=STRING  use STRING as the output delimiter\n                            the default is to use the input delimiter\n"\n                             ,5);\n  fputs_unlocked(pcVar4,pFVar1);\n  pFVar1 = *(FILE **)puVar2;\n  pcVar4 = (char *)dcgettext(0,"  -z, --zero-terminated    line delimiter is NUL, not newline\n",5);\n  fputs_unlocked(pcVar4,pFVar1);\n  pFVar1 = *(FILE **)puVar2;\n  pcVar4 = (char *)dcgettext(0,"      --help     display this help and exit\n",5);\n  fputs_unlocked(pcVar4,pFVar1);\n  pFVar1 = *(FILE **)puVar2;\n  pcVar4 = (char *)dcgettext(0,"      --version  output version information and exit\n",5);\n  fputs_unlocked(pcVar4,pFVar1);\n  pFVar1 = *(FILE **)puVar2;\n  pcVar4 = (char *)dcgettext(0,\n                             "\nUse one, and only one of -b, -c or -f.  Each LIST is made up of one\nrange, or many ranges separated by commas.  Selected input is written\nin the same order that it is read, and is written exactly once.\n"\n                             ,5);\n  pbVar10 = &DAT_0001801f;\n  fputs_unlocked(pcVar4,pFVar1);\n  pFVar1 = *(FILE **)puVar2;\n  pcVar4 = (char *)dcgettext(0,\n                             "Each range is one of:\n\n  N     N\'th byte, character or field, counted from 1\n  N-    from N\'th byte, character or field, to end of line\n  N-M   from N\'th to M\'th (included) byte, character or field\n  -M    from first to M\'th (included) byte, character or field\n"\n                             ,5);\n  fputs_unlocked(pcVar4,pFVar1);\n  local_58 = &DAT_00018023;\n  local_28 = 0;\n  local_54 = "test invocation";\n  local_50[0] = "coreutils";\n  local_50[1] = "Multi-call invocation";\n  local_50[4] = "sha256sum";\n  local_50[2] = "sha224sum";\n  local_38 = "sha384sum";\n  local_50[3] = "sha2 utilities";\n  local_3c = "sha2 utilities";\n  local_34 = "sha2 utilities";\n  local_2c = "sha2 utilities";\n  local_30 = "sha512sum";\n  local_24 = 0;\n  ppuVar5 = &local_58;\n  iVar8 = extraout_ECX;\n  do {\n    ppuVar6 = ppuVar5;\n    ppuVar5 = ppuVar6 + 2;\n    pbVar11 = *ppuVar5;\n    bVar12 = false;\n    bVar13 = pbVar11 == (byte *)0x0;\n    if (bVar13) break;\n    iVar8 = 4;\n    pbVar9 = pbVar10;\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar12 = *pbVar9 < *pbVar11;\n      bVar13 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar14 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n    } while (bVar13);\n  } while ((!bVar12 && !bVar13) != bVar12);\n  pbVar11 = ppuVar6[3];\n  if (pbVar11 == (byte *)0x0) {\n    uVar7 = dcgettext(0,"\n%s online help: <%s>\n",5,iVar8);\n    __printf_chk(1,uVar7,"GNU coreutils","https:\n    pcVar4 = setlocale(5,(char *)0x0);\n    if ((pcVar4 != (char *)0x0) && (pcVar4 = (char *)strncmp(pcVar4,"en_",3), pcVar4 != (char *)0x0)\n       ) goto LAB_00012719;\n    uVar7 = dcgettext(0,"Full documentation at: <%s%s>\n",5,0);\n    pcVar4 = " invocation";\n    __printf_chk(1,uVar7,"https:\n  }\n  else {\n    uVar7 = dcgettext(0,"\n%s online help: <%s>\n",5,iVar8);\n    __printf_chk(1,uVar7,"GNU coreutils","https:\n    pcVar4 = setlocale(5,(char *)0x0);\n    pbVar10 = pbVar11;\n    if ((pcVar4 != (char *)0x0) && (pcVar4 = (char *)strncmp(pcVar4,"en_",3), pcVar4 != (char *)0x0)\n       ) {\nLAB_00012719:\n      uVar7 = dcgettext(0,"Report %s translation bugs to <https:\n                        ,pcVar4);\n      pcVar4 = (char *)__printf_chk(1,uVar7,&DAT_0001801f);\n    }\n    uVar7 = dcgettext(0,"Full documentation at: <%s%s>\n",5,pcVar4);\n    __printf_chk(1,uVar7,"https:\n    if (pbVar10 == &DAT_0001801f) {\n      pcVar4 = " invocation";\n    }\n    else {\n      pcVar4 = "";\n    }\n  }\n  uVar7 = dcgettext(0,"or available locally via: info \'(coreutils) %s%s\'\n",5,&DAT_0001801f);\n  __printf_chk(1,uVar7,pbVar10,pcVar4);\nLAB_000123b3:\n                    \n  exit(param_1);\n}\n\n" (ERROR "void FUN_00012360(int param_1)\n\n{\n  FILE *pFVar1;\n  undefined *puVar2;\n  undefined4 uVar3;\n  char *pcVar4;\n  undefined **ppuVar5;\n  undefined4 uVar7;\n  int extraout_ECX;\n  int iVar8;\n  byte *pbVar9;\n  byte *pbVar10;\n  byte *pbVar11;\n  int in_GS_OFFSET;\n  bool bVar12;\n  bool bVar13;\n  byte bVar14;\n  undefined *local_58;\n  char *local_54;\n  char *local_50 [5];\n  char *local_3c;\n  char *local_38;\n  char *local_34;\n  char *local_30;\n  char *local_2c;\n  undefined4 local_28;\n  undefined4 local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  undefined **ppuVar6;\n  \n  uVar7 = DAT_0001d1b8;\n  bVar14 = 0;\n  uStack_14 = 0x12369;\n  local_20 = *(undefined4 *)(in_GS_OFFSET + 0x14);\n  if (param_1 != 0) {\n    uVar3 = dcgettext(0,"Try \'%s --help\' for more information.\n",5);\n    __fprintf_chk(*(undefined4 *)PTR_stderr_0001cfc0,1,uVar3,uVar7);\n    goto LAB_000123b3;\n  }\n  uVar3 = dcgettext(0,"Usage: %s OPTION... [FILE]...\n",5);\n  __printf_chk(1,uVar3,uVar7);\n  puVar2 = PTR_stdout_0001cfd4;\n  pFVar1 = *(FILE **)PTR_stdout_0001cfd4;\n  pcVar4 = (char *)dcgettext(0,"Print selected parts of lines from each FILE to standard output.\n",\n                             5);\n  fputs_unlocked(pcVar4,pFVar1);\n  pFVar1 = *(FILE **)puVar2;\n  pcVar4 = (char *)dcgettext(0,"\nWith no FILE, or when FILE is -, read standard input.\n",5);\n  fputs_unlocked(pcVar4,pFVar1);\n  pFVar1 = *(FILE **)puVar2;\n  pcVar4 = (char *)dcgettext(0,\n                             "\nMandatory arguments to long options are mandatory for short options too.\n"\n                             ,5);\n  fputs_unlocked(pcVar4,pFVar1);\n  pFVar1 = *(FILE **)puVar2;\n  pcVar4 = (char *)dcgettext(0,\n                             "  -b, --bytes=LIST        select only these bytes\n  -c, --characters=LIST   select only these characters\n  -d, --delimiter=DELIM   use DELIM instead of TAB for field delimiter\n"\n                             ,5);\n  fputs_unlocked(pcVar4,pFVar1);\n  pFVar1 = *(FILE **)puVar2;\n  pcVar4 = (char *)dcgettext(0,\n                             "  -f, --fields=LIST       select only these fields;  also print any line\n                            that contains no delimiter character, unless\n                            the -s option is specified\n  -n                      (ignored)\n"\n                             ,5);\n  fputs_unlocked(pcVar4,pFVar1);\n  pFVar1 = *(FILE **)puVar2;\n  pcVar4 = (char *)dcgettext(0,\n                             "      --complement        complement the set of selected bytes, characters\n                            or fields\n"\n                             ,5);\n  fputs_unlocked(pcVar4,pFVar1);\n  pFVar1 = *(FILE **)puVar2;\n  pcVar4 = (char *)dcgettext(0,\n                             "  -s, --only-delimited    do not print lines not containing delimiters\n      --output-delimiter=STRING  use STRING as the output delimiter\n                            the default is to use the input delimiter\n"\n                             ,5);\n  fputs_unlocked(pcVar4,pFVar1);\n  pFVar1 = *(FILE **)puVar2;\n  pcVar4 = (char *)dcgettext(0,"  -z, --zero-terminated    line delimiter is NUL, not newline\n",5);\n  fputs_unlocked(pcVar4,pFVar1);\n  pFVar1 = *(FILE **)puVar2;\n  pcVar4 = (char *)dcgettext(0,"      --help     display this help and exit\n",5);\n  fputs_unlocked(pcVar4,pFVar1);\n  pFVar1 = *(FILE **)puVar2;\n  pcVar4 = (char *)dcgettext(0,"      --version  output version information and exit\n",5);\n  fputs_unlocked(pcVar4,pFVar1);\n  pFVar1 = *(FILE **)puVar2;\n  pcVar4 = (char *)dcgettext(0,\n                             "\nUse one, and only one of -b, -c or -f.  Each LIST is made up of one\nrange, or many ranges separated by commas.  Selected input is written\nin the same order that it is read, and is written exactly once.\n"\n                             ,5);\n  pbVar10 = &DAT_0001801f;\n  fputs_unlocked(pcVar4,pFVar1);\n  pFVar1 = *(FILE **)puVar2;\n  pcVar4 = (char *)dcgettext(0,\n                             "Each range is one of:\n\n  N     N\'th byte, character or field, counted from 1\n  N-    from N\'th byte, character or field, to end of line\n  N-M   from N\'th to M\'th (included) byte, character or field\n  -M    from first to M\'th (included) byte, character or field\n"\n                             ,5);\n  fputs_unlocked(pcVar4,pFVar1);\n  local_58 = &DAT_00018023;\n  local_28 = 0;\n  local_54 = "test invocation";\n  local_50[0] = "coreutils";\n  local_50[1] = "Multi-call invocation";\n  local_50[4] = "sha256sum";\n  local_50[2] = "sha224sum";\n  local_38 = "sha384sum";\n  local_50[3] = "sha2 utilities";\n  local_3c = "sha2 utilities";\n  local_34 = "sha2 utilities";\n  local_2c = "sha2 utilities";\n  local_30 = "sha512sum";\n  local_24 = 0;\n  ppuVar5 = &local_58;\n  iVar8 = extraout_ECX;\n  do {\n    ppuVar6 = ppuVar5;\n    ppuVar5 = ppuVar6 + 2;\n    pbVar11 = *ppuVar5;\n    bVar12 = false;\n    bVar13 = pbVar11 == (byte *)0x0;\n    if (bVar13) break;\n    iVar8 = 4;\n    pbVar9 = pbVar10;\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar12 = *pbVar9 < *pbVar11;\n      bVar13 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar14 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n    } while (bVar13);\n  } while ((!bVar12 && !bVar13) != bVar12);\n  pbVar11 = ppuVar6[3];\n  if (pbVar11 == (byte *)0x0) {\n    uVar7 = dcgettext(0,"\n%s online help: <%s>\n",5,iVar8);\n    __printf_chk(1,uVar7,"GNU coreutils","https:\n    pcVar4 = setlocale(5,(char *)0x0);\n    if ((pcVar4 != (char *)0x0) && (pcVar4 = (char *)strncmp(pcVar4,"en_",3), pcVar4 != (char *)0x0)\n       ) goto LAB_00012719;\n    uVar7 = dcgettext(0,"Full documentation at: <%s%s>\n",5,0);\n    pcVar4 = " invocation";\n    __printf_chk(1,uVar7,"https:\n  }\n  else {\n    uVar7 = dcgettext(0,"\n%s online help: <%s>\n",5,iVar8);\n    __printf_chk(1,uVar7,"GNU coreutils","https:\n    pcVar4 = setlocale(5,(char *)0x0);\n    pbVar10 = pbVar11;\n    if ((pcVar4 != (char *)0x0) && (pcVar4 = (char *)strncmp(pcVar4,"en_",3), pcVar4 != (char *)0x0)\n       ) {\nLAB_00012719:\n      uVar7 = dcgettext(0,"Report %s translation bugs to <https:\n                        ,pcVar4);\n      pcVar4 = (char *)__printf_chk(1,uVar7,&DAT_0001801f);\n    }\n    uVar7 = dcgettext(0,"Full documentation at: <%s%s>\n",5,pcVar4);\n    __printf_chk(1,uVar7,"https:\n    if (pbVar10 == &DAT_0001801f) {\n      pcVar4 = " invocation";\n    }\n    else {\n      pcVar4 = "";\n    }\n  }\n  uVar7 = dcgettext(0,"or available locally via: info \'(coreutils) %s%s\'\n",5,&DAT_0001801f);\n  __printf_chk(1,uVar7,pbVar10,pcVar4);\nLAB_000123b3:\n                    \n  exit(param_1);\n}" primitive_type (function_declarator "FUN_00012360(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) { (declaration "FILE *pFVar1;" type_identifier (pointer_declarator "*pFVar1" * identifier) ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "char *pcVar4;" primitive_type (pointer_declarator "*pcVar4" * identifier) ;) (declaration "undefined **ppuVar5;" type_identifier (pointer_declarator "**ppuVar5" * (pointer_declarator "*ppuVar5" * identifier)) ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "int extraout_ECX;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "byte *pbVar9;" type_identifier (pointer_declarator "*pbVar9" * identifier) ;) (declaration "byte *pbVar10;" type_identifier (pointer_declarator "*pbVar10" * identifier) ;) (declaration "byte *pbVar11;" type_identifier (pointer_declarator "*pbVar11" * identifier) ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "bool bVar12;" primitive_type identifier ;) (declaration "bool bVar13;" primitive_type identifier ;) (declaration "byte bVar14;" type_identifier identifier ;) (declaration "undefined *local_58;" type_identifier (pointer_declarator "*local_58" * identifier) ;) (declaration "char *local_54;" primitive_type (pointer_declarator "*local_54" * identifier) ;) (declaration "char *local_50 [5];" primitive_type (pointer_declarator "*local_50 [5]" * (array_declarator "local_50 [5]" identifier [ number_literal ])) ;) (declaration "char *local_3c;" primitive_type (pointer_declarator "*local_3c" * identifier) ;) (declaration "char *local_38;" primitive_type (pointer_declarator "*local_38" * identifier) ;) (declaration "char *local_34;" primitive_type (pointer_declarator "*local_34" * identifier) ;) (declaration "char *local_30;" primitive_type (pointer_declarator "*local_30" * identifier) ;) (declaration "char *local_2c;" primitive_type (pointer_declarator "*local_2c" * identifier) ;) (declaration "undefined4 local_28;" type_identifier identifier ;) (declaration "undefined4 local_24;" type_identifier identifier ;) (declaration "undefined4 local_20;" type_identifier identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (declaration "undefined **ppuVar6;" type_identifier (pointer_declarator "**ppuVar6" * (pointer_declarator "*ppuVar6" * identifier)) ;) (expression_statement "uVar7 = DAT_0001d1b8;" (assignment_expression "uVar7 = DAT_0001d1b8" identifier = identifier) ;) (expression_statement "bVar14 = 0;" (assignment_expression "bVar14 = 0" identifier = number_literal) ;) (expression_statement "uStack_14 = 0x12369;" (assignment_expression "uStack_14 = 0x12369" identifier = number_literal) ;) (expression_statement "local_20 = *(undefined4 *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(undefined4 *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(undefined4 *)(in_GS_OFFSET + 0x14)" * (cast_expression "(undefined4 *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (param_1 != 0) {\n    uVar3 = dcgettext(0,"Try \'%s --help\' for more information.\n",5);\n    __fprintf_chk(*(undefined4 *)PTR_stderr_0001cfc0,1,uVar3,uVar7);\n    goto LAB_000123b3;\n  }" if (parenthesized_expression "(param_1 != 0)" ( (binary_expression "param_1 != 0" identifier != number_literal) )) (compound_statement "{\n    uVar3 = dcgettext(0,"Try \'%s --help\' for more information.\n",5);\n    __fprintf_chk(*(undefined4 *)PTR_stderr_0001cfc0,1,uVar3,uVar7);\n    goto LAB_000123b3;\n  }" { (expression_statement "uVar3 = dcgettext(0,"Try \'%s --help\' for more information.\n",5);" (assignment_expression "uVar3 = dcgettext(0,"Try \'%s --help\' for more information.\n",5)" identifier = (call_expression "dcgettext(0,"Try \'%s --help\' for more information.\n",5)" identifier (argument_list "(0,"Try \'%s --help\' for more information.\n",5)" ( number_literal , (string_literal ""Try \'%s --help\' for more information.\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence ") , number_literal )))) ;) (expression_statement "__fprintf_chk(*(undefined4 *)PTR_stderr_0001cfc0,1,uVar3,uVar7);" (call_expression "__fprintf_chk(*(undefined4 *)PTR_stderr_0001cfc0,1,uVar3,uVar7)" identifier (argument_list "(*(undefined4 *)PTR_stderr_0001cfc0,1,uVar3,uVar7)" ( (pointer_expression "*(undefined4 *)PTR_stderr_0001cfc0" * (cast_expression "(undefined4 *)PTR_stderr_0001cfc0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , number_literal , identifier , identifier ))) ;) (goto_statement "goto LAB_000123b3;" goto statement_identifier ;) })) (expression_statement "uVar3 = dcgettext(0,"Usage: %s OPTION... [FILE]...\n",5);" (assignment_expression "uVar3 = dcgettext(0,"Usage: %s OPTION... [FILE]...\n",5)" identifier = (call_expression "dcgettext(0,"Usage: %s OPTION... [FILE]...\n",5)" identifier (argument_list "(0,"Usage: %s OPTION... [FILE]...\n",5)" ( number_literal , (string_literal ""Usage: %s OPTION... [FILE]...\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "__printf_chk(1,uVar3,uVar7);" (call_expression "__printf_chk(1,uVar3,uVar7)" identifier (argument_list "(1,uVar3,uVar7)" ( number_literal , identifier , identifier ))) ;) (expression_statement "puVar2 = PTR_stdout_0001cfd4;" (assignment_expression "puVar2 = PTR_stdout_0001cfd4" identifier = identifier) ;) (expression_statement "pFVar1 = *(FILE **)PTR_stdout_0001cfd4;" (assignment_expression "pFVar1 = *(FILE **)PTR_stdout_0001cfd4" identifier = (pointer_expression "*(FILE **)PTR_stdout_0001cfd4" * (cast_expression "(FILE **)PTR_stdout_0001cfd4" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pcVar4 = (char *)dcgettext(0,"Print selected parts of lines from each FILE to standard output.\n",\n                             5);" (assignment_expression "pcVar4 = (char *)dcgettext(0,"Print selected parts of lines from each FILE to standard output.\n",\n                             5)" identifier = (cast_expression "(char *)dcgettext(0,"Print selected parts of lines from each FILE to standard output.\n",\n                             5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"Print selected parts of lines from each FILE to standard output.\n",\n                             5)" identifier (argument_list "(0,"Print selected parts of lines from each FILE to standard output.\n",\n                             5)" ( number_literal , (string_literal ""Print selected parts of lines from each FILE to standard output.\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "fputs_unlocked(pcVar4,pFVar1);" (call_expression "fputs_unlocked(pcVar4,pFVar1)" identifier (argument_list "(pcVar4,pFVar1)" ( identifier , identifier ))) ;) (expression_statement "pFVar1 = *(FILE **)puVar2;" (assignment_expression "pFVar1 = *(FILE **)puVar2" identifier = (pointer_expression "*(FILE **)puVar2" * (cast_expression "(FILE **)puVar2" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pcVar4 = (char *)dcgettext(0,"\nWith no FILE, or when FILE is -, read standard input.\n",5);" (assignment_expression "pcVar4 = (char *)dcgettext(0,"\nWith no FILE, or when FILE is -, read standard input.\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"\nWith no FILE, or when FILE is -, read standard input.\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"\nWith no FILE, or when FILE is -, read standard input.\n",5)" identifier (argument_list "(0,"\nWith no FILE, or when FILE is -, read standard input.\n",5)" ( number_literal , (string_literal ""\nWith no FILE, or when FILE is -, read standard input.\n"" " escape_sequence string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "fputs_unlocked(pcVar4,pFVar1);" (call_expression "fputs_unlocked(pcVar4,pFVar1)" identifier (argument_list "(pcVar4,pFVar1)" ( identifier , identifier ))) ;) (expression_statement "pFVar1 = *(FILE **)puVar2;" (assignment_expression "pFVar1 = *(FILE **)puVar2" identifier = (pointer_expression "*(FILE **)puVar2" * (cast_expression "(FILE **)puVar2" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pcVar4 = (char *)dcgettext(0,\n                             "\nMandatory arguments to long options are mandatory for short options too.\n"\n                             ,5);" (assignment_expression "pcVar4 = (char *)dcgettext(0,\n                             "\nMandatory arguments to long options are mandatory for short options too.\n"\n                             ,5)" identifier = (cast_expression "(char *)dcgettext(0,\n                             "\nMandatory arguments to long options are mandatory for short options too.\n"\n                             ,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,\n                             "\nMandatory arguments to long options are mandatory for short options too.\n"\n                             ,5)" identifier (argument_list "(0,\n                             "\nMandatory arguments to long options are mandatory for short options too.\n"\n                             ,5)" ( number_literal , (string_literal ""\nMandatory arguments to long options are mandatory for short options too.\n"" " escape_sequence string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "fputs_unlocked(pcVar4,pFVar1);" (call_expression "fputs_unlocked(pcVar4,pFVar1)" identifier (argument_list "(pcVar4,pFVar1)" ( identifier , identifier ))) ;) (expression_statement "pFVar1 = *(FILE **)puVar2;" (assignment_expression "pFVar1 = *(FILE **)puVar2" identifier = (pointer_expression "*(FILE **)puVar2" * (cast_expression "(FILE **)puVar2" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pcVar4 = (char *)dcgettext(0,\n                             "  -b, --bytes=LIST        select only these bytes\n  -c, --characters=LIST   select only these characters\n  -d, --delimiter=DELIM   use DELIM instead of TAB for field delimiter\n"\n                             ,5);" (assignment_expression "pcVar4 = (char *)dcgettext(0,\n                             "  -b, --bytes=LIST        select only these bytes\n  -c, --characters=LIST   select only these characters\n  -d, --delimiter=DELIM   use DELIM instead of TAB for field delimiter\n"\n                             ,5)" identifier = (cast_expression "(char *)dcgettext(0,\n                             "  -b, --bytes=LIST        select only these bytes\n  -c, --characters=LIST   select only these characters\n  -d, --delimiter=DELIM   use DELIM instead of TAB for field delimiter\n"\n                             ,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,\n                             "  -b, --bytes=LIST        select only these bytes\n  -c, --characters=LIST   select only these characters\n  -d, --delimiter=DELIM   use DELIM instead of TAB for field delimiter\n"\n                             ,5)" identifier (argument_list "(0,\n                             "  -b, --bytes=LIST        select only these bytes\n  -c, --characters=LIST   select only these characters\n  -d, --delimiter=DELIM   use DELIM instead of TAB for field delimiter\n"\n                             ,5)" ( number_literal , (string_literal ""  -b, --bytes=LIST        select only these bytes\n  -c, --characters=LIST   select only these characters\n  -d, --delimiter=DELIM   use DELIM instead of TAB for field delimiter\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "fputs_unlocked(pcVar4,pFVar1);" (call_expression "fputs_unlocked(pcVar4,pFVar1)" identifier (argument_list "(pcVar4,pFVar1)" ( identifier , identifier ))) ;) (expression_statement "pFVar1 = *(FILE **)puVar2;" (assignment_expression "pFVar1 = *(FILE **)puVar2" identifier = (pointer_expression "*(FILE **)puVar2" * (cast_expression "(FILE **)puVar2" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pcVar4 = (char *)dcgettext(0,\n                             "  -f, --fields=LIST       select only these fields;  also print any line\n                            that contains no delimiter character, unless\n                            the -s option is specified\n  -n                      (ignored)\n"\n                             ,5);" (assignment_expression "pcVar4 = (char *)dcgettext(0,\n                             "  -f, --fields=LIST       select only these fields;  also print any line\n                            that contains no delimiter character, unless\n                            the -s option is specified\n  -n                      (ignored)\n"\n                             ,5)" identifier = (cast_expression "(char *)dcgettext(0,\n                             "  -f, --fields=LIST       select only these fields;  also print any line\n                            that contains no delimiter character, unless\n                            the -s option is specified\n  -n                      (ignored)\n"\n                             ,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,\n                             "  -f, --fields=LIST       select only these fields;  also print any line\n                            that contains no delimiter character, unless\n                            the -s option is specified\n  -n                      (ignored)\n"\n                             ,5)" identifier (argument_list "(0,\n                             "  -f, --fields=LIST       select only these fields;  also print any line\n                            that contains no delimiter character, unless\n                            the -s option is specified\n  -n                      (ignored)\n"\n                             ,5)" ( number_literal , (string_literal ""  -f, --fields=LIST       select only these fields;  also print any line\n                            that contains no delimiter character, unless\n                            the -s option is specified\n  -n                      (ignored)\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "fputs_unlocked(pcVar4,pFVar1);" (call_expression "fputs_unlocked(pcVar4,pFVar1)" identifier (argument_list "(pcVar4,pFVar1)" ( identifier , identifier ))) ;) (expression_statement "pFVar1 = *(FILE **)puVar2;" (assignment_expression "pFVar1 = *(FILE **)puVar2" identifier = (pointer_expression "*(FILE **)puVar2" * (cast_expression "(FILE **)puVar2" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pcVar4 = (char *)dcgettext(0,\n                             "      --complement        complement the set of selected bytes, characters\n                            or fields\n"\n                             ,5);" (assignment_expression "pcVar4 = (char *)dcgettext(0,\n                             "      --complement        complement the set of selected bytes, characters\n                            or fields\n"\n                             ,5)" identifier = (cast_expression "(char *)dcgettext(0,\n                             "      --complement        complement the set of selected bytes, characters\n                            or fields\n"\n                             ,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,\n                             "      --complement        complement the set of selected bytes, characters\n                            or fields\n"\n                             ,5)" identifier (argument_list "(0,\n                             "      --complement        complement the set of selected bytes, characters\n                            or fields\n"\n                             ,5)" ( number_literal , (string_literal ""      --complement        complement the set of selected bytes, characters\n                            or fields\n"" " string_content escape_sequence string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "fputs_unlocked(pcVar4,pFVar1);" (call_expression "fputs_unlocked(pcVar4,pFVar1)" identifier (argument_list "(pcVar4,pFVar1)" ( identifier , identifier ))) ;) (expression_statement "pFVar1 = *(FILE **)puVar2;" (assignment_expression "pFVar1 = *(FILE **)puVar2" identifier = (pointer_expression "*(FILE **)puVar2" * (cast_expression "(FILE **)puVar2" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pcVar4 = (char *)dcgettext(0,\n                             "  -s, --only-delimited    do not print lines not containing delimiters\n      --output-delimiter=STRING  use STRING as the output delimiter\n                            the default is to use the input delimiter\n"\n                             ,5);" (assignment_expression "pcVar4 = (char *)dcgettext(0,\n                             "  -s, --only-delimited    do not print lines not containing delimiters\n      --output-delimiter=STRING  use STRING as the output delimiter\n                            the default is to use the input delimiter\n"\n                             ,5)" identifier = (cast_expression "(char *)dcgettext(0,\n                             "  -s, --only-delimited    do not print lines not containing delimiters\n      --output-delimiter=STRING  use STRING as the output delimiter\n                            the default is to use the input delimiter\n"\n                             ,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,\n                             "  -s, --only-delimited    do not print lines not containing delimiters\n      --output-delimiter=STRING  use STRING as the output delimiter\n                            the default is to use the input delimiter\n"\n                             ,5)" identifier (argument_list "(0,\n                             "  -s, --only-delimited    do not print lines not containing delimiters\n      --output-delimiter=STRING  use STRING as the output delimiter\n                            the default is to use the input delimiter\n"\n                             ,5)" ( number_literal , (string_literal ""  -s, --only-delimited    do not print lines not containing delimiters\n      --output-delimiter=STRING  use STRING as the output delimiter\n                            the default is to use the input delimiter\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "fputs_unlocked(pcVar4,pFVar1);" (call_expression "fputs_unlocked(pcVar4,pFVar1)" identifier (argument_list "(pcVar4,pFVar1)" ( identifier , identifier ))) ;) (expression_statement "pFVar1 = *(FILE **)puVar2;" (assignment_expression "pFVar1 = *(FILE **)puVar2" identifier = (pointer_expression "*(FILE **)puVar2" * (cast_expression "(FILE **)puVar2" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pcVar4 = (char *)dcgettext(0,"  -z, --zero-terminated    line delimiter is NUL, not newline\n",5);" (assignment_expression "pcVar4 = (char *)dcgettext(0,"  -z, --zero-terminated    line delimiter is NUL, not newline\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"  -z, --zero-terminated    line delimiter is NUL, not newline\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"  -z, --zero-terminated    line delimiter is NUL, not newline\n",5)" identifier (argument_list "(0,"  -z, --zero-terminated    line delimiter is NUL, not newline\n",5)" ( number_literal , (string_literal ""  -z, --zero-terminated    line delimiter is NUL, not newline\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "fputs_unlocked(pcVar4,pFVar1);" (call_expression "fputs_unlocked(pcVar4,pFVar1)" identifier (argument_list "(pcVar4,pFVar1)" ( identifier , identifier ))) ;) (expression_statement "pFVar1 = *(FILE **)puVar2;" (assignment_expression "pFVar1 = *(FILE **)puVar2" identifier = (pointer_expression "*(FILE **)puVar2" * (cast_expression "(FILE **)puVar2" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pcVar4 = (char *)dcgettext(0,"      --help     display this help and exit\n",5);" (assignment_expression "pcVar4 = (char *)dcgettext(0,"      --help     display this help and exit\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"      --help     display this help and exit\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"      --help     display this help and exit\n",5)" identifier (argument_list "(0,"      --help     display this help and exit\n",5)" ( number_literal , (string_literal ""      --help     display this help and exit\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "fputs_unlocked(pcVar4,pFVar1);" (call_expression "fputs_unlocked(pcVar4,pFVar1)" identifier (argument_list "(pcVar4,pFVar1)" ( identifier , identifier ))) ;) (expression_statement "pFVar1 = *(FILE **)puVar2;" (assignment_expression "pFVar1 = *(FILE **)puVar2" identifier = (pointer_expression "*(FILE **)puVar2" * (cast_expression "(FILE **)puVar2" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pcVar4 = (char *)dcgettext(0,"      --version  output version information and exit\n",5);" (assignment_expression "pcVar4 = (char *)dcgettext(0,"      --version  output version information and exit\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"      --version  output version information and exit\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"      --version  output version information and exit\n",5)" identifier (argument_list "(0,"      --version  output version information and exit\n",5)" ( number_literal , (string_literal ""      --version  output version information and exit\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "fputs_unlocked(pcVar4,pFVar1);" (call_expression "fputs_unlocked(pcVar4,pFVar1)" identifier (argument_list "(pcVar4,pFVar1)" ( identifier , identifier ))) ;) (expression_statement "pFVar1 = *(FILE **)puVar2;" (assignment_expression "pFVar1 = *(FILE **)puVar2" identifier = (pointer_expression "*(FILE **)puVar2" * (cast_expression "(FILE **)puVar2" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pcVar4 = (char *)dcgettext(0,\n                             "\nUse one, and only one of -b, -c or -f.  Each LIST is made up of one\nrange, or many ranges separated by commas.  Selected input is written\nin the same order that it is read, and is written exactly once.\n"\n                             ,5);" (assignment_expression "pcVar4 = (char *)dcgettext(0,\n                             "\nUse one, and only one of -b, -c or -f.  Each LIST is made up of one\nrange, or many ranges separated by commas.  Selected input is written\nin the same order that it is read, and is written exactly once.\n"\n                             ,5)" identifier = (cast_expression "(char *)dcgettext(0,\n                             "\nUse one, and only one of -b, -c or -f.  Each LIST is made up of one\nrange, or many ranges separated by commas.  Selected input is written\nin the same order that it is read, and is written exactly once.\n"\n                             ,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,\n                             "\nUse one, and only one of -b, -c or -f.  Each LIST is made up of one\nrange, or many ranges separated by commas.  Selected input is written\nin the same order that it is read, and is written exactly once.\n"\n                             ,5)" identifier (argument_list "(0,\n                             "\nUse one, and only one of -b, -c or -f.  Each LIST is made up of one\nrange, or many ranges separated by commas.  Selected input is written\nin the same order that it is read, and is written exactly once.\n"\n                             ,5)" ( number_literal , (string_literal ""\nUse one, and only one of -b, -c or -f.  Each LIST is made up of one\nrange, or many ranges separated by commas.  Selected input is written\nin the same order that it is read, and is written exactly once.\n"" " escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "pbVar10 = &DAT_0001801f;" (assignment_expression "pbVar10 = &DAT_0001801f" identifier = (pointer_expression "&DAT_0001801f" & identifier)) ;) (expression_statement "fputs_unlocked(pcVar4,pFVar1);" (call_expression "fputs_unlocked(pcVar4,pFVar1)" identifier (argument_list "(pcVar4,pFVar1)" ( identifier , identifier ))) ;) (expression_statement "pFVar1 = *(FILE **)puVar2;" (assignment_expression "pFVar1 = *(FILE **)puVar2" identifier = (pointer_expression "*(FILE **)puVar2" * (cast_expression "(FILE **)puVar2" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pcVar4 = (char *)dcgettext(0,\n                             "Each range is one of:\n\n  N     N\'th byte, character or field, counted from 1\n  N-    from N\'th byte, character or field, to end of line\n  N-M   from N\'th to M\'th (included) byte, character or field\n  -M    from first to M\'th (included) byte, character or field\n"\n                             ,5);" (assignment_expression "pcVar4 = (char *)dcgettext(0,\n                             "Each range is one of:\n\n  N     N\'th byte, character or field, counted from 1\n  N-    from N\'th byte, character or field, to end of line\n  N-M   from N\'th to M\'th (included) byte, character or field\n  -M    from first to M\'th (included) byte, character or field\n"\n                             ,5)" identifier = (cast_expression "(char *)dcgettext(0,\n                             "Each range is one of:\n\n  N     N\'th byte, character or field, counted from 1\n  N-    from N\'th byte, character or field, to end of line\n  N-M   from N\'th to M\'th (included) byte, character or field\n  -M    from first to M\'th (included) byte, character or field\n"\n                             ,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,\n                             "Each range is one of:\n\n  N     N\'th byte, character or field, counted from 1\n  N-    from N\'th byte, character or field, to end of line\n  N-M   from N\'th to M\'th (included) byte, character or field\n  -M    from first to M\'th (included) byte, character or field\n"\n                             ,5)" identifier (argument_list "(0,\n                             "Each range is one of:\n\n  N     N\'th byte, character or field, counted from 1\n  N-    from N\'th byte, character or field, to end of line\n  N-M   from N\'th to M\'th (included) byte, character or field\n  -M    from first to M\'th (included) byte, character or field\n"\n                             ,5)" ( number_literal , (string_literal ""Each range is one of:\n\n  N     N\'th byte, character or field, counted from 1\n  N-    from N\'th byte, character or field, to end of line\n  N-M   from N\'th to M\'th (included) byte, character or field\n  -M    from first to M\'th (included) byte, character or field\n"" " string_content escape_sequence escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "fputs_unlocked(pcVar4,pFVar1);" (call_expression "fputs_unlocked(pcVar4,pFVar1)" identifier (argument_list "(pcVar4,pFVar1)" ( identifier , identifier ))) ;) (expression_statement "local_58 = &DAT_00018023;" (assignment_expression "local_58 = &DAT_00018023" identifier = (pointer_expression "&DAT_00018023" & identifier)) ;) (expression_statement "local_28 = 0;" (assignment_expression "local_28 = 0" identifier = number_literal) ;) (expression_statement "local_54 = "test invocation";" (assignment_expression "local_54 = "test invocation"" identifier = (string_literal ""test invocation"" " string_content ")) ;) (expression_statement "local_50[0] = "coreutils";" (assignment_expression "local_50[0] = "coreutils"" (subscript_expression "local_50[0]" identifier [ number_literal ]) = (string_literal ""coreutils"" " string_content ")) ;) (expression_statement "local_50[1] = "Multi-call invocation";" (assignment_expression "local_50[1] = "Multi-call invocation"" (subscript_expression "local_50[1]" identifier [ number_literal ]) = (string_literal ""Multi-call invocation"" " string_content ")) ;) (expression_statement "local_50[4] = "sha256sum";" (assignment_expression "local_50[4] = "sha256sum"" (subscript_expression "local_50[4]" identifier [ number_literal ]) = (string_literal ""sha256sum"" " string_content ")) ;) (expression_statement "local_50[2] = "sha224sum";" (assignment_expression "local_50[2] = "sha224sum"" (subscript_expression "local_50[2]" identifier [ number_literal ]) = (string_literal ""sha224sum"" " string_content ")) ;) (expression_statement "local_38 = "sha384sum";" (assignment_expression "local_38 = "sha384sum"" identifier = (string_literal ""sha384sum"" " string_content ")) ;) (expression_statement "local_50[3] = "sha2 utilities";" (assignment_expression "local_50[3] = "sha2 utilities"" (subscript_expression "local_50[3]" identifier [ number_literal ]) = (string_literal ""sha2 utilities"" " string_content ")) ;) (expression_statement "local_3c = "sha2 utilities";" (assignment_expression "local_3c = "sha2 utilities"" identifier = (string_literal ""sha2 utilities"" " string_content ")) ;) (expression_statement "local_34 = "sha2 utilities";" (assignment_expression "local_34 = "sha2 utilities"" identifier = (string_literal ""sha2 utilities"" " string_content ")) ;) (expression_statement "local_2c = "sha2 utilities";" (assignment_expression "local_2c = "sha2 utilities"" identifier = (string_literal ""sha2 utilities"" " string_content ")) ;) (expression_statement "local_30 = "sha512sum";" (assignment_expression "local_30 = "sha512sum"" identifier = (string_literal ""sha512sum"" " string_content ")) ;) (expression_statement "local_24 = 0;" (assignment_expression "local_24 = 0" identifier = number_literal) ;) (expression_statement "ppuVar5 = &local_58;" (assignment_expression "ppuVar5 = &local_58" identifier = (pointer_expression "&local_58" & identifier)) ;) (expression_statement "iVar8 = extraout_ECX;" (assignment_expression "iVar8 = extraout_ECX" identifier = identifier) ;) (do_statement "do {\n    ppuVar6 = ppuVar5;\n    ppuVar5 = ppuVar6 + 2;\n    pbVar11 = *ppuVar5;\n    bVar12 = false;\n    bVar13 = pbVar11 == (byte *)0x0;\n    if (bVar13) break;\n    iVar8 = 4;\n    pbVar9 = pbVar10;\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar12 = *pbVar9 < *pbVar11;\n      bVar13 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar14 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n    } while (bVar13);\n  } while ((!bVar12 && !bVar13) != bVar12);" do (compound_statement "{\n    ppuVar6 = ppuVar5;\n    ppuVar5 = ppuVar6 + 2;\n    pbVar11 = *ppuVar5;\n    bVar12 = false;\n    bVar13 = pbVar11 == (byte *)0x0;\n    if (bVar13) break;\n    iVar8 = 4;\n    pbVar9 = pbVar10;\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar12 = *pbVar9 < *pbVar11;\n      bVar13 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar14 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n    } while (bVar13);\n  }" { (expression_statement "ppuVar6 = ppuVar5;" (assignment_expression "ppuVar6 = ppuVar5" identifier = identifier) ;) (expression_statement "ppuVar5 = ppuVar6 + 2;" (assignment_expression "ppuVar5 = ppuVar6 + 2" identifier = (binary_expression "ppuVar6 + 2" identifier + number_literal)) ;) (expression_statement "pbVar11 = *ppuVar5;" (assignment_expression "pbVar11 = *ppuVar5" identifier = (pointer_expression "*ppuVar5" * identifier)) ;) (expression_statement "bVar12 = false;" (assignment_expression "bVar12 = false" identifier = false) ;) (expression_statement "bVar13 = pbVar11 == (byte *)0x0;" (assignment_expression "bVar13 = pbVar11 == (byte *)0x0" identifier = (binary_expression "pbVar11 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (if_statement "if (bVar13) break;" if (parenthesized_expression "(bVar13)" ( identifier )) (break_statement "break;" break ;)) (expression_statement "iVar8 = 4;" (assignment_expression "iVar8 = 4" identifier = number_literal) ;) (expression_statement "pbVar9 = pbVar10;" (assignment_expression "pbVar9 = pbVar10" identifier = identifier) ;) (do_statement "do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar12 = *pbVar9 < *pbVar11;\n      bVar13 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar14 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n    } while (bVar13);" do (compound_statement "{\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar12 = *pbVar9 < *pbVar11;\n      bVar13 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar14 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n    }" { (if_statement "if (iVar8 == 0) break;" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar8 = iVar8 + -1;" (assignment_expression "iVar8 = iVar8 + -1" identifier = (binary_expression "iVar8 + -1" identifier + number_literal)) ;) (expression_statement "bVar12 = *pbVar9 < *pbVar11;" (assignment_expression "bVar12 = *pbVar9 < *pbVar11" identifier = (binary_expression "*pbVar9 < *pbVar11" (pointer_expression "*pbVar9" * identifier) < (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "bVar13 = *pbVar9 == *pbVar11;" (assignment_expression "bVar13 = *pbVar9 == *pbVar11" identifier = (binary_expression "*pbVar9 == *pbVar11" (pointer_expression "*pbVar9" * identifier) == (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "pbVar9 = pbVar9 + (uint)bVar14 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar14 * -2 + 1" identifier = (binary_expression "pbVar9 + (uint)bVar14 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar14 * -2" identifier + (binary_expression "(uint)bVar14 * -2" (cast_expression "(uint)bVar14" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1" identifier = (binary_expression "pbVar11 + (uint)bVar14 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar14 * -2" identifier + (binary_expression "(uint)bVar14 * -2" (cast_expression "(uint)bVar14" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar13)" ( identifier )) ;) }) while (parenthesized_expression "((!bVar12 && !bVar13) != bVar12)" ( (binary_expression "(!bVar12 && !bVar13) != bVar12" (parenthesized_expression "(!bVar12 && !bVar13)" ( (binary_expression "!bVar12 && !bVar13" (unary_expression "!bVar12" ! identifier) && (unary_expression "!bVar13" ! identifier)) )) != identifier) )) ;) (expression_statement "pbVar11 = ppuVar6[3];" (assignment_expression "pbVar11 = ppuVar6[3]" identifier = (subscript_expression "ppuVar6[3]" identifier [ number_literal ])) ;) if (parenthesized_expression "(pbVar11 == (byte *)0x0)" ( (binary_expression "pbVar11 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) { (expression_statement "uVar7 = dcgettext(0,"\n%s online help: <%s>\n",5,iVar8);" (assignment_expression "uVar7 = dcgettext(0,"\n%s online help: <%s>\n",5,iVar8)" identifier = (call_expression "dcgettext(0,"\n%s online help: <%s>\n",5,iVar8)" identifier (argument_list "(0,"\n%s online help: <%s>\n",5,iVar8)" ( number_literal , (string_literal ""\n%s online help: <%s>\n"" " escape_sequence string_content escape_sequence ") , number_literal , identifier )))) ;) (expression_statement "__printf_chk(1,uVar7,"GNU coreutils","https:\n    pcVar4 = setlocale(5,(char *)0x0);" (call_expression "__printf_chk(1,uVar7,"GNU coreutils","https:\n    pcVar4 = setlocale(5,(char *)0x0)" identifier (argument_list "(1,uVar7,"GNU coreutils","https:\n    pcVar4 = setlocale(5,(char *)0x0)" ( number_literal , identifier , (string_literal ""GNU coreutils"" " string_content ") , (ERROR ""https:" " string_content) (assignment_expression "pcVar4 = setlocale(5,(char *)0x0)" identifier = (call_expression "setlocale(5,(char *)0x0)" identifier (argument_list "(5,(char *)0x0)" ( number_literal , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) )))) ))) ;) (if_statement "if ((pcVar4 != (char *)0x0) && (pcVar4 = (char *)strncmp(pcVar4,"en_",3), pcVar4 != (char *)0x0)\n       ) goto LAB_00012719;" if (parenthesized_expression "((pcVar4 != (char *)0x0) && (pcVar4 = (char *)strncmp(pcVar4,"en_",3), pcVar4 != (char *)0x0)\n       )" ( (binary_expression "(pcVar4 != (char *)0x0) && (pcVar4 = (char *)strncmp(pcVar4,"en_",3), pcVar4 != (char *)0x0)" (parenthesized_expression "(pcVar4 != (char *)0x0)" ( (binary_expression "pcVar4 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(pcVar4 = (char *)strncmp(pcVar4,"en_",3), pcVar4 != (char *)0x0)" ( (comma_expression "pcVar4 = (char *)strncmp(pcVar4,"en_",3), pcVar4 != (char *)0x0" (assignment_expression "pcVar4 = (char *)strncmp(pcVar4,"en_",3)" identifier = (cast_expression "(char *)strncmp(pcVar4,"en_",3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "strncmp(pcVar4,"en_",3)" identifier (argument_list "(pcVar4,"en_",3)" ( identifier , (string_literal ""en_"" " string_content ") , number_literal ))))) , (binary_expression "pcVar4 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (goto_statement "goto LAB_00012719;" goto statement_identifier ;)) (expression_statement "uVar7 = dcgettext(0,"Full documentation at: <%s%s>\n",5,0);" (assignment_expression "uVar7 = dcgettext(0,"Full documentation at: <%s%s>\n",5,0)" identifier = (call_expression "dcgettext(0,"Full documentation at: <%s%s>\n",5,0)" identifier (argument_list "(0,"Full documentation at: <%s%s>\n",5,0)" ( number_literal , (string_literal ""Full documentation at: <%s%s>\n"" " string_content escape_sequence ") , number_literal , number_literal )))) ;) (expression_statement "pcVar4 = " invocation";" (assignment_expression "pcVar4 = " invocation"" identifier = (string_literal "" invocation"" " string_content ")) ;) identifier ( number_literal , identifier , (ERROR ""https:\n  }\n  else" " string_content } else) (compound_statement "{\n    uVar7 = dcgettext(0,"\n%s online help: <%s>\n",5,iVar8);\n    __printf_chk(1,uVar7,"GNU coreutils","https:\n    pcVar4 = setlocale(5,(char *)0x0);\n    pbVar10 = pbVar11;\n    if ((pcVar4 != (char *)0x0) && (pcVar4 = (char *)strncmp(pcVar4,"en_",3), pcVar4 != (char *)0x0)\n       ) {\nLAB_00012719:\n      uVar7 = dcgettext(0,"Report %s translation bugs to <https:\n                        ,pcVar4);\n      pcVar4 = (char *)__printf_chk(1,uVar7,&DAT_0001801f);\n    }\n    uVar7 = dcgettext(0,"Full documentation at: <%s%s>\n",5,pcVar4);\n    __printf_chk(1,uVar7,"https:\n    if (pbVar10 == &DAT_0001801f) {\n      pcVar4 = " invocation";\n    }\n    else {\n      pcVar4 = "";\n    }\n  }\n  uVar7 = dcgettext(0,"or available locally via: info \'(coreutils) %s%s\'\n",5,&DAT_0001801f);\n  __printf_chk(1,uVar7,pbVar10,pcVar4);\nLAB_000123b3:\n                    \n  exit(param_1);\n}" { (expression_statement "uVar7 = dcgettext(0,"\n%s online help: <%s>\n",5,iVar8);" (assignment_expression "uVar7 = dcgettext(0,"\n%s online help: <%s>\n",5,iVar8)" identifier = (call_expression "dcgettext(0,"\n%s online help: <%s>\n",5,iVar8)" identifier (argument_list "(0,"\n%s online help: <%s>\n",5,iVar8)" ( number_literal , (string_literal ""\n%s online help: <%s>\n"" " escape_sequence string_content escape_sequence ") , number_literal , identifier )))) ;) (expression_statement "__printf_chk(1,uVar7,"GNU coreutils","https:\n    pcVar4 = setlocale(5,(char *)0x0);\n    pbVar10 = pbVar11;" (call_expression "__printf_chk(1,uVar7,"GNU coreutils","https:\n    pcVar4 = setlocale(5,(char *)0x0);\n    pbVar10 = pbVar11" identifier (argument_list "(1,uVar7,"GNU coreutils","https:\n    pcVar4 = setlocale(5,(char *)0x0);\n    pbVar10 = pbVar11" ( number_literal , identifier , (string_literal ""GNU coreutils"" " string_content ") , (ERROR ""https:\n    pcVar4 = setlocale(5,(char *)0x0);" " string_content (assignment_expression "pcVar4 = setlocale(5,(char *)0x0)" identifier = (call_expression "setlocale(5,(char *)0x0)" identifier (argument_list "(5,(char *)0x0)" ( number_literal , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) )))) ;) (assignment_expression "pbVar10 = pbVar11" identifier = identifier) ))) ;) (if_statement "if ((pcVar4 != (char *)0x0) && (pcVar4 = (char *)strncmp(pcVar4,"en_",3), pcVar4 != (char *)0x0)\n       ) {\nLAB_00012719:\n      uVar7 = dcgettext(0,"Report %s translation bugs to <https:\n                        ,pcVar4);\n      pcVar4 = (char *)__printf_chk(1,uVar7,&DAT_0001801f);\n    }" if (parenthesized_expression "((pcVar4 != (char *)0x0) && (pcVar4 = (char *)strncmp(pcVar4,"en_",3), pcVar4 != (char *)0x0)\n       )" ( (binary_expression "(pcVar4 != (char *)0x0) && (pcVar4 = (char *)strncmp(pcVar4,"en_",3), pcVar4 != (char *)0x0)" (parenthesized_expression "(pcVar4 != (char *)0x0)" ( (binary_expression "pcVar4 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(pcVar4 = (char *)strncmp(pcVar4,"en_",3), pcVar4 != (char *)0x0)" ( (comma_expression "pcVar4 = (char *)strncmp(pcVar4,"en_",3), pcVar4 != (char *)0x0" (assignment_expression "pcVar4 = (char *)strncmp(pcVar4,"en_",3)" identifier = (cast_expression "(char *)strncmp(pcVar4,"en_",3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "strncmp(pcVar4,"en_",3)" identifier (argument_list "(pcVar4,"en_",3)" ( identifier , (string_literal ""en_"" " string_content ") , number_literal ))))) , (binary_expression "pcVar4 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\nLAB_00012719:\n      uVar7 = dcgettext(0,"Report %s translation bugs to <https:\n                        ,pcVar4);\n      pcVar4 = (char *)__printf_chk(1,uVar7,&DAT_0001801f);\n    }" { (labeled_statement "LAB_00012719:\n      uVar7 = dcgettext(0,"Report %s translation bugs to <https:\n                        ,pcVar4);" statement_identifier : (expression_statement "uVar7 = dcgettext(0,"Report %s translation bugs to <https:\n                        ,pcVar4);" (assignment_expression "uVar7 = dcgettext(0,"Report %s translation bugs to <https:\n                        ,pcVar4)" identifier = (call_expression "dcgettext(0,"Report %s translation bugs to <https:\n                        ,pcVar4)" identifier (argument_list "(0,"Report %s translation bugs to <https:\n                        ,pcVar4)" ( number_literal , (string_literal ""Report %s translation bugs to <https:" " string_content ") , identifier )))) ;)) (expression_statement "pcVar4 = (char *)__printf_chk(1,uVar7,&DAT_0001801f);" (assignment_expression "pcVar4 = (char *)__printf_chk(1,uVar7,&DAT_0001801f)" identifier = (cast_expression "(char *)__printf_chk(1,uVar7,&DAT_0001801f)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "__printf_chk(1,uVar7,&DAT_0001801f)" identifier (argument_list "(1,uVar7,&DAT_0001801f)" ( number_literal , identifier , (pointer_expression "&DAT_0001801f" & identifier) ))))) ;) })) (expression_statement "uVar7 = dcgettext(0,"Full documentation at: <%s%s>\n",5,pcVar4);" (assignment_expression "uVar7 = dcgettext(0,"Full documentation at: <%s%s>\n",5,pcVar4)" identifier = (call_expression "dcgettext(0,"Full documentation at: <%s%s>\n",5,pcVar4)" identifier (argument_list "(0,"Full documentation at: <%s%s>\n",5,pcVar4)" ( number_literal , (string_literal ""Full documentation at: <%s%s>\n"" " string_content escape_sequence ") , number_literal , identifier )))) ;) (expression_statement "__printf_chk(1,uVar7,"https:\n    if (pbVar10 == &DAT_0001801f) {\n      pcVar4 = " invocation";\n    }\n    else {\n      pcVar4 = "";\n    }\n  }\n  uVar7 = dcgettext(0,"or available locally via: info \'(coreutils) %s%s\'\n",5,&DAT_0001801f);" (call_expression "__printf_chk(1,uVar7,"https:\n    if (pbVar10 == &DAT_0001801f) {\n      pcVar4 = " invocation";\n    }\n    else {\n      pcVar4 = "";\n    }\n  }\n  uVar7 = dcgettext(0,"or available locally via: info \'(coreutils) %s%s\'\n",5,&DAT_0001801f)" identifier (argument_list "(1,uVar7,"https:\n    if (pbVar10 == &DAT_0001801f) {\n      pcVar4 = " invocation";\n    }\n    else {\n      pcVar4 = "";\n    }\n  }\n  uVar7 = dcgettext(0,"or available locally via: info \'(coreutils) %s%s\'\n",5,&DAT_0001801f)" ( number_literal , identifier , (ERROR ""https:\n    if (pbVar10 == &DAT_0001801f)" (call_expression ""https:\n    if (pbVar10 == &DAT_0001801f)" (concatenated_string ""https:\n    if" (string_literal ""https:" " string_content ") identifier) (argument_list "(pbVar10 == &DAT_0001801f)" ( (binary_expression "pbVar10 == &DAT_0001801f" identifier == (pointer_expression "&DAT_0001801f" & identifier)) )))) (compound_statement "{\n      pcVar4 = " invocation";\n    }" { (expression_statement "pcVar4 = " invocation";" (assignment_expression "pcVar4 = " invocation"" identifier = (string_literal "" invocation"" " string_content ")) ;) }) (ERROR "else {\n      pcVar4 = "";\n    }\n  }\n  uVar7 = dcgettext(0" else { identifier = " " ; } } identifier = identifier ( number_literal) , (string_literal ""or available locally via: info \'(coreutils) %s%s\'\n"" " string_content escape_sequence string_content escape_sequence escape_sequence ") , number_literal , (pointer_expression "&DAT_0001801f" & identifier) ))) ;) (expression_statement "__printf_chk(1,uVar7,pbVar10,pcVar4);" (call_expression "__printf_chk(1,uVar7,pbVar10,pcVar4)" identifier (argument_list "(1,uVar7,pbVar10,pcVar4)" ( number_literal , identifier , identifier , identifier ))) ;) (labeled_statement "LAB_000123b3:\n                    \n  exit(param_1);" statement_identifier : (expression_statement "exit(param_1);" (call_expression "exit(param_1)" identifier (argument_list "(param_1)" ( identifier ))) ;)) })))
(translation_unit (ERROR TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) ))) { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (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 IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (array_declarator IDENT [ LIT ])) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (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 (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence string_content escape_sequence string_content escape_sequence ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) , LIT , IDENT , IDENT ))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT , (string_literal " escape_sequence string_content escape_sequence ") , LIT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT , (string_literal " escape_sequence string_content escape_sequence ") , LIT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence string_content escape_sequence string_content escape_sequence ") , LIT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence ") , LIT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence string_content escape_sequence ") , LIT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence string_content escape_sequence string_content escape_sequence ") , LIT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT , (string_literal " escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence ") , LIT ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence ") , LIT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (string_literal " string_content ")) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (string_literal " string_content ")) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (string_literal " string_content ")) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (string_literal " string_content ")) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (string_literal " string_content ")) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ;) (if_statement if (parenthesized_expression ( IDENT )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) }) while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) != IDENT) )) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " escape_sequence string_content escape_sequence ") , LIT , IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , IDENT , (string_literal " string_content ") , (ERROR " string_content) (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) )))) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , LIT ))))) , (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT , LIT )))) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) IDENT ( LIT , IDENT , (ERROR " string_content } else) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " escape_sequence string_content escape_sequence ") , LIT , IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , IDENT , (string_literal " string_content ") , (ERROR " string_content (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) )))) ;) (assignment_expression IDENT = IDENT) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , LIT ))))) , (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , IDENT )))) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT , IDENT , (pointer_expression & IDENT) ))))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT , IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , IDENT , (ERROR (call_expression (concatenated_string (string_literal " string_content ") IDENT) (argument_list ( (binary_expression IDENT == (pointer_expression & IDENT)) )))) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) }) (ERROR else { IDENT = " " ; } } IDENT = IDENT ( LIT) , (string_literal " string_content escape_sequence string_content escape_sequence escape_sequence ") , LIT , (pointer_expression & IDENT) ))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , IDENT , IDENT , IDENT ))) ;) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;)) })))
(ERROR "void FUN_00012360(int param_1)\n\n{\n  FILE *pFVar1;\n  undefined *puVar2;\n  undefined4 uVar3;\n  char *pcVar4;\n  undefined **ppuVar5;\n  undefined4 uVar7;\n  int extraout_ECX;\n  int iVar8;\n  byte *pbVar9;\n  byte *pbVar10;\n  byte *pbVar11;\n  int in_GS_OFFSET;\n  bool bVar12;\n  bool bVar13;\n  byte bVar14;\n  undefined *local_58;\n  char *local_54;\n  char *local_50 [5];\n  char *local_3c;\n  char *local_38;\n  char *local_34;\n  char *local_30;\n  char *local_2c;\n  undefined4 local_28;\n  undefined4 local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  undefined **ppuVar6;\n  \n  uVar7 = DAT_0001d1b8;\n  bVar14 = 0;\n  uStack_14 = 0x12369;\n  local_20 = *(undefined4 *)(in_GS_OFFSET + 0x14);\n  if (param_1 != 0) {\n    uVar3 = dcgettext(0,"Try \'%s --help\' for more information.\n",5);\n    __fprintf_chk(*(undefined4 *)PTR_stderr_0001cfc0,1,uVar3,uVar7);\n    goto LAB_000123b3;\n  }\n  uVar3 = dcgettext(0,"Usage: %s OPTION... [FILE]...\n",5);\n  __printf_chk(1,uVar3,uVar7);\n  puVar2 = PTR_stdout_0001cfd4;\n  pFVar1 = *(FILE **)PTR_stdout_0001cfd4;\n  pcVar4 = (char *)dcgettext(0,"Print selected parts of lines from each FILE to standard output.\n",\n                             5);\n  fputs_unlocked(pcVar4,pFVar1);\n  pFVar1 = *(FILE **)puVar2;\n  pcVar4 = (char *)dcgettext(0,"\nWith no FILE, or when FILE is -, read standard input.\n",5);\n  fputs_unlocked(pcVar4,pFVar1);\n  pFVar1 = *(FILE **)puVar2;\n  pcVar4 = (char *)dcgettext(0,\n                             "\nMandatory arguments to long options are mandatory for short options too.\n"\n                             ,5);\n  fputs_unlocked(pcVar4,pFVar1);\n  pFVar1 = *(FILE **)puVar2;\n  pcVar4 = (char *)dcgettext(0,\n                             "  -b, --bytes=LIST        select only these bytes\n  -c, --characters=LIST   select only these characters\n  -d, --delimiter=DELIM   use DELIM instead of TAB for field delimiter\n"\n                             ,5);\n  fputs_unlocked(pcVar4,pFVar1);\n  pFVar1 = *(FILE **)puVar2;\n  pcVar4 = (char *)dcgettext(0,\n                             "  -f, --fields=LIST       select only these fields;  also print any line\n                            that contains no delimiter character, unless\n                            the -s option is specified\n  -n                      (ignored)\n"\n                             ,5);\n  fputs_unlocked(pcVar4,pFVar1);\n  pFVar1 = *(FILE **)puVar2;\n  pcVar4 = (char *)dcgettext(0,\n                             "      --complement        complement the set of selected bytes, characters\n                            or fields\n"\n                             ,5);\n  fputs_unlocked(pcVar4,pFVar1);\n  pFVar1 = *(FILE **)puVar2;\n  pcVar4 = (char *)dcgettext(0,\n                             "  -s, --only-delimited    do not print lines not containing delimiters\n      --output-delimiter=STRING  use STRING as the output delimiter\n                            the default is to use the input delimiter\n"\n                             ,5);\n  fputs_unlocked(pcVar4,pFVar1);\n  pFVar1 = *(FILE **)puVar2;\n  pcVar4 = (char *)dcgettext(0,"  -z, --zero-terminated    line delimiter is NUL, not newline\n",5);\n  fputs_unlocked(pcVar4,pFVar1);\n  pFVar1 = *(FILE **)puVar2;\n  pcVar4 = (char *)dcgettext(0,"      --help     display this help and exit\n",5);\n  fputs_unlocked(pcVar4,pFVar1);\n  pFVar1 = *(FILE **)puVar2;\n  pcVar4 = (char *)dcgettext(0,"      --version  output version information and exit\n",5);\n  fputs_unlocked(pcVar4,pFVar1);\n  pFVar1 = *(FILE **)puVar2;\n  pcVar4 = (char *)dcgettext(0,\n                             "\nUse one, and only one of -b, -c or -f.  Each LIST is made up of one\nrange, or many ranges separated by commas.  Selected input is written\nin the same order that it is read, and is written exactly once.\n"\n                             ,5);\n  pbVar10 = &DAT_0001801f;\n  fputs_unlocked(pcVar4,pFVar1);\n  pFVar1 = *(FILE **)puVar2;\n  pcVar4 = (char *)dcgettext(0,\n                             "Each range is one of:\n\n  N     N\'th byte, character or field, counted from 1\n  N-    from N\'th byte, character or field, to end of line\n  N-M   from N\'th to M\'th (included) byte, character or field\n  -M    from first to M\'th (included) byte, character or field\n"\n                             ,5);\n  fputs_unlocked(pcVar4,pFVar1);\n  local_58 = &DAT_00018023;\n  local_28 = 0;\n  local_54 = "test invocation";\n  local_50[0] = "coreutils";\n  local_50[1] = "Multi-call invocation";\n  local_50[4] = "sha256sum";\n  local_50[2] = "sha224sum";\n  local_38 = "sha384sum";\n  local_50[3] = "sha2 utilities";\n  local_3c = "sha2 utilities";\n  local_34 = "sha2 utilities";\n  local_2c = "sha2 utilities";\n  local_30 = "sha512sum";\n  local_24 = 0;\n  ppuVar5 = &local_58;\n  iVar8 = extraout_ECX;\n  do {\n    ppuVar6 = ppuVar5;\n    ppuVar5 = ppuVar6 + 2;\n    pbVar11 = *ppuVar5;\n    bVar12 = false;\n    bVar13 = pbVar11 == (byte *)0x0;\n    if (bVar13) break;\n    iVar8 = 4;\n    pbVar9 = pbVar10;\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar12 = *pbVar9 < *pbVar11;\n      bVar13 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar14 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n    } while (bVar13);\n  } while ((!bVar12 && !bVar13) != bVar12);\n  pbVar11 = ppuVar6[3];\n  if (pbVar11 == (byte *)0x0) {\n    uVar7 = dcgettext(0,"\n%s online help: <%s>\n",5,iVar8);\n    __printf_chk(1,uVar7,"GNU coreutils","https:\n    pcVar4 = setlocale(5,(char *)0x0);\n    if ((pcVar4 != (char *)0x0) && (pcVar4 = (char *)strncmp(pcVar4,"en_",3), pcVar4 != (char *)0x0)\n       ) goto LAB_00012719;\n    uVar7 = dcgettext(0,"Full documentation at: <%s%s>\n",5,0);\n    pcVar4 = " invocation";\n    __printf_chk(1,uVar7,"https:\n  }\n  else {\n    uVar7 = dcgettext(0,"\n%s online help: <%s>\n",5,iVar8);\n    __printf_chk(1,uVar7,"GNU coreutils","https:\n    pcVar4 = setlocale(5,(char *)0x0);\n    pbVar10 = pbVar11;\n    if ((pcVar4 != (char *)0x0) && (pcVar4 = (char *)strncmp(pcVar4,"en_",3), pcVar4 != (char *)0x0)\n       ) {\nLAB_00012719:\n      uVar7 = dcgettext(0,"Report %s translation bugs to <https:\n                        ,pcVar4);\n      pcVar4 = (char *)__printf_chk(1,uVar7,&DAT_0001801f);\n    }\n    uVar7 = dcgettext(0,"Full documentation at: <%s%s>\n",5,pcVar4);\n    __printf_chk(1,uVar7,"https:\n    if (pbVar10 == &DAT_0001801f) {\n      pcVar4 = " invocation";\n    }\n    else {\n      pcVar4 = "";\n    }\n  }\n  uVar7 = dcgettext(0,"or available locally via: info \'(coreutils) %s%s\'\n",5,&DAT_0001801f);\n  __printf_chk(1,uVar7,pbVar10,pcVar4);\nLAB_000123b3:\n                    \n  exit(param_1);\n}" (primitive_type "void") (function_declarator "FUN_00012360(int param_1)" (identifier "FUN_00012360") (parameter_list "(int param_1)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) () ")"))) ({ "{") (declaration "FILE *pFVar1;" (type_identifier "FILE") (pointer_declarator "*pFVar1" (* "*") (identifier "pFVar1")) (; ";")) (declaration "undefined *puVar2;" (type_identifier "undefined") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "undefined4 uVar3;" (type_identifier "undefined4") (identifier "uVar3") (; ";")) (declaration "char *pcVar4;" (primitive_type "char") (pointer_declarator "*pcVar4" (* "*") (identifier "pcVar4")) (; ";")) (declaration "undefined **ppuVar5;" (type_identifier "undefined") (pointer_declarator "**ppuVar5" (* "*") (pointer_declarator "*ppuVar5" (* "*") (identifier "ppuVar5"))) (; ";")) (declaration "undefined4 uVar7;" (type_identifier "undefined4") (identifier "uVar7") (; ";")) (declaration "int extraout_ECX;" (primitive_type "int") (identifier "extraout_ECX") (; ";")) (declaration "int iVar8;" (primitive_type "int") (identifier "iVar8") (; ";")) (declaration "byte *pbVar9;" (type_identifier "byte") (pointer_declarator "*pbVar9" (* "*") (identifier "pbVar9")) (; ";")) (declaration "byte *pbVar10;" (type_identifier "byte") (pointer_declarator "*pbVar10" (* "*") (identifier "pbVar10")) (; ";")) (declaration "byte *pbVar11;" (type_identifier "byte") (pointer_declarator "*pbVar11" (* "*") (identifier "pbVar11")) (; ";")) (declaration "int in_GS_OFFSET;" (primitive_type "int") (identifier "in_GS_OFFSET") (; ";")) (declaration "bool bVar12;" (primitive_type "bool") (identifier "bVar12") (; ";")) (declaration "bool bVar13;" (primitive_type "bool") (identifier "bVar13") (; ";")) (declaration "byte bVar14;" (type_identifier "byte") (identifier "bVar14") (; ";")) (declaration "undefined *local_58;" (type_identifier "undefined") (pointer_declarator "*local_58" (* "*") (identifier "local_58")) (; ";")) (declaration "char *local_54;" (primitive_type "char") (pointer_declarator "*local_54" (* "*") (identifier "local_54")) (; ";")) (declaration "char *local_50 [5];" (primitive_type "char") (pointer_declarator "*local_50 [5]" (* "*") (array_declarator "local_50 [5]" (identifier "local_50") ([ "[") (number_literal "5") (] "]"))) (; ";")) (declaration "char *local_3c;" (primitive_type "char") (pointer_declarator "*local_3c" (* "*") (identifier "local_3c")) (; ";")) (declaration "char *local_38;" (primitive_type "char") (pointer_declarator "*local_38" (* "*") (identifier "local_38")) (; ";")) (declaration "char *local_34;" (primitive_type "char") (pointer_declarator "*local_34" (* "*") (identifier "local_34")) (; ";")) (declaration "char *local_30;" (primitive_type "char") (pointer_declarator "*local_30" (* "*") (identifier "local_30")) (; ";")) (declaration "char *local_2c;" (primitive_type "char") (pointer_declarator "*local_2c" (* "*") (identifier "local_2c")) (; ";")) (declaration "undefined4 local_28;" (type_identifier "undefined4") (identifier "local_28") (; ";")) (declaration "undefined4 local_24;" (type_identifier "undefined4") (identifier "local_24") (; ";")) (declaration "undefined4 local_20;" (type_identifier "undefined4") (identifier "local_20") (; ";")) (declaration "undefined4 uStack_14;" (type_identifier "undefined4") (identifier "uStack_14") (; ";")) (declaration "undefined **ppuVar6;" (type_identifier "undefined") (pointer_declarator "**ppuVar6" (* "*") (pointer_declarator "*ppuVar6" (* "*") (identifier "ppuVar6"))) (; ";")) (expression_statement "uVar7 = DAT_0001d1b8;" (assignment_expression "uVar7 = DAT_0001d1b8" (identifier "uVar7") (= "=") (identifier "DAT_0001d1b8")) (; ";")) (expression_statement "bVar14 = 0;" (assignment_expression "bVar14 = 0" (identifier "bVar14") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_14 = 0x12369;" (assignment_expression "uStack_14 = 0x12369" (identifier "uStack_14") (= "=") (number_literal "0x12369")) (; ";")) (expression_statement "local_20 = *(undefined4 *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(undefined4 *)(in_GS_OFFSET + 0x14)" (identifier "local_20") (= "=") (pointer_expression "*(undefined4 *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(undefined4 *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (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 (param_1 != 0) {\n    uVar3 = dcgettext(0,"Try \'%s --help\' for more information.\n",5);\n    __fprintf_chk(*(undefined4 *)PTR_stderr_0001cfc0,1,uVar3,uVar7);\n    goto LAB_000123b3;\n  }" (if "if") (parenthesized_expression "(param_1 != 0)" (( "(") (binary_expression "param_1 != 0" (identifier "param_1") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    uVar3 = dcgettext(0,"Try \'%s --help\' for more information.\n",5);\n    __fprintf_chk(*(undefined4 *)PTR_stderr_0001cfc0,1,uVar3,uVar7);\n    goto LAB_000123b3;\n  }" ({ "{") (expression_statement "uVar3 = dcgettext(0,"Try \'%s --help\' for more information.\n",5);" (assignment_expression "uVar3 = dcgettext(0,"Try \'%s --help\' for more information.\n",5)" (identifier "uVar3") (= "=") (call_expression "dcgettext(0,"Try \'%s --help\' for more information.\n",5)" (identifier "dcgettext") (argument_list "(0,"Try \'%s --help\' for more information.\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""Try \'%s --help\' for more information.\n"" (" """) (string_content "Try ") (escape_sequence "\'") (string_content "%s --help") (escape_sequence "\'") (string_content " for more information.") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "__fprintf_chk(*(undefined4 *)PTR_stderr_0001cfc0,1,uVar3,uVar7);" (call_expression "__fprintf_chk(*(undefined4 *)PTR_stderr_0001cfc0,1,uVar3,uVar7)" (identifier "__fprintf_chk") (argument_list "(*(undefined4 *)PTR_stderr_0001cfc0,1,uVar3,uVar7)" (( "(") (pointer_expression "*(undefined4 *)PTR_stderr_0001cfc0" (* "*") (cast_expression "(undefined4 *)PTR_stderr_0001cfc0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_stderr_0001cfc0"))) (, ",") (number_literal "1") (, ",") (identifier "uVar3") (, ",") (identifier "uVar7") () ")"))) (; ";")) (goto_statement "goto LAB_000123b3;" (goto "goto") (statement_identifier "LAB_000123b3") (; ";")) (} "}"))) (expression_statement "uVar3 = dcgettext(0,"Usage: %s OPTION... [FILE]...\n",5);" (assignment_expression "uVar3 = dcgettext(0,"Usage: %s OPTION... [FILE]...\n",5)" (identifier "uVar3") (= "=") (call_expression "dcgettext(0,"Usage: %s OPTION... [FILE]...\n",5)" (identifier "dcgettext") (argument_list "(0,"Usage: %s OPTION... [FILE]...\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""Usage: %s OPTION... [FILE]...\n"" (" """) (string_content "Usage: %s OPTION... [FILE]...") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "__printf_chk(1,uVar3,uVar7);" (call_expression "__printf_chk(1,uVar3,uVar7)" (identifier "__printf_chk") (argument_list "(1,uVar3,uVar7)" (( "(") (number_literal "1") (, ",") (identifier "uVar3") (, ",") (identifier "uVar7") () ")"))) (; ";")) (expression_statement "puVar2 = PTR_stdout_0001cfd4;" (assignment_expression "puVar2 = PTR_stdout_0001cfd4" (identifier "puVar2") (= "=") (identifier "PTR_stdout_0001cfd4")) (; ";")) (expression_statement "pFVar1 = *(FILE **)PTR_stdout_0001cfd4;" (assignment_expression "pFVar1 = *(FILE **)PTR_stdout_0001cfd4" (identifier "pFVar1") (= "=") (pointer_expression "*(FILE **)PTR_stdout_0001cfd4" (* "*") (cast_expression "(FILE **)PTR_stdout_0001cfd4" (( "(") (type_descriptor "FILE **" (type_identifier "FILE") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "PTR_stdout_0001cfd4")))) (; ";")) (expression_statement "pcVar4 = (char *)dcgettext(0,"Print selected parts of lines from each FILE to standard output.\n",\n                             5);" (assignment_expression "pcVar4 = (char *)dcgettext(0,"Print selected parts of lines from each FILE to standard output.\n",\n                             5)" (identifier "pcVar4") (= "=") (cast_expression "(char *)dcgettext(0,"Print selected parts of lines from each FILE to standard output.\n",\n                             5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext(0,"Print selected parts of lines from each FILE to standard output.\n",\n                             5)" (identifier "dcgettext") (argument_list "(0,"Print selected parts of lines from each FILE to standard output.\n",\n                             5)" (( "(") (number_literal "0") (, ",") (string_literal ""Print selected parts of lines from each FILE to standard output.\n"" (" """) (string_content "Print selected parts of lines from each FILE to standard output.") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")"))))) (; ";")) (expression_statement "fputs_unlocked(pcVar4,pFVar1);" (call_expression "fputs_unlocked(pcVar4,pFVar1)" (identifier "fputs_unlocked") (argument_list "(pcVar4,pFVar1)" (( "(") (identifier "pcVar4") (, ",") (identifier "pFVar1") () ")"))) (; ";")) (expression_statement "pFVar1 = *(FILE **)puVar2;" (assignment_expression "pFVar1 = *(FILE **)puVar2" (identifier "pFVar1") (= "=") (pointer_expression "*(FILE **)puVar2" (* "*") (cast_expression "(FILE **)puVar2" (( "(") (type_descriptor "FILE **" (type_identifier "FILE") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "puVar2")))) (; ";")) (expression_statement "pcVar4 = (char *)dcgettext(0,"\nWith no FILE, or when FILE is -, read standard input.\n",5);" (assignment_expression "pcVar4 = (char *)dcgettext(0,"\nWith no FILE, or when FILE is -, read standard input.\n",5)" (identifier "pcVar4") (= "=") (cast_expression "(char *)dcgettext(0,"\nWith no FILE, or when FILE is -, read standard input.\n",5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext(0,"\nWith no FILE, or when FILE is -, read standard input.\n",5)" (identifier "dcgettext") (argument_list "(0,"\nWith no FILE, or when FILE is -, read standard input.\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""\nWith no FILE, or when FILE is -, read standard input.\n"" (" """) (escape_sequence "\n") (string_content "With no FILE, or when FILE is -, read standard input.") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")"))))) (; ";")) (expression_statement "fputs_unlocked(pcVar4,pFVar1);" (call_expression "fputs_unlocked(pcVar4,pFVar1)" (identifier "fputs_unlocked") (argument_list "(pcVar4,pFVar1)" (( "(") (identifier "pcVar4") (, ",") (identifier "pFVar1") () ")"))) (; ";")) (expression_statement "pFVar1 = *(FILE **)puVar2;" (assignment_expression "pFVar1 = *(FILE **)puVar2" (identifier "pFVar1") (= "=") (pointer_expression "*(FILE **)puVar2" (* "*") (cast_expression "(FILE **)puVar2" (( "(") (type_descriptor "FILE **" (type_identifier "FILE") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "puVar2")))) (; ";")) (expression_statement "pcVar4 = (char *)dcgettext(0,\n                             "\nMandatory arguments to long options are mandatory for short options too.\n"\n                             ,5);" (assignment_expression "pcVar4 = (char *)dcgettext(0,\n                             "\nMandatory arguments to long options are mandatory for short options too.\n"\n                             ,5)" (identifier "pcVar4") (= "=") (cast_expression "(char *)dcgettext(0,\n                             "\nMandatory arguments to long options are mandatory for short options too.\n"\n                             ,5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext(0,\n                             "\nMandatory arguments to long options are mandatory for short options too.\n"\n                             ,5)" (identifier "dcgettext") (argument_list "(0,\n                             "\nMandatory arguments to long options are mandatory for short options too.\n"\n                             ,5)" (( "(") (number_literal "0") (, ",") (string_literal ""\nMandatory arguments to long options are mandatory for short options too.\n"" (" """) (escape_sequence "\n") (string_content "Mandatory arguments to long options are mandatory for short options too.") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")"))))) (; ";")) (expression_statement "fputs_unlocked(pcVar4,pFVar1);" (call_expression "fputs_unlocked(pcVar4,pFVar1)" (identifier "fputs_unlocked") (argument_list "(pcVar4,pFVar1)" (( "(") (identifier "pcVar4") (, ",") (identifier "pFVar1") () ")"))) (; ";")) (expression_statement "pFVar1 = *(FILE **)puVar2;" (assignment_expression "pFVar1 = *(FILE **)puVar2" (identifier "pFVar1") (= "=") (pointer_expression "*(FILE **)puVar2" (* "*") (cast_expression "(FILE **)puVar2" (( "(") (type_descriptor "FILE **" (type_identifier "FILE") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "puVar2")))) (; ";")) (expression_statement "pcVar4 = (char *)dcgettext(0,\n                             "  -b, --bytes=LIST        select only these bytes\n  -c, --characters=LIST   select only these characters\n  -d, --delimiter=DELIM   use DELIM instead of TAB for field delimiter\n"\n                             ,5);" (assignment_expression "pcVar4 = (char *)dcgettext(0,\n                             "  -b, --bytes=LIST        select only these bytes\n  -c, --characters=LIST   select only these characters\n  -d, --delimiter=DELIM   use DELIM instead of TAB for field delimiter\n"\n                             ,5)" (identifier "pcVar4") (= "=") (cast_expression "(char *)dcgettext(0,\n                             "  -b, --bytes=LIST        select only these bytes\n  -c, --characters=LIST   select only these characters\n  -d, --delimiter=DELIM   use DELIM instead of TAB for field delimiter\n"\n                             ,5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext(0,\n                             "  -b, --bytes=LIST        select only these bytes\n  -c, --characters=LIST   select only these characters\n  -d, --delimiter=DELIM   use DELIM instead of TAB for field delimiter\n"\n                             ,5)" (identifier "dcgettext") (argument_list "(0,\n                             "  -b, --bytes=LIST        select only these bytes\n  -c, --characters=LIST   select only these characters\n  -d, --delimiter=DELIM   use DELIM instead of TAB for field delimiter\n"\n                             ,5)" (( "(") (number_literal "0") (, ",") (string_literal ""  -b, --bytes=LIST        select only these bytes\n  -c, --characters=LIST   select only these characters\n  -d, --delimiter=DELIM   use DELIM instead of TAB for field delimiter\n"" (" """) (string_content "  -b, --bytes=LIST        select only these bytes") (escape_sequence "\n") (string_content "  -c, --characters=LIST   select only these characters") (escape_sequence "\n") (string_content "  -d, --delimiter=DELIM   use DELIM instead of TAB for field delimiter") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")"))))) (; ";")) (expression_statement "fputs_unlocked(pcVar4,pFVar1);" (call_expression "fputs_unlocked(pcVar4,pFVar1)" (identifier "fputs_unlocked") (argument_list "(pcVar4,pFVar1)" (( "(") (identifier "pcVar4") (, ",") (identifier "pFVar1") () ")"))) (; ";")) (expression_statement "pFVar1 = *(FILE **)puVar2;" (assignment_expression "pFVar1 = *(FILE **)puVar2" (identifier "pFVar1") (= "=") (pointer_expression "*(FILE **)puVar2" (* "*") (cast_expression "(FILE **)puVar2" (( "(") (type_descriptor "FILE **" (type_identifier "FILE") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "puVar2")))) (; ";")) (expression_statement "pcVar4 = (char *)dcgettext(0,\n                             "  -f, --fields=LIST       select only these fields;  also print any line\n                            that contains no delimiter character, unless\n                            the -s option is specified\n  -n                      (ignored)\n"\n                             ,5);" (assignment_expression "pcVar4 = (char *)dcgettext(0,\n                             "  -f, --fields=LIST       select only these fields;  also print any line\n                            that contains no delimiter character, unless\n                            the -s option is specified\n  -n                      (ignored)\n"\n                             ,5)" (identifier "pcVar4") (= "=") (cast_expression "(char *)dcgettext(0,\n                             "  -f, --fields=LIST       select only these fields;  also print any line\n                            that contains no delimiter character, unless\n                            the -s option is specified\n  -n                      (ignored)\n"\n                             ,5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext(0,\n                             "  -f, --fields=LIST       select only these fields;  also print any line\n                            that contains no delimiter character, unless\n                            the -s option is specified\n  -n                      (ignored)\n"\n                             ,5)" (identifier "dcgettext") (argument_list "(0,\n                             "  -f, --fields=LIST       select only these fields;  also print any line\n                            that contains no delimiter character, unless\n                            the -s option is specified\n  -n                      (ignored)\n"\n                             ,5)" (( "(") (number_literal "0") (, ",") (string_literal ""  -f, --fields=LIST       select only these fields;  also print any line\n                            that contains no delimiter character, unless\n                            the -s option is specified\n  -n                      (ignored)\n"" (" """) (string_content "  -f, --fields=LIST       select only these fields;  also print any line") (escape_sequence "\n") (string_content "                            that contains no delimiter character, unless") (escape_sequence "\n") (string_content "                            the -s option is specified") (escape_sequence "\n") (string_content "  -n                      (ignored)") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")"))))) (; ";")) (expression_statement "fputs_unlocked(pcVar4,pFVar1);" (call_expression "fputs_unlocked(pcVar4,pFVar1)" (identifier "fputs_unlocked") (argument_list "(pcVar4,pFVar1)" (( "(") (identifier "pcVar4") (, ",") (identifier "pFVar1") () ")"))) (; ";")) (expression_statement "pFVar1 = *(FILE **)puVar2;" (assignment_expression "pFVar1 = *(FILE **)puVar2" (identifier "pFVar1") (= "=") (pointer_expression "*(FILE **)puVar2" (* "*") (cast_expression "(FILE **)puVar2" (( "(") (type_descriptor "FILE **" (type_identifier "FILE") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "puVar2")))) (; ";")) (expression_statement "pcVar4 = (char *)dcgettext(0,\n                             "      --complement        complement the set of selected bytes, characters\n                            or fields\n"\n                             ,5);" (assignment_expression "pcVar4 = (char *)dcgettext(0,\n                             "      --complement        complement the set of selected bytes, characters\n                            or fields\n"\n                             ,5)" (identifier "pcVar4") (= "=") (cast_expression "(char *)dcgettext(0,\n                             "      --complement        complement the set of selected bytes, characters\n                            or fields\n"\n                             ,5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext(0,\n                             "      --complement        complement the set of selected bytes, characters\n                            or fields\n"\n                             ,5)" (identifier "dcgettext") (argument_list "(0,\n                             "      --complement        complement the set of selected bytes, characters\n                            or fields\n"\n                             ,5)" (( "(") (number_literal "0") (, ",") (string_literal ""      --complement        complement the set of selected bytes, characters\n                            or fields\n"" (" """) (string_content "      --complement        complement the set of selected bytes, characters") (escape_sequence "\n") (string_content "                            or fields") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")"))))) (; ";")) (expression_statement "fputs_unlocked(pcVar4,pFVar1);" (call_expression "fputs_unlocked(pcVar4,pFVar1)" (identifier "fputs_unlocked") (argument_list "(pcVar4,pFVar1)" (( "(") (identifier "pcVar4") (, ",") (identifier "pFVar1") () ")"))) (; ";")) (expression_statement "pFVar1 = *(FILE **)puVar2;" (assignment_expression "pFVar1 = *(FILE **)puVar2" (identifier "pFVar1") (= "=") (pointer_expression "*(FILE **)puVar2" (* "*") (cast_expression "(FILE **)puVar2" (( "(") (type_descriptor "FILE **" (type_identifier "FILE") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "puVar2")))) (; ";")) (expression_statement "pcVar4 = (char *)dcgettext(0,\n                             "  -s, --only-delimited    do not print lines not containing delimiters\n      --output-delimiter=STRING  use STRING as the output delimiter\n                            the default is to use the input delimiter\n"\n                             ,5);" (assignment_expression "pcVar4 = (char *)dcgettext(0,\n                             "  -s, --only-delimited    do not print lines not containing delimiters\n      --output-delimiter=STRING  use STRING as the output delimiter\n                            the default is to use the input delimiter\n"\n                             ,5)" (identifier "pcVar4") (= "=") (cast_expression "(char *)dcgettext(0,\n                             "  -s, --only-delimited    do not print lines not containing delimiters\n      --output-delimiter=STRING  use STRING as the output delimiter\n                            the default is to use the input delimiter\n"\n                             ,5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext(0,\n                             "  -s, --only-delimited    do not print lines not containing delimiters\n      --output-delimiter=STRING  use STRING as the output delimiter\n                            the default is to use the input delimiter\n"\n                             ,5)" (identifier "dcgettext") (argument_list "(0,\n                             "  -s, --only-delimited    do not print lines not containing delimiters\n      --output-delimiter=STRING  use STRING as the output delimiter\n                            the default is to use the input delimiter\n"\n                             ,5)" (( "(") (number_literal "0") (, ",") (string_literal ""  -s, --only-delimited    do not print lines not containing delimiters\n      --output-delimiter=STRING  use STRING as the output delimiter\n                            the default is to use the input delimiter\n"" (" """) (string_content "  -s, --only-delimited    do not print lines not containing delimiters") (escape_sequence "\n") (string_content "      --output-delimiter=STRING  use STRING as the output delimiter") (escape_sequence "\n") (string_content "                            the default is to use the input delimiter") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")"))))) (; ";")) (expression_statement "fputs_unlocked(pcVar4,pFVar1);" (call_expression "fputs_unlocked(pcVar4,pFVar1)" (identifier "fputs_unlocked") (argument_list "(pcVar4,pFVar1)" (( "(") (identifier "pcVar4") (, ",") (identifier "pFVar1") () ")"))) (; ";")) (expression_statement "pFVar1 = *(FILE **)puVar2;" (assignment_expression "pFVar1 = *(FILE **)puVar2" (identifier "pFVar1") (= "=") (pointer_expression "*(FILE **)puVar2" (* "*") (cast_expression "(FILE **)puVar2" (( "(") (type_descriptor "FILE **" (type_identifier "FILE") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "puVar2")))) (; ";")) (expression_statement "pcVar4 = (char *)dcgettext(0,"  -z, --zero-terminated    line delimiter is NUL, not newline\n",5);" (assignment_expression "pcVar4 = (char *)dcgettext(0,"  -z, --zero-terminated    line delimiter is NUL, not newline\n",5)" (identifier "pcVar4") (= "=") (cast_expression "(char *)dcgettext(0,"  -z, --zero-terminated    line delimiter is NUL, not newline\n",5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext(0,"  -z, --zero-terminated    line delimiter is NUL, not newline\n",5)" (identifier "dcgettext") (argument_list "(0,"  -z, --zero-terminated    line delimiter is NUL, not newline\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""  -z, --zero-terminated    line delimiter is NUL, not newline\n"" (" """) (string_content "  -z, --zero-terminated    line delimiter is NUL, not newline") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")"))))) (; ";")) (expression_statement "fputs_unlocked(pcVar4,pFVar1);" (call_expression "fputs_unlocked(pcVar4,pFVar1)" (identifier "fputs_unlocked") (argument_list "(pcVar4,pFVar1)" (( "(") (identifier "pcVar4") (, ",") (identifier "pFVar1") () ")"))) (; ";")) (expression_statement "pFVar1 = *(FILE **)puVar2;" (assignment_expression "pFVar1 = *(FILE **)puVar2" (identifier "pFVar1") (= "=") (pointer_expression "*(FILE **)puVar2" (* "*") (cast_expression "(FILE **)puVar2" (( "(") (type_descriptor "FILE **" (type_identifier "FILE") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "puVar2")))) (; ";")) (expression_statement "pcVar4 = (char *)dcgettext(0,"      --help     display this help and exit\n",5);" (assignment_expression "pcVar4 = (char *)dcgettext(0,"      --help     display this help and exit\n",5)" (identifier "pcVar4") (= "=") (cast_expression "(char *)dcgettext(0,"      --help     display this help and exit\n",5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext(0,"      --help     display this help and exit\n",5)" (identifier "dcgettext") (argument_list "(0,"      --help     display this help and exit\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""      --help     display this help and exit\n"" (" """) (string_content "      --help     display this help and exit") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")"))))) (; ";")) (expression_statement "fputs_unlocked(pcVar4,pFVar1);" (call_expression "fputs_unlocked(pcVar4,pFVar1)" (identifier "fputs_unlocked") (argument_list "(pcVar4,pFVar1)" (( "(") (identifier "pcVar4") (, ",") (identifier "pFVar1") () ")"))) (; ";")) (expression_statement "pFVar1 = *(FILE **)puVar2;" (assignment_expression "pFVar1 = *(FILE **)puVar2" (identifier "pFVar1") (= "=") (pointer_expression "*(FILE **)puVar2" (* "*") (cast_expression "(FILE **)puVar2" (( "(") (type_descriptor "FILE **" (type_identifier "FILE") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "puVar2")))) (; ";")) (expression_statement "pcVar4 = (char *)dcgettext(0,"      --version  output version information and exit\n",5);" (assignment_expression "pcVar4 = (char *)dcgettext(0,"      --version  output version information and exit\n",5)" (identifier "pcVar4") (= "=") (cast_expression "(char *)dcgettext(0,"      --version  output version information and exit\n",5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext(0,"      --version  output version information and exit\n",5)" (identifier "dcgettext") (argument_list "(0,"      --version  output version information and exit\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""      --version  output version information and exit\n"" (" """) (string_content "      --version  output version information and exit") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")"))))) (; ";")) (expression_statement "fputs_unlocked(pcVar4,pFVar1);" (call_expression "fputs_unlocked(pcVar4,pFVar1)" (identifier "fputs_unlocked") (argument_list "(pcVar4,pFVar1)" (( "(") (identifier "pcVar4") (, ",") (identifier "pFVar1") () ")"))) (; ";")) (expression_statement "pFVar1 = *(FILE **)puVar2;" (assignment_expression "pFVar1 = *(FILE **)puVar2" (identifier "pFVar1") (= "=") (pointer_expression "*(FILE **)puVar2" (* "*") (cast_expression "(FILE **)puVar2" (( "(") (type_descriptor "FILE **" (type_identifier "FILE") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "puVar2")))) (; ";")) (expression_statement "pcVar4 = (char *)dcgettext(0,\n                             "\nUse one, and only one of -b, -c or -f.  Each LIST is made up of one\nrange, or many ranges separated by commas.  Selected input is written\nin the same order that it is read, and is written exactly once.\n"\n                             ,5);" (assignment_expression "pcVar4 = (char *)dcgettext(0,\n                             "\nUse one, and only one of -b, -c or -f.  Each LIST is made up of one\nrange, or many ranges separated by commas.  Selected input is written\nin the same order that it is read, and is written exactly once.\n"\n                             ,5)" (identifier "pcVar4") (= "=") (cast_expression "(char *)dcgettext(0,\n                             "\nUse one, and only one of -b, -c or -f.  Each LIST is made up of one\nrange, or many ranges separated by commas.  Selected input is written\nin the same order that it is read, and is written exactly once.\n"\n                             ,5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext(0,\n                             "\nUse one, and only one of -b, -c or -f.  Each LIST is made up of one\nrange, or many ranges separated by commas.  Selected input is written\nin the same order that it is read, and is written exactly once.\n"\n                             ,5)" (identifier "dcgettext") (argument_list "(0,\n                             "\nUse one, and only one of -b, -c or -f.  Each LIST is made up of one\nrange, or many ranges separated by commas.  Selected input is written\nin the same order that it is read, and is written exactly once.\n"\n                             ,5)" (( "(") (number_literal "0") (, ",") (string_literal ""\nUse one, and only one of -b, -c or -f.  Each LIST is made up of one\nrange, or many ranges separated by commas.  Selected input is written\nin the same order that it is read, and is written exactly once.\n"" (" """) (escape_sequence "\n") (string_content "Use one, and only one of -b, -c or -f.  Each LIST is made up of one") (escape_sequence "\n") (string_content "range, or many ranges separated by commas.  Selected input is written") (escape_sequence "\n") (string_content "in the same order that it is read, and is written exactly once.") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")"))))) (; ";")) (expression_statement "pbVar10 = &DAT_0001801f;" (assignment_expression "pbVar10 = &DAT_0001801f" (identifier "pbVar10") (= "=") (pointer_expression "&DAT_0001801f" (& "&") (identifier "DAT_0001801f"))) (; ";")) (expression_statement "fputs_unlocked(pcVar4,pFVar1);" (call_expression "fputs_unlocked(pcVar4,pFVar1)" (identifier "fputs_unlocked") (argument_list "(pcVar4,pFVar1)" (( "(") (identifier "pcVar4") (, ",") (identifier "pFVar1") () ")"))) (; ";")) (expression_statement "pFVar1 = *(FILE **)puVar2;" (assignment_expression "pFVar1 = *(FILE **)puVar2" (identifier "pFVar1") (= "=") (pointer_expression "*(FILE **)puVar2" (* "*") (cast_expression "(FILE **)puVar2" (( "(") (type_descriptor "FILE **" (type_identifier "FILE") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "puVar2")))) (; ";")) (expression_statement "pcVar4 = (char *)dcgettext(0,\n                             "Each range is one of:\n\n  N     N\'th byte, character or field, counted from 1\n  N-    from N\'th byte, character or field, to end of line\n  N-M   from N\'th to M\'th (included) byte, character or field\n  -M    from first to M\'th (included) byte, character or field\n"\n                             ,5);" (assignment_expression "pcVar4 = (char *)dcgettext(0,\n                             "Each range is one of:\n\n  N     N\'th byte, character or field, counted from 1\n  N-    from N\'th byte, character or field, to end of line\n  N-M   from N\'th to M\'th (included) byte, character or field\n  -M    from first to M\'th (included) byte, character or field\n"\n                             ,5)" (identifier "pcVar4") (= "=") (cast_expression "(char *)dcgettext(0,\n                             "Each range is one of:\n\n  N     N\'th byte, character or field, counted from 1\n  N-    from N\'th byte, character or field, to end of line\n  N-M   from N\'th to M\'th (included) byte, character or field\n  -M    from first to M\'th (included) byte, character or field\n"\n                             ,5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext(0,\n                             "Each range is one of:\n\n  N     N\'th byte, character or field, counted from 1\n  N-    from N\'th byte, character or field, to end of line\n  N-M   from N\'th to M\'th (included) byte, character or field\n  -M    from first to M\'th (included) byte, character or field\n"\n                             ,5)" (identifier "dcgettext") (argument_list "(0,\n                             "Each range is one of:\n\n  N     N\'th byte, character or field, counted from 1\n  N-    from N\'th byte, character or field, to end of line\n  N-M   from N\'th to M\'th (included) byte, character or field\n  -M    from first to M\'th (included) byte, character or field\n"\n                             ,5)" (( "(") (number_literal "0") (, ",") (string_literal ""Each range is one of:\n\n  N     N\'th byte, character or field, counted from 1\n  N-    from N\'th byte, character or field, to end of line\n  N-M   from N\'th to M\'th (included) byte, character or field\n  -M    from first to M\'th (included) byte, character or field\n"" (" """) (string_content "Each range is one of:") (escape_sequence "\n") (escape_sequence "\n") (string_content "  N     N") (escape_sequence "\'") (string_content "th byte, character or field, counted from 1") (escape_sequence "\n") (string_content "  N-    from N") (escape_sequence "\'") (string_content "th byte, character or field, to end of line") (escape_sequence "\n") (string_content "  N-M   from N") (escape_sequence "\'") (string_content "th to M") (escape_sequence "\'") (string_content "th (included) byte, character or field") (escape_sequence "\n") (string_content "  -M    from first to M") (escape_sequence "\'") (string_content "th (included) byte, character or field") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")"))))) (; ";")) (expression_statement "fputs_unlocked(pcVar4,pFVar1);" (call_expression "fputs_unlocked(pcVar4,pFVar1)" (identifier "fputs_unlocked") (argument_list "(pcVar4,pFVar1)" (( "(") (identifier "pcVar4") (, ",") (identifier "pFVar1") () ")"))) (; ";")) (expression_statement "local_58 = &DAT_00018023;" (assignment_expression "local_58 = &DAT_00018023" (identifier "local_58") (= "=") (pointer_expression "&DAT_00018023" (& "&") (identifier "DAT_00018023"))) (; ";")) (expression_statement "local_28 = 0;" (assignment_expression "local_28 = 0" (identifier "local_28") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_54 = "test invocation";" (assignment_expression "local_54 = "test invocation"" (identifier "local_54") (= "=") (string_literal ""test invocation"" (" """) (string_content "test invocation") (" """))) (; ";")) (expression_statement "local_50[0] = "coreutils";" (assignment_expression "local_50[0] = "coreutils"" (subscript_expression "local_50[0]" (identifier "local_50") ([ "[") (number_literal "0") (] "]")) (= "=") (string_literal ""coreutils"" (" """) (string_content "coreutils") (" """))) (; ";")) (expression_statement "local_50[1] = "Multi-call invocation";" (assignment_expression "local_50[1] = "Multi-call invocation"" (subscript_expression "local_50[1]" (identifier "local_50") ([ "[") (number_literal "1") (] "]")) (= "=") (string_literal ""Multi-call invocation"" (" """) (string_content "Multi-call invocation") (" """))) (; ";")) (expression_statement "local_50[4] = "sha256sum";" (assignment_expression "local_50[4] = "sha256sum"" (subscript_expression "local_50[4]" (identifier "local_50") ([ "[") (number_literal "4") (] "]")) (= "=") (string_literal ""sha256sum"" (" """) (string_content "sha256sum") (" """))) (; ";")) (expression_statement "local_50[2] = "sha224sum";" (assignment_expression "local_50[2] = "sha224sum"" (subscript_expression "local_50[2]" (identifier "local_50") ([ "[") (number_literal "2") (] "]")) (= "=") (string_literal ""sha224sum"" (" """) (string_content "sha224sum") (" """))) (; ";")) (expression_statement "local_38 = "sha384sum";" (assignment_expression "local_38 = "sha384sum"" (identifier "local_38") (= "=") (string_literal ""sha384sum"" (" """) (string_content "sha384sum") (" """))) (; ";")) (expression_statement "local_50[3] = "sha2 utilities";" (assignment_expression "local_50[3] = "sha2 utilities"" (subscript_expression "local_50[3]" (identifier "local_50") ([ "[") (number_literal "3") (] "]")) (= "=") (string_literal ""sha2 utilities"" (" """) (string_content "sha2 utilities") (" """))) (; ";")) (expression_statement "local_3c = "sha2 utilities";" (assignment_expression "local_3c = "sha2 utilities"" (identifier "local_3c") (= "=") (string_literal ""sha2 utilities"" (" """) (string_content "sha2 utilities") (" """))) (; ";")) (expression_statement "local_34 = "sha2 utilities";" (assignment_expression "local_34 = "sha2 utilities"" (identifier "local_34") (= "=") (string_literal ""sha2 utilities"" (" """) (string_content "sha2 utilities") (" """))) (; ";")) (expression_statement "local_2c = "sha2 utilities";" (assignment_expression "local_2c = "sha2 utilities"" (identifier "local_2c") (= "=") (string_literal ""sha2 utilities"" (" """) (string_content "sha2 utilities") (" """))) (; ";")) (expression_statement "local_30 = "sha512sum";" (assignment_expression "local_30 = "sha512sum"" (identifier "local_30") (= "=") (string_literal ""sha512sum"" (" """) (string_content "sha512sum") (" """))) (; ";")) (expression_statement "local_24 = 0;" (assignment_expression "local_24 = 0" (identifier "local_24") (= "=") (number_literal "0")) (; ";")) (expression_statement "ppuVar5 = &local_58;" (assignment_expression "ppuVar5 = &local_58" (identifier "ppuVar5") (= "=") (pointer_expression "&local_58" (& "&") (identifier "local_58"))) (; ";")) (expression_statement "iVar8 = extraout_ECX;" (assignment_expression "iVar8 = extraout_ECX" (identifier "iVar8") (= "=") (identifier "extraout_ECX")) (; ";")) (do_statement "do {\n    ppuVar6 = ppuVar5;\n    ppuVar5 = ppuVar6 + 2;\n    pbVar11 = *ppuVar5;\n    bVar12 = false;\n    bVar13 = pbVar11 == (byte *)0x0;\n    if (bVar13) break;\n    iVar8 = 4;\n    pbVar9 = pbVar10;\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar12 = *pbVar9 < *pbVar11;\n      bVar13 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar14 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n    } while (bVar13);\n  } while ((!bVar12 && !bVar13) != bVar12);" (do "do") (compound_statement "{\n    ppuVar6 = ppuVar5;\n    ppuVar5 = ppuVar6 + 2;\n    pbVar11 = *ppuVar5;\n    bVar12 = false;\n    bVar13 = pbVar11 == (byte *)0x0;\n    if (bVar13) break;\n    iVar8 = 4;\n    pbVar9 = pbVar10;\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar12 = *pbVar9 < *pbVar11;\n      bVar13 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar14 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n    } while (bVar13);\n  }" ({ "{") (expression_statement "ppuVar6 = ppuVar5;" (assignment_expression "ppuVar6 = ppuVar5" (identifier "ppuVar6") (= "=") (identifier "ppuVar5")) (; ";")) (expression_statement "ppuVar5 = ppuVar6 + 2;" (assignment_expression "ppuVar5 = ppuVar6 + 2" (identifier "ppuVar5") (= "=") (binary_expression "ppuVar6 + 2" (identifier "ppuVar6") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "pbVar11 = *ppuVar5;" (assignment_expression "pbVar11 = *ppuVar5" (identifier "pbVar11") (= "=") (pointer_expression "*ppuVar5" (* "*") (identifier "ppuVar5"))) (; ";")) (expression_statement "bVar12 = false;" (assignment_expression "bVar12 = false" (identifier "bVar12") (= "=") (false "false")) (; ";")) (expression_statement "bVar13 = pbVar11 == (byte *)0x0;" (assignment_expression "bVar13 = pbVar11 == (byte *)0x0" (identifier "bVar13") (= "=") (binary_expression "pbVar11 == (byte *)0x0" (identifier "pbVar11") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) (; ";")) (if_statement "if (bVar13) break;" (if "if") (parenthesized_expression "(bVar13)" (( "(") (identifier "bVar13") () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar8 = 4;" (assignment_expression "iVar8 = 4" (identifier "iVar8") (= "=") (number_literal "4")) (; ";")) (expression_statement "pbVar9 = pbVar10;" (assignment_expression "pbVar9 = pbVar10" (identifier "pbVar9") (= "=") (identifier "pbVar10")) (; ";")) (do_statement "do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar12 = *pbVar9 < *pbVar11;\n      bVar13 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar14 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n    } while (bVar13);" (do "do") (compound_statement "{\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar12 = *pbVar9 < *pbVar11;\n      bVar13 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar14 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n    }" ({ "{") (if_statement "if (iVar8 == 0) break;" (if "if") (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar8 = iVar8 + -1;" (assignment_expression "iVar8 = iVar8 + -1" (identifier "iVar8") (= "=") (binary_expression "iVar8 + -1" (identifier "iVar8") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar12 = *pbVar9 < *pbVar11;" (assignment_expression "bVar12 = *pbVar9 < *pbVar11" (identifier "bVar12") (= "=") (binary_expression "*pbVar9 < *pbVar11" (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")) (< "<") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")))) (; ";")) (expression_statement "bVar13 = *pbVar9 == *pbVar11;" (assignment_expression "bVar13 = *pbVar9 == *pbVar11" (identifier "bVar13") (= "=") (binary_expression "*pbVar9 == *pbVar11" (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")) (== "==") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")))) (; ";")) (expression_statement "pbVar9 = pbVar9 + (uint)bVar14 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar14 * -2 + 1" (identifier "pbVar9") (= "=") (binary_expression "pbVar9 + (uint)bVar14 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar14 * -2" (identifier "pbVar9") (+ "+") (binary_expression "(uint)bVar14 * -2" (cast_expression "(uint)bVar14" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar14")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1" (identifier "pbVar11") (= "=") (binary_expression "pbVar11 + (uint)bVar14 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar14 * -2" (identifier "pbVar11") (+ "+") (binary_expression "(uint)bVar14 * -2" (cast_expression "(uint)bVar14" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar14")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar13)" (( "(") (identifier "bVar13") () ")")) (; ";")) (} "}")) (while "while") (parenthesized_expression "((!bVar12 && !bVar13) != bVar12)" (( "(") (binary_expression "(!bVar12 && !bVar13) != bVar12" (parenthesized_expression "(!bVar12 && !bVar13)" (( "(") (binary_expression "!bVar12 && !bVar13" (unary_expression "!bVar12" (! "!") (identifier "bVar12")) (&& "&&") (unary_expression "!bVar13" (! "!") (identifier "bVar13"))) () ")")) (!= "!=") (identifier "bVar12")) () ")")) (; ";")) (expression_statement "pbVar11 = ppuVar6[3];" (assignment_expression "pbVar11 = ppuVar6[3]" (identifier "pbVar11") (= "=") (subscript_expression "ppuVar6[3]" (identifier "ppuVar6") ([ "[") (number_literal "3") (] "]"))) (; ";")) (if "if") (parenthesized_expression "(pbVar11 == (byte *)0x0)" (( "(") (binary_expression "pbVar11 == (byte *)0x0" (identifier "pbVar11") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) ({ "{") (expression_statement "uVar7 = dcgettext(0,"\n%s online help: <%s>\n",5,iVar8);" (assignment_expression "uVar7 = dcgettext(0,"\n%s online help: <%s>\n",5,iVar8)" (identifier "uVar7") (= "=") (call_expression "dcgettext(0,"\n%s online help: <%s>\n",5,iVar8)" (identifier "dcgettext") (argument_list "(0,"\n%s online help: <%s>\n",5,iVar8)" (( "(") (number_literal "0") (, ",") (string_literal ""\n%s online help: <%s>\n"" (" """) (escape_sequence "\n") (string_content "%s online help: <%s>") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") (, ",") (identifier "iVar8") () ")")))) (; ";")) (expression_statement "__printf_chk(1,uVar7,"GNU coreutils","https:\n    pcVar4 = setlocale(5,(char *)0x0);" (call_expression "__printf_chk(1,uVar7,"GNU coreutils","https:\n    pcVar4 = setlocale(5,(char *)0x0)" (identifier "__printf_chk") (argument_list "(1,uVar7,"GNU coreutils","https:\n    pcVar4 = setlocale(5,(char *)0x0)" (( "(") (number_literal "1") (, ",") (identifier "uVar7") (, ",") (string_literal ""GNU coreutils"" (" """) (string_content "GNU coreutils") (" """)) (, ",") (ERROR ""https:" (" """) (string_content "https:")) (assignment_expression "pcVar4 = setlocale(5,(char *)0x0)" (identifier "pcVar4") (= "=") (call_expression "setlocale(5,(char *)0x0)" (identifier "setlocale") (argument_list "(5,(char *)0x0)" (( "(") (number_literal "5") (, ",") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) () ")")))) () ""))) (; ";")) (if_statement "if ((pcVar4 != (char *)0x0) && (pcVar4 = (char *)strncmp(pcVar4,"en_",3), pcVar4 != (char *)0x0)\n       ) goto LAB_00012719;" (if "if") (parenthesized_expression "((pcVar4 != (char *)0x0) && (pcVar4 = (char *)strncmp(pcVar4,"en_",3), pcVar4 != (char *)0x0)\n       )" (( "(") (binary_expression "(pcVar4 != (char *)0x0) && (pcVar4 = (char *)strncmp(pcVar4,"en_",3), pcVar4 != (char *)0x0)" (parenthesized_expression "(pcVar4 != (char *)0x0)" (( "(") (binary_expression "pcVar4 != (char *)0x0" (identifier "pcVar4") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(pcVar4 = (char *)strncmp(pcVar4,"en_",3), pcVar4 != (char *)0x0)" (( "(") (comma_expression "pcVar4 = (char *)strncmp(pcVar4,"en_",3), pcVar4 != (char *)0x0" (assignment_expression "pcVar4 = (char *)strncmp(pcVar4,"en_",3)" (identifier "pcVar4") (= "=") (cast_expression "(char *)strncmp(pcVar4,"en_",3)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "strncmp(pcVar4,"en_",3)" (identifier "strncmp") (argument_list "(pcVar4,"en_",3)" (( "(") (identifier "pcVar4") (, ",") (string_literal ""en_"" (" """) (string_content "en_") (" """)) (, ",") (number_literal "3") () ")"))))) (, ",") (binary_expression "pcVar4 != (char *)0x0" (identifier "pcVar4") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")"))) () ")")) (goto_statement "goto LAB_00012719;" (goto "goto") (statement_identifier "LAB_00012719") (; ";"))) (expression_statement "uVar7 = dcgettext(0,"Full documentation at: <%s%s>\n",5,0);" (assignment_expression "uVar7 = dcgettext(0,"Full documentation at: <%s%s>\n",5,0)" (identifier "uVar7") (= "=") (call_expression "dcgettext(0,"Full documentation at: <%s%s>\n",5,0)" (identifier "dcgettext") (argument_list "(0,"Full documentation at: <%s%s>\n",5,0)" (( "(") (number_literal "0") (, ",") (string_literal ""Full documentation at: <%s%s>\n"" (" """) (string_content "Full documentation at: <%s%s>") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "pcVar4 = " invocation";" (assignment_expression "pcVar4 = " invocation"" (identifier "pcVar4") (= "=") (string_literal "" invocation"" (" """) (string_content " invocation") (" """))) (; ";")) (identifier "__printf_chk") (( "(") (number_literal "1") (, ",") (identifier "uVar7") (, ",") (ERROR ""https:\n  }\n  else" (" """) (string_content "https:") (} "}") (else "else")) (compound_statement "{\n    uVar7 = dcgettext(0,"\n%s online help: <%s>\n",5,iVar8);\n    __printf_chk(1,uVar7,"GNU coreutils","https:\n    pcVar4 = setlocale(5,(char *)0x0);\n    pbVar10 = pbVar11;\n    if ((pcVar4 != (char *)0x0) && (pcVar4 = (char *)strncmp(pcVar4,"en_",3), pcVar4 != (char *)0x0)\n       ) {\nLAB_00012719:\n      uVar7 = dcgettext(0,"Report %s translation bugs to <https:\n                        ,pcVar4);\n      pcVar4 = (char *)__printf_chk(1,uVar7,&DAT_0001801f);\n    }\n    uVar7 = dcgettext(0,"Full documentation at: <%s%s>\n",5,pcVar4);\n    __printf_chk(1,uVar7,"https:\n    if (pbVar10 == &DAT_0001801f) {\n      pcVar4 = " invocation";\n    }\n    else {\n      pcVar4 = "";\n    }\n  }\n  uVar7 = dcgettext(0,"or available locally via: info \'(coreutils) %s%s\'\n",5,&DAT_0001801f);\n  __printf_chk(1,uVar7,pbVar10,pcVar4);\nLAB_000123b3:\n                    \n  exit(param_1);\n}" ({ "{") (expression_statement "uVar7 = dcgettext(0,"\n%s online help: <%s>\n",5,iVar8);" (assignment_expression "uVar7 = dcgettext(0,"\n%s online help: <%s>\n",5,iVar8)" (identifier "uVar7") (= "=") (call_expression "dcgettext(0,"\n%s online help: <%s>\n",5,iVar8)" (identifier "dcgettext") (argument_list "(0,"\n%s online help: <%s>\n",5,iVar8)" (( "(") (number_literal "0") (, ",") (string_literal ""\n%s online help: <%s>\n"" (" """) (escape_sequence "\n") (string_content "%s online help: <%s>") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") (, ",") (identifier "iVar8") () ")")))) (; ";")) (expression_statement "__printf_chk(1,uVar7,"GNU coreutils","https:\n    pcVar4 = setlocale(5,(char *)0x0);\n    pbVar10 = pbVar11;" (call_expression "__printf_chk(1,uVar7,"GNU coreutils","https:\n    pcVar4 = setlocale(5,(char *)0x0);\n    pbVar10 = pbVar11" (identifier "__printf_chk") (argument_list "(1,uVar7,"GNU coreutils","https:\n    pcVar4 = setlocale(5,(char *)0x0);\n    pbVar10 = pbVar11" (( "(") (number_literal "1") (, ",") (identifier "uVar7") (, ",") (string_literal ""GNU coreutils"" (" """) (string_content "GNU coreutils") (" """)) (, ",") (ERROR ""https:\n    pcVar4 = setlocale(5,(char *)0x0);" (" """) (string_content "https:") (assignment_expression "pcVar4 = setlocale(5,(char *)0x0)" (identifier "pcVar4") (= "=") (call_expression "setlocale(5,(char *)0x0)" (identifier "setlocale") (argument_list "(5,(char *)0x0)" (( "(") (number_literal "5") (, ",") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) () ")")))) (; ";")) (assignment_expression "pbVar10 = pbVar11" (identifier "pbVar10") (= "=") (identifier "pbVar11")) () ""))) (; ";")) (if_statement "if ((pcVar4 != (char *)0x0) && (pcVar4 = (char *)strncmp(pcVar4,"en_",3), pcVar4 != (char *)0x0)\n       ) {\nLAB_00012719:\n      uVar7 = dcgettext(0,"Report %s translation bugs to <https:\n                        ,pcVar4);\n      pcVar4 = (char *)__printf_chk(1,uVar7,&DAT_0001801f);\n    }" (if "if") (parenthesized_expression "((pcVar4 != (char *)0x0) && (pcVar4 = (char *)strncmp(pcVar4,"en_",3), pcVar4 != (char *)0x0)\n       )" (( "(") (binary_expression "(pcVar4 != (char *)0x0) && (pcVar4 = (char *)strncmp(pcVar4,"en_",3), pcVar4 != (char *)0x0)" (parenthesized_expression "(pcVar4 != (char *)0x0)" (( "(") (binary_expression "pcVar4 != (char *)0x0" (identifier "pcVar4") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(pcVar4 = (char *)strncmp(pcVar4,"en_",3), pcVar4 != (char *)0x0)" (( "(") (comma_expression "pcVar4 = (char *)strncmp(pcVar4,"en_",3), pcVar4 != (char *)0x0" (assignment_expression "pcVar4 = (char *)strncmp(pcVar4,"en_",3)" (identifier "pcVar4") (= "=") (cast_expression "(char *)strncmp(pcVar4,"en_",3)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "strncmp(pcVar4,"en_",3)" (identifier "strncmp") (argument_list "(pcVar4,"en_",3)" (( "(") (identifier "pcVar4") (, ",") (string_literal ""en_"" (" """) (string_content "en_") (" """)) (, ",") (number_literal "3") () ")"))))) (, ",") (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 "{\nLAB_00012719:\n      uVar7 = dcgettext(0,"Report %s translation bugs to <https:\n                        ,pcVar4);\n      pcVar4 = (char *)__printf_chk(1,uVar7,&DAT_0001801f);\n    }" ({ "{") (labeled_statement "LAB_00012719:\n      uVar7 = dcgettext(0,"Report %s translation bugs to <https:\n                        ,pcVar4);" (statement_identifier "LAB_00012719") (: ":") (expression_statement "uVar7 = dcgettext(0,"Report %s translation bugs to <https:\n                        ,pcVar4);" (assignment_expression "uVar7 = dcgettext(0,"Report %s translation bugs to <https:\n                        ,pcVar4)" (identifier "uVar7") (= "=") (call_expression "dcgettext(0,"Report %s translation bugs to <https:\n                        ,pcVar4)" (identifier "dcgettext") (argument_list "(0,"Report %s translation bugs to <https:\n                        ,pcVar4)" (( "(") (number_literal "0") (, ",") (string_literal ""Report %s translation bugs to <https:" (" """) (string_content "Report %s translation bugs to <https:") (" "")) (, ",") (identifier "pcVar4") () ")")))) (; ";"))) (expression_statement "pcVar4 = (char *)__printf_chk(1,uVar7,&DAT_0001801f);" (assignment_expression "pcVar4 = (char *)__printf_chk(1,uVar7,&DAT_0001801f)" (identifier "pcVar4") (= "=") (cast_expression "(char *)__printf_chk(1,uVar7,&DAT_0001801f)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "__printf_chk(1,uVar7,&DAT_0001801f)" (identifier "__printf_chk") (argument_list "(1,uVar7,&DAT_0001801f)" (( "(") (number_literal "1") (, ",") (identifier "uVar7") (, ",") (pointer_expression "&DAT_0001801f" (& "&") (identifier "DAT_0001801f")) () ")"))))) (; ";")) (} "}"))) (expression_statement "uVar7 = dcgettext(0,"Full documentation at: <%s%s>\n",5,pcVar4);" (assignment_expression "uVar7 = dcgettext(0,"Full documentation at: <%s%s>\n",5,pcVar4)" (identifier "uVar7") (= "=") (call_expression "dcgettext(0,"Full documentation at: <%s%s>\n",5,pcVar4)" (identifier "dcgettext") (argument_list "(0,"Full documentation at: <%s%s>\n",5,pcVar4)" (( "(") (number_literal "0") (, ",") (string_literal ""Full documentation at: <%s%s>\n"" (" """) (string_content "Full documentation at: <%s%s>") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") (, ",") (identifier "pcVar4") () ")")))) (; ";")) (expression_statement "__printf_chk(1,uVar7,"https:\n    if (pbVar10 == &DAT_0001801f) {\n      pcVar4 = " invocation";\n    }\n    else {\n      pcVar4 = "";\n    }\n  }\n  uVar7 = dcgettext(0,"or available locally via: info \'(coreutils) %s%s\'\n",5,&DAT_0001801f);" (call_expression "__printf_chk(1,uVar7,"https:\n    if (pbVar10 == &DAT_0001801f) {\n      pcVar4 = " invocation";\n    }\n    else {\n      pcVar4 = "";\n    }\n  }\n  uVar7 = dcgettext(0,"or available locally via: info \'(coreutils) %s%s\'\n",5,&DAT_0001801f)" (identifier "__printf_chk") (argument_list "(1,uVar7,"https:\n    if (pbVar10 == &DAT_0001801f) {\n      pcVar4 = " invocation";\n    }\n    else {\n      pcVar4 = "";\n    }\n  }\n  uVar7 = dcgettext(0,"or available locally via: info \'(coreutils) %s%s\'\n",5,&DAT_0001801f)" (( "(") (number_literal "1") (, ",") (identifier "uVar7") (, ",") (ERROR ""https:\n    if (pbVar10 == &DAT_0001801f)" (call_expression ""https:\n    if (pbVar10 == &DAT_0001801f)" (concatenated_string ""https:\n    if" (string_literal ""https:" (" """) (string_content "https:") (" "")) (identifier "if")) (argument_list "(pbVar10 == &DAT_0001801f)" (( "(") (binary_expression "pbVar10 == &DAT_0001801f" (identifier "pbVar10") (== "==") (pointer_expression "&DAT_0001801f" (& "&") (identifier "DAT_0001801f"))) () ")")))) (compound_statement "{\n      pcVar4 = " invocation";\n    }" ({ "{") (expression_statement "pcVar4 = " invocation";" (assignment_expression "pcVar4 = " invocation"" (identifier "pcVar4") (= "=") (string_literal "" invocation"" (" """) (string_content " invocation") (" """))) (; ";")) (} "}")) (ERROR "else {\n      pcVar4 = "";\n    }\n  }\n  uVar7 = dcgettext(0" (else "else") ({ "{") (identifier "pcVar4") (= "=") (" """) (" """) (; ";") (} "}") (} "}") (identifier "uVar7") (= "=") (identifier "dcgettext") (( "(") (number_literal "0")) (, ",") (string_literal ""or available locally via: info \'(coreutils) %s%s\'\n"" (" """) (string_content "or available locally via: info ") (escape_sequence "\'") (string_content "(coreutils) %s%s") (escape_sequence "\'") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") (, ",") (pointer_expression "&DAT_0001801f" (& "&") (identifier "DAT_0001801f")) () ")"))) (; ";")) (expression_statement "__printf_chk(1,uVar7,pbVar10,pcVar4);" (call_expression "__printf_chk(1,uVar7,pbVar10,pcVar4)" (identifier "__printf_chk") (argument_list "(1,uVar7,pbVar10,pcVar4)" (( "(") (number_literal "1") (, ",") (identifier "uVar7") (, ",") (identifier "pbVar10") (, ",") (identifier "pcVar4") () ")"))) (; ";")) (labeled_statement "LAB_000123b3:\n                    \n  exit(param_1);" (statement_identifier "LAB_000123b3") (: ":") (expression_statement "exit(param_1);" (call_expression "exit(param_1)" (identifier "exit") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")"))) (; ";"))) (} "}")))

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

void function_1(int var_1)

{
  type_1 *pFVar1;
  type_2 *puVar2;
  type_3 uVar3;
  char *var_12;
  type_4 *piVar5;
  int extraout_ECX;
  int var_8;
  type_5 *var_9;
  type_5 *var_14;
  type_5 *var_7;
  bool var_10;
  bool bVar12;
  type_5 bVar13;
  type_4 type_4 [7];
  type_4 *var_6;
  
  var_12 = program_name;
  bVar13 = 0;
  if (var_1 != 0) {
    uVar3 = var_2(0,"Try \'%s --help\' for more information.\n",5);
    var_3(*(type_3 *)PTR_stderr_0001cfc0,1,uVar3,var_12);
    goto LAB_000123b3;
  }
  uVar3 = var_2(0,"Usage: %s OPTION... [FILE]...\n",5);
  var_4(1,uVar3,var_12);
  puVar2 = PTR_stdout_0001cfd4;
  pFVar1 = *(type_1 **)PTR_stdout_0001cfd4;
  var_12 = (char *)var_2(0,"Print selected parts of lines from each FILE to standard output.\n",
                             5);
  var_5(var_12,pFVar1);
  pFVar1 = *(type_1 **)puVar2;
  var_12 = (char *)var_2(0,"\nWith no FILE, or when FILE is -, read standard input.\n",5);
  var_5(var_12,pFVar1);
  pFVar1 = *(type_1 **)puVar2;
  var_12 = (char *)var_2(0,
                             "\nMandatory arguments to long options are mandatory for short options too.\n"
                             ,5);
  var_5(var_12,pFVar1);
  pFVar1 = *(type_1 **)puVar2;
  var_12 = (char *)var_2(0,
                             "  -b, --bytes=LIST        select only these bytes\n  -c, --characters=LIST   select only these characters\n  -d, --delimiter=DELIM   use DELIM instead of TAB for field delimiter\n"
                             ,5);
  var_5(var_12,pFVar1);
  pFVar1 = *(type_1 **)puVar2;
  var_12 = (char *)var_2(0,
                             "  -f, --fields=LIST       select only these fields;  also print any line\n                            that contains no delimiter character, unless\n                            the -s option is specified\n  -n                      (ignored)\n"
                             ,5);
  var_5(var_12,pFVar1);
  pFVar1 = *(type_1 **)puVar2;
  var_12 = (char *)var_2(0,
                             "      --complement        complement the set of selected bytes, characters\n                            or fields\n"
                             ,5);
  var_5(var_12,pFVar1);
  pFVar1 = *(type_1 **)puVar2;
  var_12 = (char *)var_2(0,
                             "  -s, --only-delimited    do not print lines not containing delimiters\n      --output-delimiter=STRING  use STRING as the output delimiter\n                            the default is to use the input delimiter\n"
                             ,5);
  var_5(var_12,pFVar1);
  pFVar1 = *(type_1 **)puVar2;
  var_12 = (char *)var_2(0,"  -z, --zero-terminated    line delimiter is NUL, not newline\n",5);
  var_5(var_12,pFVar1);
  pFVar1 = *(type_1 **)puVar2;
  var_12 = (char *)var_2(0,"      --help     display this help and exit\n",5);
  var_5(var_12,pFVar1);
  pFVar1 = *(type_1 **)puVar2;
  var_12 = (char *)var_2(0,"      --version  output version information and exit\n",5);
  var_5(var_12,pFVar1);
  pFVar1 = *(type_1 **)puVar2;
  var_12 = (char *)var_2(0,
                             "\nUse one, and only one of -b, -c or -f.  Each LIST is made up of one\nrange, or many ranges separated by commas.  Selected input is written\nin the same order that it is read, and is written exactly once.\n"
                             ,5);
  var_14 = &DAT_0001801f;
  var_5(var_12,pFVar1);
  pFVar1 = *(type_1 **)puVar2;
  var_12 = (char *)var_2(0,
                             "Each range is one of:\n\n  N     N\'th byte, character or field, counted from 1\n  N-    from N\'th byte, character or field, to end of line\n  N-M   from N\'th to M\'th (included) byte, character or field\n  -M    from first to M\'th (included) byte, character or field\n"
                             ,5);
  var_5(var_12,pFVar1);
  type_4[0].program = "[";
  type_4[6].program = (char *)0x0;
  type_4[0].node = "test invocation";
  type_4[1].program = "coreutils";
  type_4[1].node = "Multi-call invocation";
  type_4[3].program = "sha256sum";
  type_4[2].program = "sha224sum";
  type_4[4].program = "sha384sum";
  type_4[2].node = "sha2 utilities";
  type_4[3].node = "sha2 utilities";
  type_4[4].node = "sha2 utilities";
  type_4[5].node = "sha2 utilities";
  type_4[5].program = "sha512sum";
  type_4[6].node = (char *)0x0;
  piVar5 = type_4;
  var_8 = extraout_ECX;
  do {
    var_6 = piVar5;
    piVar5 = var_6 + 1;
    var_7 = (type_5 *)piVar5->program;
    var_10 = false;
    bVar12 = var_7 == (type_5 *)0x0;
    if (bVar12) break;
    var_8 = 4;
    var_9 = var_14;
    do {
      if (var_8 == 0) break;
      var_8 = var_8 + -1;
      var_10 = *var_9 < *var_7;
      bVar12 = *var_9 == *var_7;
      var_9 = var_9 + (type_6)bVar13 * -2 + 1;
      var_7 = var_7 + (type_6)bVar13 * -2 + 1;
    } while (bVar12);
  } while ((!var_10 && !bVar12) != var_10);
  var_7 = (type_5 *)var_6[1].node;
  if (var_7 == (type_5 *)0x0) {
    uVar3 = var_2(0,"\n%s online help: <%s>\n",5,var_8);
    var_4(1,uVar3,"GNU coreutils","https://www.gnu.org/software/coreutils/");
    var_12 = var_11(5,(char *)0x0);
    if ((var_12 != (char *)0x0) && (var_12 = (char *)var_13(var_12,"en_",3), var_12 != (char *)0x0)
       ) goto LAB_00012719;
    uVar3 = var_2(0,"Full documentation at: <%s%s>\n",5,0);
    var_12 = " invocation";
    var_4(1,uVar3,"https://www.gnu.org/software/coreutils/",&DAT_0001801f);
  }
  else {
    uVar3 = var_2(0,"\n%s online help: <%s>\n",5,var_8);
    var_4(1,uVar3,"GNU coreutils","https://www.gnu.org/software/coreutils/");
    var_12 = var_11(5,(char *)0x0);
    var_14 = var_7;
    if ((var_12 != (char *)0x0) && (var_12 = (char *)var_13(var_12,"en_",3), var_12 != (char *)0x0)
       ) {
LAB_00012719:
      uVar3 = var_2(0,"Report %s translation bugs to <https://translationproject.org/team/>\n",5
                        ,var_12);
      var_12 = (char *)var_4(1,uVar3,&DAT_0001801f);
    }
    uVar3 = var_2(0,"Full documentation at: <%s%s>\n",5,var_12);
    var_4(1,uVar3,"https://www.gnu.org/software/coreutils/",&DAT_0001801f);
    if (var_14 == &DAT_0001801f) {
      var_12 = " invocation";
    }
    else {
      var_12 = "";
    }
  }
  uVar3 = var_2(0,"or available locally via: info \'(coreutils) %s%s\'\n",5,&DAT_0001801f);
  var_4(1,uVar3,var_14,var_12);
LAB_000123b3:
                    /* WARNING: Subroutine does not return */
  var_15(var_1);
}


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

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

void MASKED(int param_1)

{
  FILE *pFVar1;
  undefined *puVar2;
  undefined4 uVar3;
  char *pcVar4;
  undefined **ppuVar5;
  undefined4 uVar7;
  int extraout_ECX;
  int iVar8;
  byte *pbVar9;
  byte *pbVar10;
  byte *pbVar11;
  int in_GS_OFFSET;
  bool bVar12;
  bool bVar13;
  byte bVar14;
  undefined *local_58;
  char *local_54;
  char *local_50 [5];
  char *local_3c;
  char *local_38;
  char *local_34;
  char *local_30;
  char *local_2c;
  undefined4 local_28;
  undefined4 local_24;
  undefined4 local_20;
  undefined4 uStack_14;
  undefined **ppuVar6;
  
  uVar7 = DAT_0001d1b8;
  bVar14 = 0;
  uStack_14 = 0x12369;
  local_20 = *(undefined4 *)(in_GS_OFFSET + 0x14);
  if (param_1 != 0) {
    uVar3 = dcgettext(0,"Try \'%s --help\' for more information.\n",5);
    __fprintf_chk(*(undefined4 *)PTR_stderr_0001cfc0,1,uVar3,uVar7);
    goto LAB_000123b3;
  }
  uVar3 = dcgettext(0,"Usage: %s OPTION... [FILE]...\n",5);
  __printf_chk(1,uVar3,uVar7);
  puVar2 = PTR_stdout_0001cfd4;
  pFVar1 = *(FILE **)PTR_stdout_0001cfd4;
  pcVar4 = (char *)dcgettext(0,"Print selected parts of lines from each FILE to standard output.\n",
                             5);
  fputs_unlocked(pcVar4,pFVar1);
  pFVar1 = *(FILE **)puVar2;
  pcVar4 = (char *)dcgettext(0,"\nWith no FILE, or when FILE is -, read standard input.\n",5);
  fputs_unlocked(pcVar4,pFVar1);
  pFVar1 = *(FILE **)puVar2;
  pcVar4 = (char *)dcgettext(0,
                             "\nMandatory arguments to long options are mandatory for short options too.\n"
                             ,5);
  fputs_unlocked(pcVar4,pFVar1);
  pFVar1 = *(FILE **)puVar2;
  pcVar4 = (char *)dcgettext(0,
                             "  -b, --bytes=LIST        select only these bytes\n  -c, --characters=LIST   select only these characters\n  -d, --delimiter=DELIM   use DELIM instead of TAB for field delimiter\n"
                             ,5);
  fputs_unlocked(pcVar4,pFVar1);
  pFVar1 = *(FILE **)puVar2;
  pcVar4 = (char *)dcgettext(0,
                             "  -f, --fields=LIST       select only these fields;  also print any line\n                            that contains no delimiter character, unless\n                            the -s option is specified\n  -n                      (ignored)\n"
                             ,5);
  fputs_unlocked(pcVar4,pFVar1);
  pFVar1 = *(FILE **)puVar2;
  pcVar4 = (char *)dcgettext(0,
                             "      --complement        complement the set of selected bytes, characters\n                            or fields\n"
                             ,5);
  fputs_unlocked(pcVar4,pFVar1);
  pFVar1 = *(FILE **)puVar2;
  pcVar4 = (char *)dcgettext(0,
                             "  -s, --only-delimited    do not print lines not containing delimiters\n      --output-delimiter=STRING  use STRING as the output delimiter\n                            the default is to use the input delimiter\n"
                             ,5);
  fputs_unlocked(pcVar4,pFVar1);
  pFVar1 = *(FILE **)puVar2;
  pcVar4 = (char *)dcgettext(0,"  -z, --zero-terminated    line delimiter is NUL, not newline\n",5);
  fputs_unlocked(pcVar4,pFVar1);
  pFVar1 = *(FILE **)puVar2;
  pcVar4 = (char *)dcgettext(0,"      --help     display this help and exit\n",5);
  fputs_unlocked(pcVar4,pFVar1);
  pFVar1 = *(FILE **)puVar2;
  pcVar4 = (char *)dcgettext(0,"      --version  output version information and exit\n",5);
  fputs_unlocked(pcVar4,pFVar1);
  pFVar1 = *(FILE **)puVar2;
  pcVar4 = (char *)dcgettext(0,
                             "\nUse one, and only one of -b, -c or -f.  Each LIST is made up of one\nrange, or many ranges separated by commas.  Selected input is written\nin the same order that it is read, and is written exactly once.\n"
                             ,5);
  pbVar10 = &DAT_0001801f;
  fputs_unlocked(pcVar4,pFVar1);
  pFVar1 = *(FILE **)puVar2;
  pcVar4 = (char *)dcgettext(0,
                             "Each range is one of:\n\n  N     N\'th byte, character or field, counted from 1\n  N-    from N\'th byte, character or field, to end of line\n  N-M   from N\'th to M\'th (included) byte, character or field\n  -M    from first to M\'th (included) byte, character or field\n"
                             ,5);
  fputs_unlocked(pcVar4,pFVar1);
  local_58 = &DAT_00018023;
  local_28 = 0;
  local_54 = "test invocation";
  local_50[0] = "coreutils";
  local_50[1] = "Multi-call invocation";
  local_50[4] = "sha256sum";
  local_50[2] = "sha224sum";
  local_38 = "sha384sum";
  local_50[3] = "sha2 utilities";
  local_3c = "sha2 utilities";
  local_34 = "sha2 utilities";
  local_2c = "sha2 utilities";
  local_30 = "sha512sum";
  local_24 = 0;
  ppuVar5 = &local_58;
  iVar8 = extraout_ECX;
  do {
    ppuVar6 = ppuVar5;
    ppuVar5 = ppuVar6 + 2;
    pbVar11 = *ppuVar5;
    bVar12 = false;
    bVar13 = pbVar11 == (byte *)0x0;
    if (bVar13) break;
    iVar8 = 4;
    pbVar9 = pbVar10;
    do {
      if (iVar8 == 0) break;
      iVar8 = iVar8 + -1;
      bVar12 = *pbVar9 < *pbVar11;
      bVar13 = *pbVar9 == *pbVar11;
      pbVar9 = pbVar9 + (uint)bVar14 * -2 + 1;
      pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;
    } while (bVar13);
  } while ((!bVar12 && !bVar13) != bVar12);
  pbVar11 = ppuVar6[3];
  if (pbVar11 == (byte *)0x0) {
    uVar7 = dcgettext(0,"\n%s online help: <%s>\n",5,iVar8);
    __printf_chk(1,uVar7,"GNU coreutils","https://www.gnu.org/software/coreutils/");
    pcVar4 = setlocale(5,(char *)0x0);
    if ((pcVar4 != (char *)0x0) && (pcVar4 = (char *)strncmp(pcVar4,"en_",3), pcVar4 != (char *)0x0)
       ) goto LAB_00012719;
    uVar7 = dcgettext(0,"Full documentation at: <%s%s>\n",5,0);
    pcVar4 = " invocation";
    __printf_chk(1,uVar7,"https://www.gnu.org/software/coreutils/",&DAT_0001801f);
  }
  else {
    uVar7 = dcgettext(0,"\n%s online help: <%s>\n",5,iVar8);
    __printf_chk(1,uVar7,"GNU coreutils","https://www.gnu.org/software/coreutils/");
    pcVar4 = setlocale(5,(char *)0x0);
    pbVar10 = pbVar11;
    if ((pcVar4 != (char *)0x0) && (pcVar4 = (char *)strncmp(pcVar4,"en_",3), pcVar4 != (char *)0x0)
       ) {
LAB_00012719:
      uVar7 = dcgettext(0,"Report %s translation bugs to <https://translationproject.org/team/>\n",5
                        ,pcVar4);
      pcVar4 = (char *)__printf_chk(1,uVar7,&DAT_0001801f);
    }
    uVar7 = dcgettext(0,"Full documentation at: <%s%s>\n",5,pcVar4);
    __printf_chk(1,uVar7,"https://www.gnu.org/software/coreutils/",&DAT_0001801f);
    if (pbVar10 == &DAT_0001801f) {
      pcVar4 = " invocation";
    }
    else {
      pcVar4 = "";
    }
  }
  uVar7 = dcgettext(0,"or available locally via: info \'(coreutils) %s%s\'\n",5,&DAT_0001801f);
  __printf_chk(1,uVar7,pbVar10,pcVar4);
LAB_000123b3:
                    /* WARNING: Subroutine does not return */
  exit(param_1);
}

