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

void __regparm3 usage(FILE *stream,int status)

{
  char *__format;
  char *pcVar1;
  undefined4 uVar2;
  undefined4 extraout_EDX;
  
  pcVar1 = program_name;
  __format = (char *)dcgettext(0,"Usage: %s <option(s)> <file(s)>\n",5);
  fprintf((FILE *)stream,__format,pcVar1);
  pcVar1 = (char *)dcgettext(0," Display information from object <file(s)>.\n",5);
  fprintf((FILE *)stream,pcVar1);
  pcVar1 = (char *)dcgettext(0," At least one of the following switches must be given:\n",5);
  fprintf((FILE *)stream,pcVar1);
  pcVar1 = (char *)dcgettext(0,
                             "  -a, --archive-headers    Display archive header information\n  -f, --file-headers       Display the contents of the overall file header\n  -p, --private-headers    Display object format specific file header contents\n  -P, --private=OPT,OPT... Display object format specific contents\n  -h, --[section-]headers  Display the contents of the section headers\n  -x, --all-headers        Display the contents of all headers\n  -d, --disassemble        Display assembler contents of executable sections\n  -D, --disassemble-all    Display assembler contents of all sections\n  -S, --source             Intermix source code with disassembly\n  -s, --full-contents      Display the full contents of all sections requested\n  -g, --debugging          Display debug information in object file\n  -e, --debugging-tags     Display debug information using ctags style\n  -G, --stabs              Display (in raw form) any STABS info in the file\n  -W[lLiaprmfFsoRtUuTgAckK] or\n  --dwarf[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,\n          =frames-interp,=str,=loc,=Ranges,=pubtypes,\n          =gdb_index,=trace_info,=trace_abbrev,=trace_aranges,\n          =addr,=cu_index,=links,=follow-links]\n                           Display DWARF info in the file\n  -t, --syms               Display the contents of the symbol table(s)\n  -T, --dynamic-syms       Display the contents of the dynamic symbol table\n  -r, --reloc              Display the relocation entries in the file\n  -R, --dynamic-reloc      Display the dynamic relocation entries in the file\n  @<file>                  Read options from <file>\n  -v, --version            Display this program\'s version number\n  -i, --info               List object formats and architectures supported\n  -H, --help               Display this information\n"
                             ,5);
  fprintf((FILE *)stream,pcVar1);
  if (status != 2) {
    pcVar1 = (char *)dcgettext(0,"\n The following switches are optional:\n",5,extraout_EDX);
    fprintf((FILE *)stream,pcVar1);
    pcVar1 = (char *)dcgettext(0,
                               "  -b, --target=BFDNAME           Specify the target object format as BFDNAME\n  -m, --architecture=MACHINE     Specify the target architecture as MACHINE\n  -j, --section=NAME             Only display information for section NAME\n  -M, --disassembler-options=OPT Pass text OPT on to the disassembler\n  -EB --endian=big               Assume big endian format when disassembling\n  -EL --endian=little            Assume little endian format when disassembling\n      --file-start-context       Include context from start of file (with -S)\n  -I, --include=DIR              Add DIR to search list for source files\n  -l, --line-numbers             Include line numbers and filenames in output\n  -F, --file-offsets             Include file offsets when displaying information\n  -C, --demangle[=STYLE]         Decode mangled/processed symbol names\n                                  The STYLE, if specified, can be `auto\', `gnu\',\n                                  `lucid\', `arm\', `hp\', `edg\', `gnu-v3\', `java\'\n                                  or `gnat\'\n  -w, --wide                     Format output for more than 80 columns\n  -z, --disassemble-zeroes       Do not skip blocks of zeroes when disassembling\n      --start-address=ADDR       Only process data whose address is >= ADDR\n      --stop-address=ADDR        Only process data whose address is <= ADDR\n      --prefix-addresses         Print complete address alongside disassembly\n      --[no-]show-raw-insn       Display hex alongside symbolic disassembly\n      --insn-width=WIDTH         Display WIDTH bytes on a single line for -d\n      --adjust-vma=OFFSET        Add OFFSET to all displayed section addresses\n      --special-syms             Include special symbols in symbol dumps\n      --inlines                  Print all inlines for source line (with -l)\n      --prefix=PREFIX            Add PREFIX to absolute paths for -S\n      --prefix-strip=LEVEL       Strip initial directory names for -S\n"
                               ,5);
    fprintf((FILE *)stream,pcVar1);
    pcVar1 = (char *)dcgettext(0,
                               "      --dwarf-depth=N        Do not display DIEs at depth N or greater\n      --dwarf-start=N        Display DIEs starting with N, at the same depth\n                             or deeper\n      --dwarf-check          Make additional dwarf internal consistency checks.      \n\n"
                               ,5);
    fprintf((FILE *)stream,pcVar1);
    list_supported_targets(program_name,stream);
    list_supported_architectures(program_name,stream);
    uVar2 = disassembler_usage(stream);
    if (status == 0) {
      pcVar1 = (char *)dcgettext(0,"Report bugs to %s.\n",5,uVar2);
      fprintf((FILE *)stream,pcVar1,"<http://www.sourceware.org/bugzilla/>");
    }
  }
                    /* WARNING: Subroutine does not return */
  exit(status);
}



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

void __regparm3 FUN_00014c60(FILE *param_1,int param_2)

{
  char *pcVar1;
  undefined4 uVar2;
  undefined4 extraout_EDX;
  
  uVar2 = DAT_00073ae8;
  pcVar1 = (char *)dcgettext(0,"Usage: %s <option(s)> <file(s)>\n",5);
  fprintf(param_1,pcVar1,uVar2);
  pcVar1 = (char *)dcgettext(0," Display information from object <file(s)>.\n",5);
  fprintf(param_1,pcVar1);
  pcVar1 = (char *)dcgettext(0," At least one of the following switches must be given:\n",5);
  fprintf(param_1,pcVar1);
  pcVar1 = (char *)dcgettext(0,
                             "  -a, --archive-headers    Display archive header information\n  -f, --file-headers       Display the contents of the overall file header\n  -p, --private-headers    Display object format specific file header contents\n  -P, --private=OPT,OPT... Display object format specific contents\n  -h, --[section-]headers  Display the contents of the section headers\n  -x, --all-headers        Display the contents of all headers\n  -d, --disassemble        Display assembler contents of executable sections\n  -D, --disassemble-all    Display assembler contents of all sections\n  -S, --source             Intermix source code with disassembly\n  -s, --full-contents      Display the full contents of all sections requested\n  -g, --debugging          Display debug information in object file\n  -e, --debugging-tags     Display debug information using ctags style\n  -G, --stabs              Display (in raw form) any STABS info in the file\n  -W[lLiaprmfFsoRtUuTgAckK] or\n  --dwarf[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,\n          =frames-interp,=str,=loc,=Ranges,=pubtypes,\n          =gdb_index,=trace_info,=trace_abbrev,=trace_aranges,\n          =addr,=cu_index,=links,=follow-links]\n                           Display DWARF info in the file\n  -t, --syms               Display the contents of the symbol table(s)\n  -T, --dynamic-syms       Display the contents of the dynamic symbol table\n  -r, --reloc              Display the relocation entries in the file\n  -R, --dynamic-reloc      Display the dynamic relocation entries in the file\n  @<file>                  Read options from <file>\n  -v, --version            Display this program\'s version number\n  -i, --info               List object formats and architectures supported\n  -H, --help               Display this information\n"
                             ,5);
  fprintf(param_1,pcVar1);
  if (param_2 != 2) {
    pcVar1 = (char *)dcgettext(0,"\n The following switches are optional:\n",5,extraout_EDX);
    fprintf(param_1,pcVar1);
    pcVar1 = (char *)dcgettext(0,
                               "  -b, --target=BFDNAME           Specify the target object format as BFDNAME\n  -m, --architecture=MACHINE     Specify the target architecture as MACHINE\n  -j, --section=NAME             Only display information for section NAME\n  -M, --disassembler-options=OPT Pass text OPT on to the disassembler\n  -EB --endian=big               Assume big endian format when disassembling\n  -EL --endian=little            Assume little endian format when disassembling\n      --file-start-context       Include context from start of file (with -S)\n  -I, --include=DIR              Add DIR to search list for source files\n  -l, --line-numbers             Include line numbers and filenames in output\n  -F, --file-offsets             Include file offsets when displaying information\n  -C, --demangle[=STYLE]         Decode mangled/processed symbol names\n                                  The STYLE, if specified, can be `auto\', `gnu\',\n                                  `lucid\', `arm\', `hp\', `edg\', `gnu-v3\', `java\'\n                                  or `gnat\'\n  -w, --wide                     Format output for more than 80 columns\n  -z, --disassemble-zeroes       Do not skip blocks of zeroes when disassembling\n      --start-address=ADDR       Only process data whose address is >= ADDR\n      --stop-address=ADDR        Only process data whose address is <= ADDR\n      --prefix-addresses         Print complete address alongside disassembly\n      --[no-]show-raw-insn       Display hex alongside symbolic disassembly\n      --insn-width=WIDTH         Display WIDTH bytes on a single line for -d\n      --adjust-vma=OFFSET        Add OFFSET to all displayed section addresses\n      --special-syms             Include special symbols in symbol dumps\n      --inlines                  Print all inlines for source line (with -l)\n      --prefix=PREFIX            Add PREFIX to absolute paths for -S\n      --prefix-strip=LEVEL       Strip initial directory names for -S\n"
                               ,5);
    fprintf(param_1,pcVar1);
    pcVar1 = (char *)dcgettext(0,
                               "      --dwarf-depth=N        Do not display DIEs at depth N or greater\n      --dwarf-start=N        Display DIEs starting with N, at the same depth\n                             or deeper\n      --dwarf-check          Make additional dwarf internal consistency checks.      \n\n"
                               ,5);
    fprintf(param_1,pcVar1);
    FUN_000452c0(DAT_00073ae8,param_1);
    FUN_00045380(DAT_00073ae8,param_1);
    uVar2 = disassembler_usage(param_1);
    if (param_2 == 0) {
      pcVar1 = (char *)dcgettext(0,"Report bugs to %s.\n",5,uVar2);
      fprintf(param_1,pcVar1,"<http://www.sourceware.org/bugzilla/>");
    }
  }
                    /* WARNING: Subroutine does not return */
  exit(param_2);
}


PUSH EBP
MOV EBP,EDX
PUSH EDI
PUSH ESI
MOV ESI,EAX
PUSH EBX
CALL 0x000143a0
ADD EBX,0x5b393
SUB ESP,0x20
LEA EDI,[EBX + 0x3ae8]
LEA EAX,[EBX + 0xfffdb008]
MOV EDX,dword ptr [EDI]
MOV dword ptr [ESP + 0x10],EDX
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000131f0
ADD ESP,0xc
MOV EDX,dword ptr [ESP + 0x10]
PUSH EDX
PUSH EAX
PUSH ESI
CALL 0x00013868
ADD ESP,0xc
LEA EAX,[EBX + 0xfffdb02c]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000131f0
POP ECX
POP EDX
PUSH EAX
PUSH ESI
CALL 0x00013868
ADD ESP,0xc
LEA EAX,[EBX + 0xfffdb05c]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000131f0
POP ECX
POP EDX
PUSH EAX
PUSH ESI
CALL 0x00013868
ADD ESP,0xc
LEA EAX,[EBX + 0xfffdb094]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000131f0
POP ECX
POP EDX
PUSH EAX
PUSH ESI
CALL 0x00013868
ADD ESP,0x10
CMP EBP,0x2
JNZ 0x00014d06
SUB ESP,0xc
PUSH EBP
CALL 0x000133f0
LEA EAX,[EBX + 0xfffdb79c]
PUSH EDX
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000131f0
POP ECX
POP EDX
PUSH EAX
PUSH ESI
CALL 0x00013868
ADD ESP,0xc
LEA EAX,[EBX + 0xfffdb7c4]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000131f0
POP ECX
POP EDX
PUSH EAX
PUSH ESI
CALL 0x00013868
ADD ESP,0xc
LEA EAX,[EBX + 0xfffdbf60]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000131f0
POP ECX
POP EDX
PUSH EAX
PUSH ESI
CALL 0x00013868
POP ECX
POP EAX
PUSH ESI
PUSH dword ptr [EDI]
CALL 0x000452c0
POP EAX
POP EDX
PUSH ESI
PUSH dword ptr [EDI]
CALL 0x00045380
MOV dword ptr [ESP],ESI
CALL 0x000133b0
ADD ESP,0x10
TEST EBP,EBP
JNZ 0x00014cfd
PUSH EAX
LEA EAX,[EBX + 0xfffdc4c7]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000131f0
ADD ESP,0xc
LEA EDX,[EBX + 0xfffdc074]
PUSH EDX
PUSH EAX
PUSH ESI
CALL 0x00013868
ADD ESP,0x10
JMP 0x00014cfd
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid __regparm3 FUN_00014c60(FILE *param_1,int param_2)\n\n{\n  char *pcVar1;\n  undefined4 uVar2;\n  undefined4 extraout_EDX;\n  \n  uVar2 = DAT_00073ae8;\n  pcVar1 = (char *)dcgettext(0,"Usage: %s <option(s)> <file(s)>\n",5);\n  fprintf(param_1,pcVar1,uVar2);\n  pcVar1 = (char *)dcgettext(0," Display information from object <file(s)>.\n",5);\n  fprintf(param_1,pcVar1);\n  pcVar1 = (char *)dcgettext(0," At least one of the following switches must be given:\n",5);\n  fprintf(param_1,pcVar1);\n  pcVar1 = (char *)dcgettext(0,\n                             "  -a, --archive-headers    Display archive header information\n  -f, --file-headers       Display the contents of the overall file header\n  -p, --private-headers    Display object format specific file header contents\n  -P, --private=OPT,OPT... Display object format specific contents\n  -h, --[section-]headers  Display the contents of the section headers\n  -x, --all-headers        Display the contents of all headers\n  -d, --disassemble        Display assembler contents of executable sections\n  -D, --disassemble-all    Display assembler contents of all sections\n  -S, --source             Intermix source code with disassembly\n  -s, --full-contents      Display the full contents of all sections requested\n  -g, --debugging          Display debug information in object file\n  -e, --debugging-tags     Display debug information using ctags style\n  -G, --stabs              Display (in raw form) any STABS info in the file\n  -W[lLiaprmfFsoRtUuTgAckK] or\n  --dwarf[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,\n          =frames-interp,=str,=loc,=Ranges,=pubtypes,\n          =gdb_index,=trace_info,=trace_abbrev,=trace_aranges,\n          =addr,=cu_index,=links,=follow-links]\n                           Display DWARF info in the file\n  -t, --syms               Display the contents of the symbol table(s)\n  -T, --dynamic-syms       Display the contents of the dynamic symbol table\n  -r, --reloc              Display the relocation entries in the file\n  -R, --dynamic-reloc      Display the dynamic relocation entries in the file\n  @<file>                  Read options from <file>\n  -v, --version            Display this program\'s version number\n  -i, --info               List object formats and architectures supported\n  -H, --help               Display this information\n"\n                             ,5);\n  fprintf(param_1,pcVar1);\n  if (param_2 != 2) {\n    pcVar1 = (char *)dcgettext(0,"\n The following switches are optional:\n",5,extraout_EDX);\n    fprintf(param_1,pcVar1);\n    pcVar1 = (char *)dcgettext(0,\n                               "  -b, --target=BFDNAME           Specify the target object format as BFDNAME\n  -m, --architecture=MACHINE     Specify the target architecture as MACHINE\n  -j, --section=NAME             Only display information for section NAME\n  -M, --disassembler-options=OPT Pass text OPT on to the disassembler\n  -EB --endian=big               Assume big endian format when disassembling\n  -EL --endian=little            Assume little endian format when disassembling\n      --file-start-context       Include context from start of file (with -S)\n  -I, --include=DIR              Add DIR to search list for source files\n  -l, --line-numbers             Include line numbers and filenames in output\n  -F, --file-offsets             Include file offsets when displaying information\n  -C, --demangle[=STYLE]         Decode mangled/processed symbol names\n                                  The STYLE, if specified, can be `auto\', `gnu\',\n                                  `lucid\', `arm\', `hp\', `edg\', `gnu-v3\', `java\'\n                                  or `gnat\'\n  -w, --wide                     Format output for more than 80 columns\n  -z, --disassemble-zeroes       Do not skip blocks of zeroes when disassembling\n      --start-address=ADDR       Only process data whose address is >= ADDR\n      --stop-address=ADDR        Only process data whose address is <= ADDR\n      --prefix-addresses         Print complete address alongside disassembly\n      --[no-]show-raw-insn       Display hex alongside symbolic disassembly\n      --insn-width=WIDTH         Display WIDTH bytes on a single line for -d\n      --adjust-vma=OFFSET        Add OFFSET to all displayed section addresses\n      --special-syms             Include special symbols in symbol dumps\n      --inlines                  Print all inlines for source line (with -l)\n      --prefix=PREFIX            Add PREFIX to absolute paths for -S\n      --prefix-strip=LEVEL       Strip initial directory names for -S\n"\n                               ,5);\n    fprintf(param_1,pcVar1);\n    pcVar1 = (char *)dcgettext(0,\n                               "      --dwarf-depth=N        Do not display DIEs at depth N or greater\n      --dwarf-start=N        Display DIEs starting with N, at the same depth\n                             or deeper\n      --dwarf-check          Make additional dwarf internal consistency checks.      \n\n"\n                               ,5);\n    fprintf(param_1,pcVar1);\n    FUN_000452c0(DAT_00073ae8,param_1);\n    FUN_00045380(DAT_00073ae8,param_1);\n    uVar2 = disassembler_usage(param_1);\n    if (param_2 == 0) {\n      pcVar1 = (char *)dcgettext(0,"Report bugs to %s.\n",5,uVar2);\n      fprintf(param_1,pcVar1,"<http://www.sourceware.org/bugzilla/>");\n    }\n  }\n                    /* WARNING: Subroutine does not return */\n  exit(param_2);\n}\n\n" comment (function_definition "void __regparm3 FUN_00014c60(FILE *param_1,int param_2)\n\n{\n  char *pcVar1;\n  undefined4 uVar2;\n  undefined4 extraout_EDX;\n  \n  uVar2 = DAT_00073ae8;\n  pcVar1 = (char *)dcgettext(0,"Usage: %s <option(s)> <file(s)>\n",5);\n  fprintf(param_1,pcVar1,uVar2);\n  pcVar1 = (char *)dcgettext(0," Display information from object <file(s)>.\n",5);\n  fprintf(param_1,pcVar1);\n  pcVar1 = (char *)dcgettext(0," At least one of the following switches must be given:\n",5);\n  fprintf(param_1,pcVar1);\n  pcVar1 = (char *)dcgettext(0,\n                             "  -a, --archive-headers    Display archive header information\n  -f, --file-headers       Display the contents of the overall file header\n  -p, --private-headers    Display object format specific file header contents\n  -P, --private=OPT,OPT... Display object format specific contents\n  -h, --[section-]headers  Display the contents of the section headers\n  -x, --all-headers        Display the contents of all headers\n  -d, --disassemble        Display assembler contents of executable sections\n  -D, --disassemble-all    Display assembler contents of all sections\n  -S, --source             Intermix source code with disassembly\n  -s, --full-contents      Display the full contents of all sections requested\n  -g, --debugging          Display debug information in object file\n  -e, --debugging-tags     Display debug information using ctags style\n  -G, --stabs              Display (in raw form) any STABS info in the file\n  -W[lLiaprmfFsoRtUuTgAckK] or\n  --dwarf[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,\n          =frames-interp,=str,=loc,=Ranges,=pubtypes,\n          =gdb_index,=trace_info,=trace_abbrev,=trace_aranges,\n          =addr,=cu_index,=links,=follow-links]\n                           Display DWARF info in the file\n  -t, --syms               Display the contents of the symbol table(s)\n  -T, --dynamic-syms       Display the contents of the dynamic symbol table\n  -r, --reloc              Display the relocation entries in the file\n  -R, --dynamic-reloc      Display the dynamic relocation entries in the file\n  @<file>                  Read options from <file>\n  -v, --version            Display this program\'s version number\n  -i, --info               List object formats and architectures supported\n  -H, --help               Display this information\n"\n                             ,5);\n  fprintf(param_1,pcVar1);\n  if (param_2 != 2) {\n    pcVar1 = (char *)dcgettext(0,"\n The following switches are optional:\n",5,extraout_EDX);\n    fprintf(param_1,pcVar1);\n    pcVar1 = (char *)dcgettext(0,\n                               "  -b, --target=BFDNAME           Specify the target object format as BFDNAME\n  -m, --architecture=MACHINE     Specify the target architecture as MACHINE\n  -j, --section=NAME             Only display information for section NAME\n  -M, --disassembler-options=OPT Pass text OPT on to the disassembler\n  -EB --endian=big               Assume big endian format when disassembling\n  -EL --endian=little            Assume little endian format when disassembling\n      --file-start-context       Include context from start of file (with -S)\n  -I, --include=DIR              Add DIR to search list for source files\n  -l, --line-numbers             Include line numbers and filenames in output\n  -F, --file-offsets             Include file offsets when displaying information\n  -C, --demangle[=STYLE]         Decode mangled/processed symbol names\n                                  The STYLE, if specified, can be `auto\', `gnu\',\n                                  `lucid\', `arm\', `hp\', `edg\', `gnu-v3\', `java\'\n                                  or `gnat\'\n  -w, --wide                     Format output for more than 80 columns\n  -z, --disassemble-zeroes       Do not skip blocks of zeroes when disassembling\n      --start-address=ADDR       Only process data whose address is >= ADDR\n      --stop-address=ADDR        Only process data whose address is <= ADDR\n      --prefix-addresses         Print complete address alongside disassembly\n      --[no-]show-raw-insn       Display hex alongside symbolic disassembly\n      --insn-width=WIDTH         Display WIDTH bytes on a single line for -d\n      --adjust-vma=OFFSET        Add OFFSET to all displayed section addresses\n      --special-syms             Include special symbols in symbol dumps\n      --inlines                  Print all inlines for source line (with -l)\n      --prefix=PREFIX            Add PREFIX to absolute paths for -S\n      --prefix-strip=LEVEL       Strip initial directory names for -S\n"\n                               ,5);\n    fprintf(param_1,pcVar1);\n    pcVar1 = (char *)dcgettext(0,\n                               "      --dwarf-depth=N        Do not display DIEs at depth N or greater\n      --dwarf-start=N        Display DIEs starting with N, at the same depth\n                             or deeper\n      --dwarf-check          Make additional dwarf internal consistency checks.      \n\n"\n                               ,5);\n    fprintf(param_1,pcVar1);\n    FUN_000452c0(DAT_00073ae8,param_1);\n    FUN_00045380(DAT_00073ae8,param_1);\n    uVar2 = disassembler_usage(param_1);\n    if (param_2 == 0) {\n      pcVar1 = (char *)dcgettext(0,"Report bugs to %s.\n",5,uVar2);\n      fprintf(param_1,pcVar1,"<http://www.sourceware.org/bugzilla/>");\n    }\n  }\n                    /* WARNING: Subroutine does not return */\n  exit(param_2);\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_00014c60(FILE *param_1,int param_2)" identifier (parameter_list "(FILE *param_1,int param_2)" ( (parameter_declaration "FILE *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int param_2" primitive_type identifier) ))) (compound_statement "{\n  char *pcVar1;\n  undefined4 uVar2;\n  undefined4 extraout_EDX;\n  \n  uVar2 = DAT_00073ae8;\n  pcVar1 = (char *)dcgettext(0,"Usage: %s <option(s)> <file(s)>\n",5);\n  fprintf(param_1,pcVar1,uVar2);\n  pcVar1 = (char *)dcgettext(0," Display information from object <file(s)>.\n",5);\n  fprintf(param_1,pcVar1);\n  pcVar1 = (char *)dcgettext(0," At least one of the following switches must be given:\n",5);\n  fprintf(param_1,pcVar1);\n  pcVar1 = (char *)dcgettext(0,\n                             "  -a, --archive-headers    Display archive header information\n  -f, --file-headers       Display the contents of the overall file header\n  -p, --private-headers    Display object format specific file header contents\n  -P, --private=OPT,OPT... Display object format specific contents\n  -h, --[section-]headers  Display the contents of the section headers\n  -x, --all-headers        Display the contents of all headers\n  -d, --disassemble        Display assembler contents of executable sections\n  -D, --disassemble-all    Display assembler contents of all sections\n  -S, --source             Intermix source code with disassembly\n  -s, --full-contents      Display the full contents of all sections requested\n  -g, --debugging          Display debug information in object file\n  -e, --debugging-tags     Display debug information using ctags style\n  -G, --stabs              Display (in raw form) any STABS info in the file\n  -W[lLiaprmfFsoRtUuTgAckK] or\n  --dwarf[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,\n          =frames-interp,=str,=loc,=Ranges,=pubtypes,\n          =gdb_index,=trace_info,=trace_abbrev,=trace_aranges,\n          =addr,=cu_index,=links,=follow-links]\n                           Display DWARF info in the file\n  -t, --syms               Display the contents of the symbol table(s)\n  -T, --dynamic-syms       Display the contents of the dynamic symbol table\n  -r, --reloc              Display the relocation entries in the file\n  -R, --dynamic-reloc      Display the dynamic relocation entries in the file\n  @<file>                  Read options from <file>\n  -v, --version            Display this program\'s version number\n  -i, --info               List object formats and architectures supported\n  -H, --help               Display this information\n"\n                             ,5);\n  fprintf(param_1,pcVar1);\n  if (param_2 != 2) {\n    pcVar1 = (char *)dcgettext(0,"\n The following switches are optional:\n",5,extraout_EDX);\n    fprintf(param_1,pcVar1);\n    pcVar1 = (char *)dcgettext(0,\n                               "  -b, --target=BFDNAME           Specify the target object format as BFDNAME\n  -m, --architecture=MACHINE     Specify the target architecture as MACHINE\n  -j, --section=NAME             Only display information for section NAME\n  -M, --disassembler-options=OPT Pass text OPT on to the disassembler\n  -EB --endian=big               Assume big endian format when disassembling\n  -EL --endian=little            Assume little endian format when disassembling\n      --file-start-context       Include context from start of file (with -S)\n  -I, --include=DIR              Add DIR to search list for source files\n  -l, --line-numbers             Include line numbers and filenames in output\n  -F, --file-offsets             Include file offsets when displaying information\n  -C, --demangle[=STYLE]         Decode mangled/processed symbol names\n                                  The STYLE, if specified, can be `auto\', `gnu\',\n                                  `lucid\', `arm\', `hp\', `edg\', `gnu-v3\', `java\'\n                                  or `gnat\'\n  -w, --wide                     Format output for more than 80 columns\n  -z, --disassemble-zeroes       Do not skip blocks of zeroes when disassembling\n      --start-address=ADDR       Only process data whose address is >= ADDR\n      --stop-address=ADDR        Only process data whose address is <= ADDR\n      --prefix-addresses         Print complete address alongside disassembly\n      --[no-]show-raw-insn       Display hex alongside symbolic disassembly\n      --insn-width=WIDTH         Display WIDTH bytes on a single line for -d\n      --adjust-vma=OFFSET        Add OFFSET to all displayed section addresses\n      --special-syms             Include special symbols in symbol dumps\n      --inlines                  Print all inlines for source line (with -l)\n      --prefix=PREFIX            Add PREFIX to absolute paths for -S\n      --prefix-strip=LEVEL       Strip initial directory names for -S\n"\n                               ,5);\n    fprintf(param_1,pcVar1);\n    pcVar1 = (char *)dcgettext(0,\n                               "      --dwarf-depth=N        Do not display DIEs at depth N or greater\n      --dwarf-start=N        Display DIEs starting with N, at the same depth\n                             or deeper\n      --dwarf-check          Make additional dwarf internal consistency checks.      \n\n"\n                               ,5);\n    fprintf(param_1,pcVar1);\n    FUN_000452c0(DAT_00073ae8,param_1);\n    FUN_00045380(DAT_00073ae8,param_1);\n    uVar2 = disassembler_usage(param_1);\n    if (param_2 == 0) {\n      pcVar1 = (char *)dcgettext(0,"Report bugs to %s.\n",5,uVar2);\n      fprintf(param_1,pcVar1,"<http://www.sourceware.org/bugzilla/>");\n    }\n  }\n                    /* WARNING: Subroutine does not return */\n  exit(param_2);\n}" { (declaration "char *pcVar1;" primitive_type (pointer_declarator "*pcVar1" * identifier) ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "undefined4 extraout_EDX;" type_identifier identifier ;) (expression_statement "uVar2 = DAT_00073ae8;" (assignment_expression "uVar2 = DAT_00073ae8" identifier = identifier) ;) (expression_statement "pcVar1 = (char *)dcgettext(0,"Usage: %s <option(s)> <file(s)>\n",5);" (assignment_expression "pcVar1 = (char *)dcgettext(0,"Usage: %s <option(s)> <file(s)>\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"Usage: %s <option(s)> <file(s)>\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"Usage: %s <option(s)> <file(s)>\n",5)" identifier (argument_list "(0,"Usage: %s <option(s)> <file(s)>\n",5)" ( number_literal , (string_literal ""Usage: %s <option(s)> <file(s)>\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "fprintf(param_1,pcVar1,uVar2);" (call_expression "fprintf(param_1,pcVar1,uVar2)" identifier (argument_list "(param_1,pcVar1,uVar2)" ( identifier , identifier , identifier ))) ;) (expression_statement "pcVar1 = (char *)dcgettext(0," Display information from object <file(s)>.\n",5);" (assignment_expression "pcVar1 = (char *)dcgettext(0," Display information from object <file(s)>.\n",5)" identifier = (cast_expression "(char *)dcgettext(0," Display information from object <file(s)>.\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0," Display information from object <file(s)>.\n",5)" identifier (argument_list "(0," Display information from object <file(s)>.\n",5)" ( number_literal , (string_literal "" Display information from object <file(s)>.\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "fprintf(param_1,pcVar1);" (call_expression "fprintf(param_1,pcVar1)" identifier (argument_list "(param_1,pcVar1)" ( identifier , identifier ))) ;) (expression_statement "pcVar1 = (char *)dcgettext(0," At least one of the following switches must be given:\n",5);" (assignment_expression "pcVar1 = (char *)dcgettext(0," At least one of the following switches must be given:\n",5)" identifier = (cast_expression "(char *)dcgettext(0," At least one of the following switches must be given:\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0," At least one of the following switches must be given:\n",5)" identifier (argument_list "(0," At least one of the following switches must be given:\n",5)" ( number_literal , (string_literal "" At least one of the following switches must be given:\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "fprintf(param_1,pcVar1);" (call_expression "fprintf(param_1,pcVar1)" identifier (argument_list "(param_1,pcVar1)" ( identifier , identifier ))) ;) (expression_statement "pcVar1 = (char *)dcgettext(0,\n                             "  -a, --archive-headers    Display archive header information\n  -f, --file-headers       Display the contents of the overall file header\n  -p, --private-headers    Display object format specific file header contents\n  -P, --private=OPT,OPT... Display object format specific contents\n  -h, --[section-]headers  Display the contents of the section headers\n  -x, --all-headers        Display the contents of all headers\n  -d, --disassemble        Display assembler contents of executable sections\n  -D, --disassemble-all    Display assembler contents of all sections\n  -S, --source             Intermix source code with disassembly\n  -s, --full-contents      Display the full contents of all sections requested\n  -g, --debugging          Display debug information in object file\n  -e, --debugging-tags     Display debug information using ctags style\n  -G, --stabs              Display (in raw form) any STABS info in the file\n  -W[lLiaprmfFsoRtUuTgAckK] or\n  --dwarf[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,\n          =frames-interp,=str,=loc,=Ranges,=pubtypes,\n          =gdb_index,=trace_info,=trace_abbrev,=trace_aranges,\n          =addr,=cu_index,=links,=follow-links]\n                           Display DWARF info in the file\n  -t, --syms               Display the contents of the symbol table(s)\n  -T, --dynamic-syms       Display the contents of the dynamic symbol table\n  -r, --reloc              Display the relocation entries in the file\n  -R, --dynamic-reloc      Display the dynamic relocation entries in the file\n  @<file>                  Read options from <file>\n  -v, --version            Display this program\'s version number\n  -i, --info               List object formats and architectures supported\n  -H, --help               Display this information\n"\n                             ,5);" (assignment_expression "pcVar1 = (char *)dcgettext(0,\n                             "  -a, --archive-headers    Display archive header information\n  -f, --file-headers       Display the contents of the overall file header\n  -p, --private-headers    Display object format specific file header contents\n  -P, --private=OPT,OPT... Display object format specific contents\n  -h, --[section-]headers  Display the contents of the section headers\n  -x, --all-headers        Display the contents of all headers\n  -d, --disassemble        Display assembler contents of executable sections\n  -D, --disassemble-all    Display assembler contents of all sections\n  -S, --source             Intermix source code with disassembly\n  -s, --full-contents      Display the full contents of all sections requested\n  -g, --debugging          Display debug information in object file\n  -e, --debugging-tags     Display debug information using ctags style\n  -G, --stabs              Display (in raw form) any STABS info in the file\n  -W[lLiaprmfFsoRtUuTgAckK] or\n  --dwarf[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,\n          =frames-interp,=str,=loc,=Ranges,=pubtypes,\n          =gdb_index,=trace_info,=trace_abbrev,=trace_aranges,\n          =addr,=cu_index,=links,=follow-links]\n                           Display DWARF info in the file\n  -t, --syms               Display the contents of the symbol table(s)\n  -T, --dynamic-syms       Display the contents of the dynamic symbol table\n  -r, --reloc              Display the relocation entries in the file\n  -R, --dynamic-reloc      Display the dynamic relocation entries in the file\n  @<file>                  Read options from <file>\n  -v, --version            Display this program\'s version number\n  -i, --info               List object formats and architectures supported\n  -H, --help               Display this information\n"\n                             ,5)" identifier = (cast_expression "(char *)dcgettext(0,\n                             "  -a, --archive-headers    Display archive header information\n  -f, --file-headers       Display the contents of the overall file header\n  -p, --private-headers    Display object format specific file header contents\n  -P, --private=OPT,OPT... Display object format specific contents\n  -h, --[section-]headers  Display the contents of the section headers\n  -x, --all-headers        Display the contents of all headers\n  -d, --disassemble        Display assembler contents of executable sections\n  -D, --disassemble-all    Display assembler contents of all sections\n  -S, --source             Intermix source code with disassembly\n  -s, --full-contents      Display the full contents of all sections requested\n  -g, --debugging          Display debug information in object file\n  -e, --debugging-tags     Display debug information using ctags style\n  -G, --stabs              Display (in raw form) any STABS info in the file\n  -W[lLiaprmfFsoRtUuTgAckK] or\n  --dwarf[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,\n          =frames-interp,=str,=loc,=Ranges,=pubtypes,\n          =gdb_index,=trace_info,=trace_abbrev,=trace_aranges,\n          =addr,=cu_index,=links,=follow-links]\n                           Display DWARF info in the file\n  -t, --syms               Display the contents of the symbol table(s)\n  -T, --dynamic-syms       Display the contents of the dynamic symbol table\n  -r, --reloc              Display the relocation entries in the file\n  -R, --dynamic-reloc      Display the dynamic relocation entries in the file\n  @<file>                  Read options from <file>\n  -v, --version            Display this program\'s version number\n  -i, --info               List object formats and architectures supported\n  -H, --help               Display this information\n"\n                             ,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,\n                             "  -a, --archive-headers    Display archive header information\n  -f, --file-headers       Display the contents of the overall file header\n  -p, --private-headers    Display object format specific file header contents\n  -P, --private=OPT,OPT... Display object format specific contents\n  -h, --[section-]headers  Display the contents of the section headers\n  -x, --all-headers        Display the contents of all headers\n  -d, --disassemble        Display assembler contents of executable sections\n  -D, --disassemble-all    Display assembler contents of all sections\n  -S, --source             Intermix source code with disassembly\n  -s, --full-contents      Display the full contents of all sections requested\n  -g, --debugging          Display debug information in object file\n  -e, --debugging-tags     Display debug information using ctags style\n  -G, --stabs              Display (in raw form) any STABS info in the file\n  -W[lLiaprmfFsoRtUuTgAckK] or\n  --dwarf[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,\n          =frames-interp,=str,=loc,=Ranges,=pubtypes,\n          =gdb_index,=trace_info,=trace_abbrev,=trace_aranges,\n          =addr,=cu_index,=links,=follow-links]\n                           Display DWARF info in the file\n  -t, --syms               Display the contents of the symbol table(s)\n  -T, --dynamic-syms       Display the contents of the dynamic symbol table\n  -r, --reloc              Display the relocation entries in the file\n  -R, --dynamic-reloc      Display the dynamic relocation entries in the file\n  @<file>                  Read options from <file>\n  -v, --version            Display this program\'s version number\n  -i, --info               List object formats and architectures supported\n  -H, --help               Display this information\n"\n                             ,5)" identifier (argument_list "(0,\n                             "  -a, --archive-headers    Display archive header information\n  -f, --file-headers       Display the contents of the overall file header\n  -p, --private-headers    Display object format specific file header contents\n  -P, --private=OPT,OPT... Display object format specific contents\n  -h, --[section-]headers  Display the contents of the section headers\n  -x, --all-headers        Display the contents of all headers\n  -d, --disassemble        Display assembler contents of executable sections\n  -D, --disassemble-all    Display assembler contents of all sections\n  -S, --source             Intermix source code with disassembly\n  -s, --full-contents      Display the full contents of all sections requested\n  -g, --debugging          Display debug information in object file\n  -e, --debugging-tags     Display debug information using ctags style\n  -G, --stabs              Display (in raw form) any STABS info in the file\n  -W[lLiaprmfFsoRtUuTgAckK] or\n  --dwarf[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,\n          =frames-interp,=str,=loc,=Ranges,=pubtypes,\n          =gdb_index,=trace_info,=trace_abbrev,=trace_aranges,\n          =addr,=cu_index,=links,=follow-links]\n                           Display DWARF info in the file\n  -t, --syms               Display the contents of the symbol table(s)\n  -T, --dynamic-syms       Display the contents of the dynamic symbol table\n  -r, --reloc              Display the relocation entries in the file\n  -R, --dynamic-reloc      Display the dynamic relocation entries in the file\n  @<file>                  Read options from <file>\n  -v, --version            Display this program\'s version number\n  -i, --info               List object formats and architectures supported\n  -H, --help               Display this information\n"\n                             ,5)" ( number_literal , (string_literal ""  -a, --archive-headers    Display archive header information\n  -f, --file-headers       Display the contents of the overall file header\n  -p, --private-headers    Display object format specific file header contents\n  -P, --private=OPT,OPT... Display object format specific contents\n  -h, --[section-]headers  Display the contents of the section headers\n  -x, --all-headers        Display the contents of all headers\n  -d, --disassemble        Display assembler contents of executable sections\n  -D, --disassemble-all    Display assembler contents of all sections\n  -S, --source             Intermix source code with disassembly\n  -s, --full-contents      Display the full contents of all sections requested\n  -g, --debugging          Display debug information in object file\n  -e, --debugging-tags     Display debug information using ctags style\n  -G, --stabs              Display (in raw form) any STABS info in the file\n  -W[lLiaprmfFsoRtUuTgAckK] or\n  --dwarf[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,\n          =frames-interp,=str,=loc,=Ranges,=pubtypes,\n          =gdb_index,=trace_info,=trace_abbrev,=trace_aranges,\n          =addr,=cu_index,=links,=follow-links]\n                           Display DWARF info in the file\n  -t, --syms               Display the contents of the symbol table(s)\n  -T, --dynamic-syms       Display the contents of the dynamic symbol table\n  -r, --reloc              Display the relocation entries in the file\n  -R, --dynamic-reloc      Display the dynamic relocation entries in the file\n  @<file>                  Read options from <file>\n  -v, --version            Display this program\'s version number\n  -i, --info               List object formats and architectures supported\n  -H, --help               Display this information\n"" " 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 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 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 string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "fprintf(param_1,pcVar1);" (call_expression "fprintf(param_1,pcVar1)" identifier (argument_list "(param_1,pcVar1)" ( identifier , identifier ))) ;) (if_statement "if (param_2 != 2) {\n    pcVar1 = (char *)dcgettext(0,"\n The following switches are optional:\n",5,extraout_EDX);\n    fprintf(param_1,pcVar1);\n    pcVar1 = (char *)dcgettext(0,\n                               "  -b, --target=BFDNAME           Specify the target object format as BFDNAME\n  -m, --architecture=MACHINE     Specify the target architecture as MACHINE\n  -j, --section=NAME             Only display information for section NAME\n  -M, --disassembler-options=OPT Pass text OPT on to the disassembler\n  -EB --endian=big               Assume big endian format when disassembling\n  -EL --endian=little            Assume little endian format when disassembling\n      --file-start-context       Include context from start of file (with -S)\n  -I, --include=DIR              Add DIR to search list for source files\n  -l, --line-numbers             Include line numbers and filenames in output\n  -F, --file-offsets             Include file offsets when displaying information\n  -C, --demangle[=STYLE]         Decode mangled/processed symbol names\n                                  The STYLE, if specified, can be `auto\', `gnu\',\n                                  `lucid\', `arm\', `hp\', `edg\', `gnu-v3\', `java\'\n                                  or `gnat\'\n  -w, --wide                     Format output for more than 80 columns\n  -z, --disassemble-zeroes       Do not skip blocks of zeroes when disassembling\n      --start-address=ADDR       Only process data whose address is >= ADDR\n      --stop-address=ADDR        Only process data whose address is <= ADDR\n      --prefix-addresses         Print complete address alongside disassembly\n      --[no-]show-raw-insn       Display hex alongside symbolic disassembly\n      --insn-width=WIDTH         Display WIDTH bytes on a single line for -d\n      --adjust-vma=OFFSET        Add OFFSET to all displayed section addresses\n      --special-syms             Include special symbols in symbol dumps\n      --inlines                  Print all inlines for source line (with -l)\n      --prefix=PREFIX            Add PREFIX to absolute paths for -S\n      --prefix-strip=LEVEL       Strip initial directory names for -S\n"\n                               ,5);\n    fprintf(param_1,pcVar1);\n    pcVar1 = (char *)dcgettext(0,\n                               "      --dwarf-depth=N        Do not display DIEs at depth N or greater\n      --dwarf-start=N        Display DIEs starting with N, at the same depth\n                             or deeper\n      --dwarf-check          Make additional dwarf internal consistency checks.      \n\n"\n                               ,5);\n    fprintf(param_1,pcVar1);\n    FUN_000452c0(DAT_00073ae8,param_1);\n    FUN_00045380(DAT_00073ae8,param_1);\n    uVar2 = disassembler_usage(param_1);\n    if (param_2 == 0) {\n      pcVar1 = (char *)dcgettext(0,"Report bugs to %s.\n",5,uVar2);\n      fprintf(param_1,pcVar1,"<http://www.sourceware.org/bugzilla/>");\n    }\n  }" if (parenthesized_expression "(param_2 != 2)" ( (binary_expression "param_2 != 2" identifier != number_literal) )) (compound_statement "{\n    pcVar1 = (char *)dcgettext(0,"\n The following switches are optional:\n",5,extraout_EDX);\n    fprintf(param_1,pcVar1);\n    pcVar1 = (char *)dcgettext(0,\n                               "  -b, --target=BFDNAME           Specify the target object format as BFDNAME\n  -m, --architecture=MACHINE     Specify the target architecture as MACHINE\n  -j, --section=NAME             Only display information for section NAME\n  -M, --disassembler-options=OPT Pass text OPT on to the disassembler\n  -EB --endian=big               Assume big endian format when disassembling\n  -EL --endian=little            Assume little endian format when disassembling\n      --file-start-context       Include context from start of file (with -S)\n  -I, --include=DIR              Add DIR to search list for source files\n  -l, --line-numbers             Include line numbers and filenames in output\n  -F, --file-offsets             Include file offsets when displaying information\n  -C, --demangle[=STYLE]         Decode mangled/processed symbol names\n                                  The STYLE, if specified, can be `auto\', `gnu\',\n                                  `lucid\', `arm\', `hp\', `edg\', `gnu-v3\', `java\'\n                                  or `gnat\'\n  -w, --wide                     Format output for more than 80 columns\n  -z, --disassemble-zeroes       Do not skip blocks of zeroes when disassembling\n      --start-address=ADDR       Only process data whose address is >= ADDR\n      --stop-address=ADDR        Only process data whose address is <= ADDR\n      --prefix-addresses         Print complete address alongside disassembly\n      --[no-]show-raw-insn       Display hex alongside symbolic disassembly\n      --insn-width=WIDTH         Display WIDTH bytes on a single line for -d\n      --adjust-vma=OFFSET        Add OFFSET to all displayed section addresses\n      --special-syms             Include special symbols in symbol dumps\n      --inlines                  Print all inlines for source line (with -l)\n      --prefix=PREFIX            Add PREFIX to absolute paths for -S\n      --prefix-strip=LEVEL       Strip initial directory names for -S\n"\n                               ,5);\n    fprintf(param_1,pcVar1);\n    pcVar1 = (char *)dcgettext(0,\n                               "      --dwarf-depth=N        Do not display DIEs at depth N or greater\n      --dwarf-start=N        Display DIEs starting with N, at the same depth\n                             or deeper\n      --dwarf-check          Make additional dwarf internal consistency checks.      \n\n"\n                               ,5);\n    fprintf(param_1,pcVar1);\n    FUN_000452c0(DAT_00073ae8,param_1);\n    FUN_00045380(DAT_00073ae8,param_1);\n    uVar2 = disassembler_usage(param_1);\n    if (param_2 == 0) {\n      pcVar1 = (char *)dcgettext(0,"Report bugs to %s.\n",5,uVar2);\n      fprintf(param_1,pcVar1,"<http://www.sourceware.org/bugzilla/>");\n    }\n  }" { (expression_statement "pcVar1 = (char *)dcgettext(0,"\n The following switches are optional:\n",5,extraout_EDX);" (assignment_expression "pcVar1 = (char *)dcgettext(0,"\n The following switches are optional:\n",5,extraout_EDX)" identifier = (cast_expression "(char *)dcgettext(0,"\n The following switches are optional:\n",5,extraout_EDX)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"\n The following switches are optional:\n",5,extraout_EDX)" identifier (argument_list "(0,"\n The following switches are optional:\n",5,extraout_EDX)" ( number_literal , (string_literal ""\n The following switches are optional:\n"" " escape_sequence string_content escape_sequence ") , number_literal , identifier ))))) ;) (expression_statement "fprintf(param_1,pcVar1);" (call_expression "fprintf(param_1,pcVar1)" identifier (argument_list "(param_1,pcVar1)" ( identifier , identifier ))) ;) (expression_statement "pcVar1 = (char *)dcgettext(0,\n                               "  -b, --target=BFDNAME           Specify the target object format as BFDNAME\n  -m, --architecture=MACHINE     Specify the target architecture as MACHINE\n  -j, --section=NAME             Only display information for section NAME\n  -M, --disassembler-options=OPT Pass text OPT on to the disassembler\n  -EB --endian=big               Assume big endian format when disassembling\n  -EL --endian=little            Assume little endian format when disassembling\n      --file-start-context       Include context from start of file (with -S)\n  -I, --include=DIR              Add DIR to search list for source files\n  -l, --line-numbers             Include line numbers and filenames in output\n  -F, --file-offsets             Include file offsets when displaying information\n  -C, --demangle[=STYLE]         Decode mangled/processed symbol names\n                                  The STYLE, if specified, can be `auto\', `gnu\',\n                                  `lucid\', `arm\', `hp\', `edg\', `gnu-v3\', `java\'\n                                  or `gnat\'\n  -w, --wide                     Format output for more than 80 columns\n  -z, --disassemble-zeroes       Do not skip blocks of zeroes when disassembling\n      --start-address=ADDR       Only process data whose address is >= ADDR\n      --stop-address=ADDR        Only process data whose address is <= ADDR\n      --prefix-addresses         Print complete address alongside disassembly\n      --[no-]show-raw-insn       Display hex alongside symbolic disassembly\n      --insn-width=WIDTH         Display WIDTH bytes on a single line for -d\n      --adjust-vma=OFFSET        Add OFFSET to all displayed section addresses\n      --special-syms             Include special symbols in symbol dumps\n      --inlines                  Print all inlines for source line (with -l)\n      --prefix=PREFIX            Add PREFIX to absolute paths for -S\n      --prefix-strip=LEVEL       Strip initial directory names for -S\n"\n                               ,5);" (assignment_expression "pcVar1 = (char *)dcgettext(0,\n                               "  -b, --target=BFDNAME           Specify the target object format as BFDNAME\n  -m, --architecture=MACHINE     Specify the target architecture as MACHINE\n  -j, --section=NAME             Only display information for section NAME\n  -M, --disassembler-options=OPT Pass text OPT on to the disassembler\n  -EB --endian=big               Assume big endian format when disassembling\n  -EL --endian=little            Assume little endian format when disassembling\n      --file-start-context       Include context from start of file (with -S)\n  -I, --include=DIR              Add DIR to search list for source files\n  -l, --line-numbers             Include line numbers and filenames in output\n  -F, --file-offsets             Include file offsets when displaying information\n  -C, --demangle[=STYLE]         Decode mangled/processed symbol names\n                                  The STYLE, if specified, can be `auto\', `gnu\',\n                                  `lucid\', `arm\', `hp\', `edg\', `gnu-v3\', `java\'\n                                  or `gnat\'\n  -w, --wide                     Format output for more than 80 columns\n  -z, --disassemble-zeroes       Do not skip blocks of zeroes when disassembling\n      --start-address=ADDR       Only process data whose address is >= ADDR\n      --stop-address=ADDR        Only process data whose address is <= ADDR\n      --prefix-addresses         Print complete address alongside disassembly\n      --[no-]show-raw-insn       Display hex alongside symbolic disassembly\n      --insn-width=WIDTH         Display WIDTH bytes on a single line for -d\n      --adjust-vma=OFFSET        Add OFFSET to all displayed section addresses\n      --special-syms             Include special symbols in symbol dumps\n      --inlines                  Print all inlines for source line (with -l)\n      --prefix=PREFIX            Add PREFIX to absolute paths for -S\n      --prefix-strip=LEVEL       Strip initial directory names for -S\n"\n                               ,5)" identifier = (cast_expression "(char *)dcgettext(0,\n                               "  -b, --target=BFDNAME           Specify the target object format as BFDNAME\n  -m, --architecture=MACHINE     Specify the target architecture as MACHINE\n  -j, --section=NAME             Only display information for section NAME\n  -M, --disassembler-options=OPT Pass text OPT on to the disassembler\n  -EB --endian=big               Assume big endian format when disassembling\n  -EL --endian=little            Assume little endian format when disassembling\n      --file-start-context       Include context from start of file (with -S)\n  -I, --include=DIR              Add DIR to search list for source files\n  -l, --line-numbers             Include line numbers and filenames in output\n  -F, --file-offsets             Include file offsets when displaying information\n  -C, --demangle[=STYLE]         Decode mangled/processed symbol names\n                                  The STYLE, if specified, can be `auto\', `gnu\',\n                                  `lucid\', `arm\', `hp\', `edg\', `gnu-v3\', `java\'\n                                  or `gnat\'\n  -w, --wide                     Format output for more than 80 columns\n  -z, --disassemble-zeroes       Do not skip blocks of zeroes when disassembling\n      --start-address=ADDR       Only process data whose address is >= ADDR\n      --stop-address=ADDR        Only process data whose address is <= ADDR\n      --prefix-addresses         Print complete address alongside disassembly\n      --[no-]show-raw-insn       Display hex alongside symbolic disassembly\n      --insn-width=WIDTH         Display WIDTH bytes on a single line for -d\n      --adjust-vma=OFFSET        Add OFFSET to all displayed section addresses\n      --special-syms             Include special symbols in symbol dumps\n      --inlines                  Print all inlines for source line (with -l)\n      --prefix=PREFIX            Add PREFIX to absolute paths for -S\n      --prefix-strip=LEVEL       Strip initial directory names for -S\n"\n                               ,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,\n                               "  -b, --target=BFDNAME           Specify the target object format as BFDNAME\n  -m, --architecture=MACHINE     Specify the target architecture as MACHINE\n  -j, --section=NAME             Only display information for section NAME\n  -M, --disassembler-options=OPT Pass text OPT on to the disassembler\n  -EB --endian=big               Assume big endian format when disassembling\n  -EL --endian=little            Assume little endian format when disassembling\n      --file-start-context       Include context from start of file (with -S)\n  -I, --include=DIR              Add DIR to search list for source files\n  -l, --line-numbers             Include line numbers and filenames in output\n  -F, --file-offsets             Include file offsets when displaying information\n  -C, --demangle[=STYLE]         Decode mangled/processed symbol names\n                                  The STYLE, if specified, can be `auto\', `gnu\',\n                                  `lucid\', `arm\', `hp\', `edg\', `gnu-v3\', `java\'\n                                  or `gnat\'\n  -w, --wide                     Format output for more than 80 columns\n  -z, --disassemble-zeroes       Do not skip blocks of zeroes when disassembling\n      --start-address=ADDR       Only process data whose address is >= ADDR\n      --stop-address=ADDR        Only process data whose address is <= ADDR\n      --prefix-addresses         Print complete address alongside disassembly\n      --[no-]show-raw-insn       Display hex alongside symbolic disassembly\n      --insn-width=WIDTH         Display WIDTH bytes on a single line for -d\n      --adjust-vma=OFFSET        Add OFFSET to all displayed section addresses\n      --special-syms             Include special symbols in symbol dumps\n      --inlines                  Print all inlines for source line (with -l)\n      --prefix=PREFIX            Add PREFIX to absolute paths for -S\n      --prefix-strip=LEVEL       Strip initial directory names for -S\n"\n                               ,5)" identifier (argument_list "(0,\n                               "  -b, --target=BFDNAME           Specify the target object format as BFDNAME\n  -m, --architecture=MACHINE     Specify the target architecture as MACHINE\n  -j, --section=NAME             Only display information for section NAME\n  -M, --disassembler-options=OPT Pass text OPT on to the disassembler\n  -EB --endian=big               Assume big endian format when disassembling\n  -EL --endian=little            Assume little endian format when disassembling\n      --file-start-context       Include context from start of file (with -S)\n  -I, --include=DIR              Add DIR to search list for source files\n  -l, --line-numbers             Include line numbers and filenames in output\n  -F, --file-offsets             Include file offsets when displaying information\n  -C, --demangle[=STYLE]         Decode mangled/processed symbol names\n                                  The STYLE, if specified, can be `auto\', `gnu\',\n                                  `lucid\', `arm\', `hp\', `edg\', `gnu-v3\', `java\'\n                                  or `gnat\'\n  -w, --wide                     Format output for more than 80 columns\n  -z, --disassemble-zeroes       Do not skip blocks of zeroes when disassembling\n      --start-address=ADDR       Only process data whose address is >= ADDR\n      --stop-address=ADDR        Only process data whose address is <= ADDR\n      --prefix-addresses         Print complete address alongside disassembly\n      --[no-]show-raw-insn       Display hex alongside symbolic disassembly\n      --insn-width=WIDTH         Display WIDTH bytes on a single line for -d\n      --adjust-vma=OFFSET        Add OFFSET to all displayed section addresses\n      --special-syms             Include special symbols in symbol dumps\n      --inlines                  Print all inlines for source line (with -l)\n      --prefix=PREFIX            Add PREFIX to absolute paths for -S\n      --prefix-strip=LEVEL       Strip initial directory names for -S\n"\n                               ,5)" ( number_literal , (string_literal ""  -b, --target=BFDNAME           Specify the target object format as BFDNAME\n  -m, --architecture=MACHINE     Specify the target architecture as MACHINE\n  -j, --section=NAME             Only display information for section NAME\n  -M, --disassembler-options=OPT Pass text OPT on to the disassembler\n  -EB --endian=big               Assume big endian format when disassembling\n  -EL --endian=little            Assume little endian format when disassembling\n      --file-start-context       Include context from start of file (with -S)\n  -I, --include=DIR              Add DIR to search list for source files\n  -l, --line-numbers             Include line numbers and filenames in output\n  -F, --file-offsets             Include file offsets when displaying information\n  -C, --demangle[=STYLE]         Decode mangled/processed symbol names\n                                  The STYLE, if specified, can be `auto\', `gnu\',\n                                  `lucid\', `arm\', `hp\', `edg\', `gnu-v3\', `java\'\n                                  or `gnat\'\n  -w, --wide                     Format output for more than 80 columns\n  -z, --disassemble-zeroes       Do not skip blocks of zeroes when disassembling\n      --start-address=ADDR       Only process data whose address is >= ADDR\n      --stop-address=ADDR        Only process data whose address is <= ADDR\n      --prefix-addresses         Print complete address alongside disassembly\n      --[no-]show-raw-insn       Display hex alongside symbolic disassembly\n      --insn-width=WIDTH         Display WIDTH bytes on a single line for -d\n      --adjust-vma=OFFSET        Add OFFSET to all displayed section addresses\n      --special-syms             Include special symbols in symbol dumps\n      --inlines                  Print all inlines for source line (with -l)\n      --prefix=PREFIX            Add PREFIX to absolute paths for -S\n      --prefix-strip=LEVEL       Strip initial directory names for -S\n"" " 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 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 string_content escape_sequence string_content escape_sequence escape_sequence 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 string_content escape_sequence string_content escape_sequence string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "fprintf(param_1,pcVar1);" (call_expression "fprintf(param_1,pcVar1)" identifier (argument_list "(param_1,pcVar1)" ( identifier , identifier ))) ;) (expression_statement "pcVar1 = (char *)dcgettext(0,\n                               "      --dwarf-depth=N        Do not display DIEs at depth N or greater\n      --dwarf-start=N        Display DIEs starting with N, at the same depth\n                             or deeper\n      --dwarf-check          Make additional dwarf internal consistency checks.      \n\n"\n                               ,5);" (assignment_expression "pcVar1 = (char *)dcgettext(0,\n                               "      --dwarf-depth=N        Do not display DIEs at depth N or greater\n      --dwarf-start=N        Display DIEs starting with N, at the same depth\n                             or deeper\n      --dwarf-check          Make additional dwarf internal consistency checks.      \n\n"\n                               ,5)" identifier = (cast_expression "(char *)dcgettext(0,\n                               "      --dwarf-depth=N        Do not display DIEs at depth N or greater\n      --dwarf-start=N        Display DIEs starting with N, at the same depth\n                             or deeper\n      --dwarf-check          Make additional dwarf internal consistency checks.      \n\n"\n                               ,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,\n                               "      --dwarf-depth=N        Do not display DIEs at depth N or greater\n      --dwarf-start=N        Display DIEs starting with N, at the same depth\n                             or deeper\n      --dwarf-check          Make additional dwarf internal consistency checks.      \n\n"\n                               ,5)" identifier (argument_list "(0,\n                               "      --dwarf-depth=N        Do not display DIEs at depth N or greater\n      --dwarf-start=N        Display DIEs starting with N, at the same depth\n                             or deeper\n      --dwarf-check          Make additional dwarf internal consistency checks.      \n\n"\n                               ,5)" ( number_literal , (string_literal ""      --dwarf-depth=N        Do not display DIEs at depth N or greater\n      --dwarf-start=N        Display DIEs starting with N, at the same depth\n                             or deeper\n      --dwarf-check          Make additional dwarf internal consistency checks.      \n\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence escape_sequence ") , number_literal ))))) ;) (expression_statement "fprintf(param_1,pcVar1);" (call_expression "fprintf(param_1,pcVar1)" identifier (argument_list "(param_1,pcVar1)" ( identifier , identifier ))) ;) (expression_statement "FUN_000452c0(DAT_00073ae8,param_1);" (call_expression "FUN_000452c0(DAT_00073ae8,param_1)" identifier (argument_list "(DAT_00073ae8,param_1)" ( identifier , identifier ))) ;) (expression_statement "FUN_00045380(DAT_00073ae8,param_1);" (call_expression "FUN_00045380(DAT_00073ae8,param_1)" identifier (argument_list "(DAT_00073ae8,param_1)" ( identifier , identifier ))) ;) (expression_statement "uVar2 = disassembler_usage(param_1);" (assignment_expression "uVar2 = disassembler_usage(param_1)" identifier = (call_expression "disassembler_usage(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (if_statement "if (param_2 == 0) {\n      pcVar1 = (char *)dcgettext(0,"Report bugs to %s.\n",5,uVar2);\n      fprintf(param_1,pcVar1,"<http://www.sourceware.org/bugzilla/>");\n    }" if (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) (compound_statement "{\n      pcVar1 = (char *)dcgettext(0,"Report bugs to %s.\n",5,uVar2);\n      fprintf(param_1,pcVar1,"<http://www.sourceware.org/bugzilla/>");\n    }" { (expression_statement "pcVar1 = (char *)dcgettext(0,"Report bugs to %s.\n",5,uVar2);" (assignment_expression "pcVar1 = (char *)dcgettext(0,"Report bugs to %s.\n",5,uVar2)" identifier = (cast_expression "(char *)dcgettext(0,"Report bugs to %s.\n",5,uVar2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"Report bugs to %s.\n",5,uVar2)" identifier (argument_list "(0,"Report bugs to %s.\n",5,uVar2)" ( number_literal , (string_literal ""Report bugs to %s.\n"" " string_content escape_sequence ") , number_literal , identifier ))))) ;) (expression_statement "fprintf(param_1,pcVar1,"<http://www.sourceware.org/bugzilla/>");" (call_expression "fprintf(param_1,pcVar1,"<http://www.sourceware.org/bugzilla/>")" identifier (argument_list "(param_1,pcVar1,"<http://www.sourceware.org/bugzilla/>")" ( identifier , identifier , (string_literal ""<http://www.sourceware.org/bugzilla/>"" " string_content ") ))) ;) })) })) comment (expression_statement "exit(param_2);" (call_expression "exit(param_2)" identifier (argument_list "(param_2)" ( identifier ))) ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid __regparm3 usage(FILE *stream,int status)\n\n{\n  char *__format;\n  char *pcVar1;\n  undefined4 uVar2;\n  undefined4 extraout_EDX;\n  \n  pcVar1 = program_name;\n  __format = (char *)dcgettext(0,"Usage: %s <option(s)> <file(s)>\n",5);\n  fprintf((FILE *)stream,__format,pcVar1);\n  pcVar1 = (char *)dcgettext(0," Display information from object <file(s)>.\n",5);\n  fprintf((FILE *)stream,pcVar1);\n  pcVar1 = (char *)dcgettext(0," At least one of the following switches must be given:\n",5);\n  fprintf((FILE *)stream,pcVar1);\n  pcVar1 = (char *)dcgettext(0,\n                             "  -a, --archive-headers    Display archive header information\n  -f, --file-headers       Display the contents of the overall file header\n  -p, --private-headers    Display object format specific file header contents\n  -P, --private=OPT,OPT... Display object format specific contents\n  -h, --[section-]headers  Display the contents of the section headers\n  -x, --all-headers        Display the contents of all headers\n  -d, --disassemble        Display assembler contents of executable sections\n  -D, --disassemble-all    Display assembler contents of all sections\n  -S, --source             Intermix source code with disassembly\n  -s, --full-contents      Display the full contents of all sections requested\n  -g, --debugging          Display debug information in object file\n  -e, --debugging-tags     Display debug information using ctags style\n  -G, --stabs              Display (in raw form) any STABS info in the file\n  -W[lLiaprmfFsoRtUuTgAckK] or\n  --dwarf[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,\n          =frames-interp,=str,=loc,=Ranges,=pubtypes,\n          =gdb_index,=trace_info,=trace_abbrev,=trace_aranges,\n          =addr,=cu_index,=links,=follow-links]\n                           Display DWARF info in the file\n  -t, --syms               Display the contents of the symbol table(s)\n  -T, --dynamic-syms       Display the contents of the dynamic symbol table\n  -r, --reloc              Display the relocation entries in the file\n  -R, --dynamic-reloc      Display the dynamic relocation entries in the file\n  @<file>                  Read options from <file>\n  -v, --version            Display this program\'s version number\n  -i, --info               List object formats and architectures supported\n  -H, --help               Display this information\n"\n                             ,5);\n  fprintf((FILE *)stream,pcVar1);\n  if (status != 2) {\n    pcVar1 = (char *)dcgettext(0,"\n The following switches are optional:\n",5,extraout_EDX);\n    fprintf((FILE *)stream,pcVar1);\n    pcVar1 = (char *)dcgettext(0,\n                               "  -b, --target=BFDNAME           Specify the target object format as BFDNAME\n  -m, --architecture=MACHINE     Specify the target architecture as MACHINE\n  -j, --section=NAME             Only display information for section NAME\n  -M, --disassembler-options=OPT Pass text OPT on to the disassembler\n  -EB --endian=big               Assume big endian format when disassembling\n  -EL --endian=little            Assume little endian format when disassembling\n      --file-start-context       Include context from start of file (with -S)\n  -I, --include=DIR              Add DIR to search list for source files\n  -l, --line-numbers             Include line numbers and filenames in output\n  -F, --file-offsets             Include file offsets when displaying information\n  -C, --demangle[=STYLE]         Decode mangled/processed symbol names\n                                  The STYLE, if specified, can be `auto\', `gnu\',\n                                  `lucid\', `arm\', `hp\', `edg\', `gnu-v3\', `java\'\n                                  or `gnat\'\n  -w, --wide                     Format output for more than 80 columns\n  -z, --disassemble-zeroes       Do not skip blocks of zeroes when disassembling\n      --start-address=ADDR       Only process data whose address is >= ADDR\n      --stop-address=ADDR        Only process data whose address is <= ADDR\n      --prefix-addresses         Print complete address alongside disassembly\n      --[no-]show-raw-insn       Display hex alongside symbolic disassembly\n      --insn-width=WIDTH         Display WIDTH bytes on a single line for -d\n      --adjust-vma=OFFSET        Add OFFSET to all displayed section addresses\n      --special-syms             Include special symbols in symbol dumps\n      --inlines                  Print all inlines for source line (with -l)\n      --prefix=PREFIX            Add PREFIX to absolute paths for -S\n      --prefix-strip=LEVEL       Strip initial directory names for -S\n"\n                               ,5);\n    fprintf((FILE *)stream,pcVar1);\n    pcVar1 = (char *)dcgettext(0,\n                               "      --dwarf-depth=N        Do not display DIEs at depth N or greater\n      --dwarf-start=N        Display DIEs starting with N, at the same depth\n                             or deeper\n      --dwarf-check          Make additional dwarf internal consistency checks.      \n\n"\n                               ,5);\n    fprintf((FILE *)stream,pcVar1);\n    list_supported_targets(program_name,stream);\n    list_supported_architectures(program_name,stream);\n    uVar2 = disassembler_usage(stream);\n    if (status == 0) {\n      pcVar1 = (char *)dcgettext(0,"Report bugs to %s.\n",5,uVar2);\n      fprintf((FILE *)stream,pcVar1,"<http://www.sourceware.org/bugzilla/>");\n    }\n  }\n                    /* WARNING: Subroutine does not return */\n  exit(status);\n}\n\n" comment (function_definition "void __regparm3 usage(FILE *stream,int status)\n\n{\n  char *__format;\n  char *pcVar1;\n  undefined4 uVar2;\n  undefined4 extraout_EDX;\n  \n  pcVar1 = program_name;\n  __format = (char *)dcgettext(0,"Usage: %s <option(s)> <file(s)>\n",5);\n  fprintf((FILE *)stream,__format,pcVar1);\n  pcVar1 = (char *)dcgettext(0," Display information from object <file(s)>.\n",5);\n  fprintf((FILE *)stream,pcVar1);\n  pcVar1 = (char *)dcgettext(0," At least one of the following switches must be given:\n",5);\n  fprintf((FILE *)stream,pcVar1);\n  pcVar1 = (char *)dcgettext(0,\n                             "  -a, --archive-headers    Display archive header information\n  -f, --file-headers       Display the contents of the overall file header\n  -p, --private-headers    Display object format specific file header contents\n  -P, --private=OPT,OPT... Display object format specific contents\n  -h, --[section-]headers  Display the contents of the section headers\n  -x, --all-headers        Display the contents of all headers\n  -d, --disassemble        Display assembler contents of executable sections\n  -D, --disassemble-all    Display assembler contents of all sections\n  -S, --source             Intermix source code with disassembly\n  -s, --full-contents      Display the full contents of all sections requested\n  -g, --debugging          Display debug information in object file\n  -e, --debugging-tags     Display debug information using ctags style\n  -G, --stabs              Display (in raw form) any STABS info in the file\n  -W[lLiaprmfFsoRtUuTgAckK] or\n  --dwarf[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,\n          =frames-interp,=str,=loc,=Ranges,=pubtypes,\n          =gdb_index,=trace_info,=trace_abbrev,=trace_aranges,\n          =addr,=cu_index,=links,=follow-links]\n                           Display DWARF info in the file\n  -t, --syms               Display the contents of the symbol table(s)\n  -T, --dynamic-syms       Display the contents of the dynamic symbol table\n  -r, --reloc              Display the relocation entries in the file\n  -R, --dynamic-reloc      Display the dynamic relocation entries in the file\n  @<file>                  Read options from <file>\n  -v, --version            Display this program\'s version number\n  -i, --info               List object formats and architectures supported\n  -H, --help               Display this information\n"\n                             ,5);\n  fprintf((FILE *)stream,pcVar1);\n  if (status != 2) {\n    pcVar1 = (char *)dcgettext(0,"\n The following switches are optional:\n",5,extraout_EDX);\n    fprintf((FILE *)stream,pcVar1);\n    pcVar1 = (char *)dcgettext(0,\n                               "  -b, --target=BFDNAME           Specify the target object format as BFDNAME\n  -m, --architecture=MACHINE     Specify the target architecture as MACHINE\n  -j, --section=NAME             Only display information for section NAME\n  -M, --disassembler-options=OPT Pass text OPT on to the disassembler\n  -EB --endian=big               Assume big endian format when disassembling\n  -EL --endian=little            Assume little endian format when disassembling\n      --file-start-context       Include context from start of file (with -S)\n  -I, --include=DIR              Add DIR to search list for source files\n  -l, --line-numbers             Include line numbers and filenames in output\n  -F, --file-offsets             Include file offsets when displaying information\n  -C, --demangle[=STYLE]         Decode mangled/processed symbol names\n                                  The STYLE, if specified, can be `auto\', `gnu\',\n                                  `lucid\', `arm\', `hp\', `edg\', `gnu-v3\', `java\'\n                                  or `gnat\'\n  -w, --wide                     Format output for more than 80 columns\n  -z, --disassemble-zeroes       Do not skip blocks of zeroes when disassembling\n      --start-address=ADDR       Only process data whose address is >= ADDR\n      --stop-address=ADDR        Only process data whose address is <= ADDR\n      --prefix-addresses         Print complete address alongside disassembly\n      --[no-]show-raw-insn       Display hex alongside symbolic disassembly\n      --insn-width=WIDTH         Display WIDTH bytes on a single line for -d\n      --adjust-vma=OFFSET        Add OFFSET to all displayed section addresses\n      --special-syms             Include special symbols in symbol dumps\n      --inlines                  Print all inlines for source line (with -l)\n      --prefix=PREFIX            Add PREFIX to absolute paths for -S\n      --prefix-strip=LEVEL       Strip initial directory names for -S\n"\n                               ,5);\n    fprintf((FILE *)stream,pcVar1);\n    pcVar1 = (char *)dcgettext(0,\n                               "      --dwarf-depth=N        Do not display DIEs at depth N or greater\n      --dwarf-start=N        Display DIEs starting with N, at the same depth\n                             or deeper\n      --dwarf-check          Make additional dwarf internal consistency checks.      \n\n"\n                               ,5);\n    fprintf((FILE *)stream,pcVar1);\n    list_supported_targets(program_name,stream);\n    list_supported_architectures(program_name,stream);\n    uVar2 = disassembler_usage(stream);\n    if (status == 0) {\n      pcVar1 = (char *)dcgettext(0,"Report bugs to %s.\n",5,uVar2);\n      fprintf((FILE *)stream,pcVar1,"<http://www.sourceware.org/bugzilla/>");\n    }\n  }\n                    /* WARNING: Subroutine does not return */\n  exit(status);\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "usage(FILE *stream,int status)" identifier (parameter_list "(FILE *stream,int status)" ( (parameter_declaration "FILE *stream" type_identifier (pointer_declarator "*stream" * identifier)) , (parameter_declaration "int status" primitive_type identifier) ))) (compound_statement "{\n  char *__format;\n  char *pcVar1;\n  undefined4 uVar2;\n  undefined4 extraout_EDX;\n  \n  pcVar1 = program_name;\n  __format = (char *)dcgettext(0,"Usage: %s <option(s)> <file(s)>\n",5);\n  fprintf((FILE *)stream,__format,pcVar1);\n  pcVar1 = (char *)dcgettext(0," Display information from object <file(s)>.\n",5);\n  fprintf((FILE *)stream,pcVar1);\n  pcVar1 = (char *)dcgettext(0," At least one of the following switches must be given:\n",5);\n  fprintf((FILE *)stream,pcVar1);\n  pcVar1 = (char *)dcgettext(0,\n                             "  -a, --archive-headers    Display archive header information\n  -f, --file-headers       Display the contents of the overall file header\n  -p, --private-headers    Display object format specific file header contents\n  -P, --private=OPT,OPT... Display object format specific contents\n  -h, --[section-]headers  Display the contents of the section headers\n  -x, --all-headers        Display the contents of all headers\n  -d, --disassemble        Display assembler contents of executable sections\n  -D, --disassemble-all    Display assembler contents of all sections\n  -S, --source             Intermix source code with disassembly\n  -s, --full-contents      Display the full contents of all sections requested\n  -g, --debugging          Display debug information in object file\n  -e, --debugging-tags     Display debug information using ctags style\n  -G, --stabs              Display (in raw form) any STABS info in the file\n  -W[lLiaprmfFsoRtUuTgAckK] or\n  --dwarf[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,\n          =frames-interp,=str,=loc,=Ranges,=pubtypes,\n          =gdb_index,=trace_info,=trace_abbrev,=trace_aranges,\n          =addr,=cu_index,=links,=follow-links]\n                           Display DWARF info in the file\n  -t, --syms               Display the contents of the symbol table(s)\n  -T, --dynamic-syms       Display the contents of the dynamic symbol table\n  -r, --reloc              Display the relocation entries in the file\n  -R, --dynamic-reloc      Display the dynamic relocation entries in the file\n  @<file>                  Read options from <file>\n  -v, --version            Display this program\'s version number\n  -i, --info               List object formats and architectures supported\n  -H, --help               Display this information\n"\n                             ,5);\n  fprintf((FILE *)stream,pcVar1);\n  if (status != 2) {\n    pcVar1 = (char *)dcgettext(0,"\n The following switches are optional:\n",5,extraout_EDX);\n    fprintf((FILE *)stream,pcVar1);\n    pcVar1 = (char *)dcgettext(0,\n                               "  -b, --target=BFDNAME           Specify the target object format as BFDNAME\n  -m, --architecture=MACHINE     Specify the target architecture as MACHINE\n  -j, --section=NAME             Only display information for section NAME\n  -M, --disassembler-options=OPT Pass text OPT on to the disassembler\n  -EB --endian=big               Assume big endian format when disassembling\n  -EL --endian=little            Assume little endian format when disassembling\n      --file-start-context       Include context from start of file (with -S)\n  -I, --include=DIR              Add DIR to search list for source files\n  -l, --line-numbers             Include line numbers and filenames in output\n  -F, --file-offsets             Include file offsets when displaying information\n  -C, --demangle[=STYLE]         Decode mangled/processed symbol names\n                                  The STYLE, if specified, can be `auto\', `gnu\',\n                                  `lucid\', `arm\', `hp\', `edg\', `gnu-v3\', `java\'\n                                  or `gnat\'\n  -w, --wide                     Format output for more than 80 columns\n  -z, --disassemble-zeroes       Do not skip blocks of zeroes when disassembling\n      --start-address=ADDR       Only process data whose address is >= ADDR\n      --stop-address=ADDR        Only process data whose address is <= ADDR\n      --prefix-addresses         Print complete address alongside disassembly\n      --[no-]show-raw-insn       Display hex alongside symbolic disassembly\n      --insn-width=WIDTH         Display WIDTH bytes on a single line for -d\n      --adjust-vma=OFFSET        Add OFFSET to all displayed section addresses\n      --special-syms             Include special symbols in symbol dumps\n      --inlines                  Print all inlines for source line (with -l)\n      --prefix=PREFIX            Add PREFIX to absolute paths for -S\n      --prefix-strip=LEVEL       Strip initial directory names for -S\n"\n                               ,5);\n    fprintf((FILE *)stream,pcVar1);\n    pcVar1 = (char *)dcgettext(0,\n                               "      --dwarf-depth=N        Do not display DIEs at depth N or greater\n      --dwarf-start=N        Display DIEs starting with N, at the same depth\n                             or deeper\n      --dwarf-check          Make additional dwarf internal consistency checks.      \n\n"\n                               ,5);\n    fprintf((FILE *)stream,pcVar1);\n    list_supported_targets(program_name,stream);\n    list_supported_architectures(program_name,stream);\n    uVar2 = disassembler_usage(stream);\n    if (status == 0) {\n      pcVar1 = (char *)dcgettext(0,"Report bugs to %s.\n",5,uVar2);\n      fprintf((FILE *)stream,pcVar1,"<http://www.sourceware.org/bugzilla/>");\n    }\n  }\n                    /* WARNING: Subroutine does not return */\n  exit(status);\n}" { (declaration "char *__format;" primitive_type (pointer_declarator "*__format" * identifier) ;) (declaration "char *pcVar1;" primitive_type (pointer_declarator "*pcVar1" * identifier) ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "undefined4 extraout_EDX;" type_identifier identifier ;) (expression_statement "pcVar1 = program_name;" (assignment_expression "pcVar1 = program_name" identifier = identifier) ;) (expression_statement "__format = (char *)dcgettext(0,"Usage: %s <option(s)> <file(s)>\n",5);" (assignment_expression "__format = (char *)dcgettext(0,"Usage: %s <option(s)> <file(s)>\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"Usage: %s <option(s)> <file(s)>\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"Usage: %s <option(s)> <file(s)>\n",5)" identifier (argument_list "(0,"Usage: %s <option(s)> <file(s)>\n",5)" ( number_literal , (string_literal ""Usage: %s <option(s)> <file(s)>\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "fprintf((FILE *)stream,__format,pcVar1);" (call_expression "fprintf((FILE *)stream,__format,pcVar1)" identifier (argument_list "((FILE *)stream,__format,pcVar1)" ( (cast_expression "(FILE *)stream" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier , identifier ))) ;) (expression_statement "pcVar1 = (char *)dcgettext(0," Display information from object <file(s)>.\n",5);" (assignment_expression "pcVar1 = (char *)dcgettext(0," Display information from object <file(s)>.\n",5)" identifier = (cast_expression "(char *)dcgettext(0," Display information from object <file(s)>.\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0," Display information from object <file(s)>.\n",5)" identifier (argument_list "(0," Display information from object <file(s)>.\n",5)" ( number_literal , (string_literal "" Display information from object <file(s)>.\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "fprintf((FILE *)stream,pcVar1);" (call_expression "fprintf((FILE *)stream,pcVar1)" identifier (argument_list "((FILE *)stream,pcVar1)" ( (cast_expression "(FILE *)stream" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier ))) ;) (expression_statement "pcVar1 = (char *)dcgettext(0," At least one of the following switches must be given:\n",5);" (assignment_expression "pcVar1 = (char *)dcgettext(0," At least one of the following switches must be given:\n",5)" identifier = (cast_expression "(char *)dcgettext(0," At least one of the following switches must be given:\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0," At least one of the following switches must be given:\n",5)" identifier (argument_list "(0," At least one of the following switches must be given:\n",5)" ( number_literal , (string_literal "" At least one of the following switches must be given:\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "fprintf((FILE *)stream,pcVar1);" (call_expression "fprintf((FILE *)stream,pcVar1)" identifier (argument_list "((FILE *)stream,pcVar1)" ( (cast_expression "(FILE *)stream" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier ))) ;) (expression_statement "pcVar1 = (char *)dcgettext(0,\n                             "  -a, --archive-headers    Display archive header information\n  -f, --file-headers       Display the contents of the overall file header\n  -p, --private-headers    Display object format specific file header contents\n  -P, --private=OPT,OPT... Display object format specific contents\n  -h, --[section-]headers  Display the contents of the section headers\n  -x, --all-headers        Display the contents of all headers\n  -d, --disassemble        Display assembler contents of executable sections\n  -D, --disassemble-all    Display assembler contents of all sections\n  -S, --source             Intermix source code with disassembly\n  -s, --full-contents      Display the full contents of all sections requested\n  -g, --debugging          Display debug information in object file\n  -e, --debugging-tags     Display debug information using ctags style\n  -G, --stabs              Display (in raw form) any STABS info in the file\n  -W[lLiaprmfFsoRtUuTgAckK] or\n  --dwarf[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,\n          =frames-interp,=str,=loc,=Ranges,=pubtypes,\n          =gdb_index,=trace_info,=trace_abbrev,=trace_aranges,\n          =addr,=cu_index,=links,=follow-links]\n                           Display DWARF info in the file\n  -t, --syms               Display the contents of the symbol table(s)\n  -T, --dynamic-syms       Display the contents of the dynamic symbol table\n  -r, --reloc              Display the relocation entries in the file\n  -R, --dynamic-reloc      Display the dynamic relocation entries in the file\n  @<file>                  Read options from <file>\n  -v, --version            Display this program\'s version number\n  -i, --info               List object formats and architectures supported\n  -H, --help               Display this information\n"\n                             ,5);" (assignment_expression "pcVar1 = (char *)dcgettext(0,\n                             "  -a, --archive-headers    Display archive header information\n  -f, --file-headers       Display the contents of the overall file header\n  -p, --private-headers    Display object format specific file header contents\n  -P, --private=OPT,OPT... Display object format specific contents\n  -h, --[section-]headers  Display the contents of the section headers\n  -x, --all-headers        Display the contents of all headers\n  -d, --disassemble        Display assembler contents of executable sections\n  -D, --disassemble-all    Display assembler contents of all sections\n  -S, --source             Intermix source code with disassembly\n  -s, --full-contents      Display the full contents of all sections requested\n  -g, --debugging          Display debug information in object file\n  -e, --debugging-tags     Display debug information using ctags style\n  -G, --stabs              Display (in raw form) any STABS info in the file\n  -W[lLiaprmfFsoRtUuTgAckK] or\n  --dwarf[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,\n          =frames-interp,=str,=loc,=Ranges,=pubtypes,\n          =gdb_index,=trace_info,=trace_abbrev,=trace_aranges,\n          =addr,=cu_index,=links,=follow-links]\n                           Display DWARF info in the file\n  -t, --syms               Display the contents of the symbol table(s)\n  -T, --dynamic-syms       Display the contents of the dynamic symbol table\n  -r, --reloc              Display the relocation entries in the file\n  -R, --dynamic-reloc      Display the dynamic relocation entries in the file\n  @<file>                  Read options from <file>\n  -v, --version            Display this program\'s version number\n  -i, --info               List object formats and architectures supported\n  -H, --help               Display this information\n"\n                             ,5)" identifier = (cast_expression "(char *)dcgettext(0,\n                             "  -a, --archive-headers    Display archive header information\n  -f, --file-headers       Display the contents of the overall file header\n  -p, --private-headers    Display object format specific file header contents\n  -P, --private=OPT,OPT... Display object format specific contents\n  -h, --[section-]headers  Display the contents of the section headers\n  -x, --all-headers        Display the contents of all headers\n  -d, --disassemble        Display assembler contents of executable sections\n  -D, --disassemble-all    Display assembler contents of all sections\n  -S, --source             Intermix source code with disassembly\n  -s, --full-contents      Display the full contents of all sections requested\n  -g, --debugging          Display debug information in object file\n  -e, --debugging-tags     Display debug information using ctags style\n  -G, --stabs              Display (in raw form) any STABS info in the file\n  -W[lLiaprmfFsoRtUuTgAckK] or\n  --dwarf[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,\n          =frames-interp,=str,=loc,=Ranges,=pubtypes,\n          =gdb_index,=trace_info,=trace_abbrev,=trace_aranges,\n          =addr,=cu_index,=links,=follow-links]\n                           Display DWARF info in the file\n  -t, --syms               Display the contents of the symbol table(s)\n  -T, --dynamic-syms       Display the contents of the dynamic symbol table\n  -r, --reloc              Display the relocation entries in the file\n  -R, --dynamic-reloc      Display the dynamic relocation entries in the file\n  @<file>                  Read options from <file>\n  -v, --version            Display this program\'s version number\n  -i, --info               List object formats and architectures supported\n  -H, --help               Display this information\n"\n                             ,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,\n                             "  -a, --archive-headers    Display archive header information\n  -f, --file-headers       Display the contents of the overall file header\n  -p, --private-headers    Display object format specific file header contents\n  -P, --private=OPT,OPT... Display object format specific contents\n  -h, --[section-]headers  Display the contents of the section headers\n  -x, --all-headers        Display the contents of all headers\n  -d, --disassemble        Display assembler contents of executable sections\n  -D, --disassemble-all    Display assembler contents of all sections\n  -S, --source             Intermix source code with disassembly\n  -s, --full-contents      Display the full contents of all sections requested\n  -g, --debugging          Display debug information in object file\n  -e, --debugging-tags     Display debug information using ctags style\n  -G, --stabs              Display (in raw form) any STABS info in the file\n  -W[lLiaprmfFsoRtUuTgAckK] or\n  --dwarf[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,\n          =frames-interp,=str,=loc,=Ranges,=pubtypes,\n          =gdb_index,=trace_info,=trace_abbrev,=trace_aranges,\n          =addr,=cu_index,=links,=follow-links]\n                           Display DWARF info in the file\n  -t, --syms               Display the contents of the symbol table(s)\n  -T, --dynamic-syms       Display the contents of the dynamic symbol table\n  -r, --reloc              Display the relocation entries in the file\n  -R, --dynamic-reloc      Display the dynamic relocation entries in the file\n  @<file>                  Read options from <file>\n  -v, --version            Display this program\'s version number\n  -i, --info               List object formats and architectures supported\n  -H, --help               Display this information\n"\n                             ,5)" identifier (argument_list "(0,\n                             "  -a, --archive-headers    Display archive header information\n  -f, --file-headers       Display the contents of the overall file header\n  -p, --private-headers    Display object format specific file header contents\n  -P, --private=OPT,OPT... Display object format specific contents\n  -h, --[section-]headers  Display the contents of the section headers\n  -x, --all-headers        Display the contents of all headers\n  -d, --disassemble        Display assembler contents of executable sections\n  -D, --disassemble-all    Display assembler contents of all sections\n  -S, --source             Intermix source code with disassembly\n  -s, --full-contents      Display the full contents of all sections requested\n  -g, --debugging          Display debug information in object file\n  -e, --debugging-tags     Display debug information using ctags style\n  -G, --stabs              Display (in raw form) any STABS info in the file\n  -W[lLiaprmfFsoRtUuTgAckK] or\n  --dwarf[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,\n          =frames-interp,=str,=loc,=Ranges,=pubtypes,\n          =gdb_index,=trace_info,=trace_abbrev,=trace_aranges,\n          =addr,=cu_index,=links,=follow-links]\n                           Display DWARF info in the file\n  -t, --syms               Display the contents of the symbol table(s)\n  -T, --dynamic-syms       Display the contents of the dynamic symbol table\n  -r, --reloc              Display the relocation entries in the file\n  -R, --dynamic-reloc      Display the dynamic relocation entries in the file\n  @<file>                  Read options from <file>\n  -v, --version            Display this program\'s version number\n  -i, --info               List object formats and architectures supported\n  -H, --help               Display this information\n"\n                             ,5)" ( number_literal , (string_literal ""  -a, --archive-headers    Display archive header information\n  -f, --file-headers       Display the contents of the overall file header\n  -p, --private-headers    Display object format specific file header contents\n  -P, --private=OPT,OPT... Display object format specific contents\n  -h, --[section-]headers  Display the contents of the section headers\n  -x, --all-headers        Display the contents of all headers\n  -d, --disassemble        Display assembler contents of executable sections\n  -D, --disassemble-all    Display assembler contents of all sections\n  -S, --source             Intermix source code with disassembly\n  -s, --full-contents      Display the full contents of all sections requested\n  -g, --debugging          Display debug information in object file\n  -e, --debugging-tags     Display debug information using ctags style\n  -G, --stabs              Display (in raw form) any STABS info in the file\n  -W[lLiaprmfFsoRtUuTgAckK] or\n  --dwarf[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,\n          =frames-interp,=str,=loc,=Ranges,=pubtypes,\n          =gdb_index,=trace_info,=trace_abbrev,=trace_aranges,\n          =addr,=cu_index,=links,=follow-links]\n                           Display DWARF info in the file\n  -t, --syms               Display the contents of the symbol table(s)\n  -T, --dynamic-syms       Display the contents of the dynamic symbol table\n  -r, --reloc              Display the relocation entries in the file\n  -R, --dynamic-reloc      Display the dynamic relocation entries in the file\n  @<file>                  Read options from <file>\n  -v, --version            Display this program\'s version number\n  -i, --info               List object formats and architectures supported\n  -H, --help               Display this information\n"" " 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 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 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 string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "fprintf((FILE *)stream,pcVar1);" (call_expression "fprintf((FILE *)stream,pcVar1)" identifier (argument_list "((FILE *)stream,pcVar1)" ( (cast_expression "(FILE *)stream" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier ))) ;) (if_statement "if (status != 2) {\n    pcVar1 = (char *)dcgettext(0,"\n The following switches are optional:\n",5,extraout_EDX);\n    fprintf((FILE *)stream,pcVar1);\n    pcVar1 = (char *)dcgettext(0,\n                               "  -b, --target=BFDNAME           Specify the target object format as BFDNAME\n  -m, --architecture=MACHINE     Specify the target architecture as MACHINE\n  -j, --section=NAME             Only display information for section NAME\n  -M, --disassembler-options=OPT Pass text OPT on to the disassembler\n  -EB --endian=big               Assume big endian format when disassembling\n  -EL --endian=little            Assume little endian format when disassembling\n      --file-start-context       Include context from start of file (with -S)\n  -I, --include=DIR              Add DIR to search list for source files\n  -l, --line-numbers             Include line numbers and filenames in output\n  -F, --file-offsets             Include file offsets when displaying information\n  -C, --demangle[=STYLE]         Decode mangled/processed symbol names\n                                  The STYLE, if specified, can be `auto\', `gnu\',\n                                  `lucid\', `arm\', `hp\', `edg\', `gnu-v3\', `java\'\n                                  or `gnat\'\n  -w, --wide                     Format output for more than 80 columns\n  -z, --disassemble-zeroes       Do not skip blocks of zeroes when disassembling\n      --start-address=ADDR       Only process data whose address is >= ADDR\n      --stop-address=ADDR        Only process data whose address is <= ADDR\n      --prefix-addresses         Print complete address alongside disassembly\n      --[no-]show-raw-insn       Display hex alongside symbolic disassembly\n      --insn-width=WIDTH         Display WIDTH bytes on a single line for -d\n      --adjust-vma=OFFSET        Add OFFSET to all displayed section addresses\n      --special-syms             Include special symbols in symbol dumps\n      --inlines                  Print all inlines for source line (with -l)\n      --prefix=PREFIX            Add PREFIX to absolute paths for -S\n      --prefix-strip=LEVEL       Strip initial directory names for -S\n"\n                               ,5);\n    fprintf((FILE *)stream,pcVar1);\n    pcVar1 = (char *)dcgettext(0,\n                               "      --dwarf-depth=N        Do not display DIEs at depth N or greater\n      --dwarf-start=N        Display DIEs starting with N, at the same depth\n                             or deeper\n      --dwarf-check          Make additional dwarf internal consistency checks.      \n\n"\n                               ,5);\n    fprintf((FILE *)stream,pcVar1);\n    list_supported_targets(program_name,stream);\n    list_supported_architectures(program_name,stream);\n    uVar2 = disassembler_usage(stream);\n    if (status == 0) {\n      pcVar1 = (char *)dcgettext(0,"Report bugs to %s.\n",5,uVar2);\n      fprintf((FILE *)stream,pcVar1,"<http://www.sourceware.org/bugzilla/>");\n    }\n  }" if (parenthesized_expression "(status != 2)" ( (binary_expression "status != 2" identifier != number_literal) )) (compound_statement "{\n    pcVar1 = (char *)dcgettext(0,"\n The following switches are optional:\n",5,extraout_EDX);\n    fprintf((FILE *)stream,pcVar1);\n    pcVar1 = (char *)dcgettext(0,\n                               "  -b, --target=BFDNAME           Specify the target object format as BFDNAME\n  -m, --architecture=MACHINE     Specify the target architecture as MACHINE\n  -j, --section=NAME             Only display information for section NAME\n  -M, --disassembler-options=OPT Pass text OPT on to the disassembler\n  -EB --endian=big               Assume big endian format when disassembling\n  -EL --endian=little            Assume little endian format when disassembling\n      --file-start-context       Include context from start of file (with -S)\n  -I, --include=DIR              Add DIR to search list for source files\n  -l, --line-numbers             Include line numbers and filenames in output\n  -F, --file-offsets             Include file offsets when displaying information\n  -C, --demangle[=STYLE]         Decode mangled/processed symbol names\n                                  The STYLE, if specified, can be `auto\', `gnu\',\n                                  `lucid\', `arm\', `hp\', `edg\', `gnu-v3\', `java\'\n                                  or `gnat\'\n  -w, --wide                     Format output for more than 80 columns\n  -z, --disassemble-zeroes       Do not skip blocks of zeroes when disassembling\n      --start-address=ADDR       Only process data whose address is >= ADDR\n      --stop-address=ADDR        Only process data whose address is <= ADDR\n      --prefix-addresses         Print complete address alongside disassembly\n      --[no-]show-raw-insn       Display hex alongside symbolic disassembly\n      --insn-width=WIDTH         Display WIDTH bytes on a single line for -d\n      --adjust-vma=OFFSET        Add OFFSET to all displayed section addresses\n      --special-syms             Include special symbols in symbol dumps\n      --inlines                  Print all inlines for source line (with -l)\n      --prefix=PREFIX            Add PREFIX to absolute paths for -S\n      --prefix-strip=LEVEL       Strip initial directory names for -S\n"\n                               ,5);\n    fprintf((FILE *)stream,pcVar1);\n    pcVar1 = (char *)dcgettext(0,\n                               "      --dwarf-depth=N        Do not display DIEs at depth N or greater\n      --dwarf-start=N        Display DIEs starting with N, at the same depth\n                             or deeper\n      --dwarf-check          Make additional dwarf internal consistency checks.      \n\n"\n                               ,5);\n    fprintf((FILE *)stream,pcVar1);\n    list_supported_targets(program_name,stream);\n    list_supported_architectures(program_name,stream);\n    uVar2 = disassembler_usage(stream);\n    if (status == 0) {\n      pcVar1 = (char *)dcgettext(0,"Report bugs to %s.\n",5,uVar2);\n      fprintf((FILE *)stream,pcVar1,"<http://www.sourceware.org/bugzilla/>");\n    }\n  }" { (expression_statement "pcVar1 = (char *)dcgettext(0,"\n The following switches are optional:\n",5,extraout_EDX);" (assignment_expression "pcVar1 = (char *)dcgettext(0,"\n The following switches are optional:\n",5,extraout_EDX)" identifier = (cast_expression "(char *)dcgettext(0,"\n The following switches are optional:\n",5,extraout_EDX)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"\n The following switches are optional:\n",5,extraout_EDX)" identifier (argument_list "(0,"\n The following switches are optional:\n",5,extraout_EDX)" ( number_literal , (string_literal ""\n The following switches are optional:\n"" " escape_sequence string_content escape_sequence ") , number_literal , identifier ))))) ;) (expression_statement "fprintf((FILE *)stream,pcVar1);" (call_expression "fprintf((FILE *)stream,pcVar1)" identifier (argument_list "((FILE *)stream,pcVar1)" ( (cast_expression "(FILE *)stream" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier ))) ;) (expression_statement "pcVar1 = (char *)dcgettext(0,\n                               "  -b, --target=BFDNAME           Specify the target object format as BFDNAME\n  -m, --architecture=MACHINE     Specify the target architecture as MACHINE\n  -j, --section=NAME             Only display information for section NAME\n  -M, --disassembler-options=OPT Pass text OPT on to the disassembler\n  -EB --endian=big               Assume big endian format when disassembling\n  -EL --endian=little            Assume little endian format when disassembling\n      --file-start-context       Include context from start of file (with -S)\n  -I, --include=DIR              Add DIR to search list for source files\n  -l, --line-numbers             Include line numbers and filenames in output\n  -F, --file-offsets             Include file offsets when displaying information\n  -C, --demangle[=STYLE]         Decode mangled/processed symbol names\n                                  The STYLE, if specified, can be `auto\', `gnu\',\n                                  `lucid\', `arm\', `hp\', `edg\', `gnu-v3\', `java\'\n                                  or `gnat\'\n  -w, --wide                     Format output for more than 80 columns\n  -z, --disassemble-zeroes       Do not skip blocks of zeroes when disassembling\n      --start-address=ADDR       Only process data whose address is >= ADDR\n      --stop-address=ADDR        Only process data whose address is <= ADDR\n      --prefix-addresses         Print complete address alongside disassembly\n      --[no-]show-raw-insn       Display hex alongside symbolic disassembly\n      --insn-width=WIDTH         Display WIDTH bytes on a single line for -d\n      --adjust-vma=OFFSET        Add OFFSET to all displayed section addresses\n      --special-syms             Include special symbols in symbol dumps\n      --inlines                  Print all inlines for source line (with -l)\n      --prefix=PREFIX            Add PREFIX to absolute paths for -S\n      --prefix-strip=LEVEL       Strip initial directory names for -S\n"\n                               ,5);" (assignment_expression "pcVar1 = (char *)dcgettext(0,\n                               "  -b, --target=BFDNAME           Specify the target object format as BFDNAME\n  -m, --architecture=MACHINE     Specify the target architecture as MACHINE\n  -j, --section=NAME             Only display information for section NAME\n  -M, --disassembler-options=OPT Pass text OPT on to the disassembler\n  -EB --endian=big               Assume big endian format when disassembling\n  -EL --endian=little            Assume little endian format when disassembling\n      --file-start-context       Include context from start of file (with -S)\n  -I, --include=DIR              Add DIR to search list for source files\n  -l, --line-numbers             Include line numbers and filenames in output\n  -F, --file-offsets             Include file offsets when displaying information\n  -C, --demangle[=STYLE]         Decode mangled/processed symbol names\n                                  The STYLE, if specified, can be `auto\', `gnu\',\n                                  `lucid\', `arm\', `hp\', `edg\', `gnu-v3\', `java\'\n                                  or `gnat\'\n  -w, --wide                     Format output for more than 80 columns\n  -z, --disassemble-zeroes       Do not skip blocks of zeroes when disassembling\n      --start-address=ADDR       Only process data whose address is >= ADDR\n      --stop-address=ADDR        Only process data whose address is <= ADDR\n      --prefix-addresses         Print complete address alongside disassembly\n      --[no-]show-raw-insn       Display hex alongside symbolic disassembly\n      --insn-width=WIDTH         Display WIDTH bytes on a single line for -d\n      --adjust-vma=OFFSET        Add OFFSET to all displayed section addresses\n      --special-syms             Include special symbols in symbol dumps\n      --inlines                  Print all inlines for source line (with -l)\n      --prefix=PREFIX            Add PREFIX to absolute paths for -S\n      --prefix-strip=LEVEL       Strip initial directory names for -S\n"\n                               ,5)" identifier = (cast_expression "(char *)dcgettext(0,\n                               "  -b, --target=BFDNAME           Specify the target object format as BFDNAME\n  -m, --architecture=MACHINE     Specify the target architecture as MACHINE\n  -j, --section=NAME             Only display information for section NAME\n  -M, --disassembler-options=OPT Pass text OPT on to the disassembler\n  -EB --endian=big               Assume big endian format when disassembling\n  -EL --endian=little            Assume little endian format when disassembling\n      --file-start-context       Include context from start of file (with -S)\n  -I, --include=DIR              Add DIR to search list for source files\n  -l, --line-numbers             Include line numbers and filenames in output\n  -F, --file-offsets             Include file offsets when displaying information\n  -C, --demangle[=STYLE]         Decode mangled/processed symbol names\n                                  The STYLE, if specified, can be `auto\', `gnu\',\n                                  `lucid\', `arm\', `hp\', `edg\', `gnu-v3\', `java\'\n                                  or `gnat\'\n  -w, --wide                     Format output for more than 80 columns\n  -z, --disassemble-zeroes       Do not skip blocks of zeroes when disassembling\n      --start-address=ADDR       Only process data whose address is >= ADDR\n      --stop-address=ADDR        Only process data whose address is <= ADDR\n      --prefix-addresses         Print complete address alongside disassembly\n      --[no-]show-raw-insn       Display hex alongside symbolic disassembly\n      --insn-width=WIDTH         Display WIDTH bytes on a single line for -d\n      --adjust-vma=OFFSET        Add OFFSET to all displayed section addresses\n      --special-syms             Include special symbols in symbol dumps\n      --inlines                  Print all inlines for source line (with -l)\n      --prefix=PREFIX            Add PREFIX to absolute paths for -S\n      --prefix-strip=LEVEL       Strip initial directory names for -S\n"\n                               ,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,\n                               "  -b, --target=BFDNAME           Specify the target object format as BFDNAME\n  -m, --architecture=MACHINE     Specify the target architecture as MACHINE\n  -j, --section=NAME             Only display information for section NAME\n  -M, --disassembler-options=OPT Pass text OPT on to the disassembler\n  -EB --endian=big               Assume big endian format when disassembling\n  -EL --endian=little            Assume little endian format when disassembling\n      --file-start-context       Include context from start of file (with -S)\n  -I, --include=DIR              Add DIR to search list for source files\n  -l, --line-numbers             Include line numbers and filenames in output\n  -F, --file-offsets             Include file offsets when displaying information\n  -C, --demangle[=STYLE]         Decode mangled/processed symbol names\n                                  The STYLE, if specified, can be `auto\', `gnu\',\n                                  `lucid\', `arm\', `hp\', `edg\', `gnu-v3\', `java\'\n                                  or `gnat\'\n  -w, --wide                     Format output for more than 80 columns\n  -z, --disassemble-zeroes       Do not skip blocks of zeroes when disassembling\n      --start-address=ADDR       Only process data whose address is >= ADDR\n      --stop-address=ADDR        Only process data whose address is <= ADDR\n      --prefix-addresses         Print complete address alongside disassembly\n      --[no-]show-raw-insn       Display hex alongside symbolic disassembly\n      --insn-width=WIDTH         Display WIDTH bytes on a single line for -d\n      --adjust-vma=OFFSET        Add OFFSET to all displayed section addresses\n      --special-syms             Include special symbols in symbol dumps\n      --inlines                  Print all inlines for source line (with -l)\n      --prefix=PREFIX            Add PREFIX to absolute paths for -S\n      --prefix-strip=LEVEL       Strip initial directory names for -S\n"\n                               ,5)" identifier (argument_list "(0,\n                               "  -b, --target=BFDNAME           Specify the target object format as BFDNAME\n  -m, --architecture=MACHINE     Specify the target architecture as MACHINE\n  -j, --section=NAME             Only display information for section NAME\n  -M, --disassembler-options=OPT Pass text OPT on to the disassembler\n  -EB --endian=big               Assume big endian format when disassembling\n  -EL --endian=little            Assume little endian format when disassembling\n      --file-start-context       Include context from start of file (with -S)\n  -I, --include=DIR              Add DIR to search list for source files\n  -l, --line-numbers             Include line numbers and filenames in output\n  -F, --file-offsets             Include file offsets when displaying information\n  -C, --demangle[=STYLE]         Decode mangled/processed symbol names\n                                  The STYLE, if specified, can be `auto\', `gnu\',\n                                  `lucid\', `arm\', `hp\', `edg\', `gnu-v3\', `java\'\n                                  or `gnat\'\n  -w, --wide                     Format output for more than 80 columns\n  -z, --disassemble-zeroes       Do not skip blocks of zeroes when disassembling\n      --start-address=ADDR       Only process data whose address is >= ADDR\n      --stop-address=ADDR        Only process data whose address is <= ADDR\n      --prefix-addresses         Print complete address alongside disassembly\n      --[no-]show-raw-insn       Display hex alongside symbolic disassembly\n      --insn-width=WIDTH         Display WIDTH bytes on a single line for -d\n      --adjust-vma=OFFSET        Add OFFSET to all displayed section addresses\n      --special-syms             Include special symbols in symbol dumps\n      --inlines                  Print all inlines for source line (with -l)\n      --prefix=PREFIX            Add PREFIX to absolute paths for -S\n      --prefix-strip=LEVEL       Strip initial directory names for -S\n"\n                               ,5)" ( number_literal , (string_literal ""  -b, --target=BFDNAME           Specify the target object format as BFDNAME\n  -m, --architecture=MACHINE     Specify the target architecture as MACHINE\n  -j, --section=NAME             Only display information for section NAME\n  -M, --disassembler-options=OPT Pass text OPT on to the disassembler\n  -EB --endian=big               Assume big endian format when disassembling\n  -EL --endian=little            Assume little endian format when disassembling\n      --file-start-context       Include context from start of file (with -S)\n  -I, --include=DIR              Add DIR to search list for source files\n  -l, --line-numbers             Include line numbers and filenames in output\n  -F, --file-offsets             Include file offsets when displaying information\n  -C, --demangle[=STYLE]         Decode mangled/processed symbol names\n                                  The STYLE, if specified, can be `auto\', `gnu\',\n                                  `lucid\', `arm\', `hp\', `edg\', `gnu-v3\', `java\'\n                                  or `gnat\'\n  -w, --wide                     Format output for more than 80 columns\n  -z, --disassemble-zeroes       Do not skip blocks of zeroes when disassembling\n      --start-address=ADDR       Only process data whose address is >= ADDR\n      --stop-address=ADDR        Only process data whose address is <= ADDR\n      --prefix-addresses         Print complete address alongside disassembly\n      --[no-]show-raw-insn       Display hex alongside symbolic disassembly\n      --insn-width=WIDTH         Display WIDTH bytes on a single line for -d\n      --adjust-vma=OFFSET        Add OFFSET to all displayed section addresses\n      --special-syms             Include special symbols in symbol dumps\n      --inlines                  Print all inlines for source line (with -l)\n      --prefix=PREFIX            Add PREFIX to absolute paths for -S\n      --prefix-strip=LEVEL       Strip initial directory names for -S\n"" " 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 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 string_content escape_sequence string_content escape_sequence escape_sequence 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 string_content escape_sequence string_content escape_sequence string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "fprintf((FILE *)stream,pcVar1);" (call_expression "fprintf((FILE *)stream,pcVar1)" identifier (argument_list "((FILE *)stream,pcVar1)" ( (cast_expression "(FILE *)stream" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier ))) ;) (expression_statement "pcVar1 = (char *)dcgettext(0,\n                               "      --dwarf-depth=N        Do not display DIEs at depth N or greater\n      --dwarf-start=N        Display DIEs starting with N, at the same depth\n                             or deeper\n      --dwarf-check          Make additional dwarf internal consistency checks.      \n\n"\n                               ,5);" (assignment_expression "pcVar1 = (char *)dcgettext(0,\n                               "      --dwarf-depth=N        Do not display DIEs at depth N or greater\n      --dwarf-start=N        Display DIEs starting with N, at the same depth\n                             or deeper\n      --dwarf-check          Make additional dwarf internal consistency checks.      \n\n"\n                               ,5)" identifier = (cast_expression "(char *)dcgettext(0,\n                               "      --dwarf-depth=N        Do not display DIEs at depth N or greater\n      --dwarf-start=N        Display DIEs starting with N, at the same depth\n                             or deeper\n      --dwarf-check          Make additional dwarf internal consistency checks.      \n\n"\n                               ,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,\n                               "      --dwarf-depth=N        Do not display DIEs at depth N or greater\n      --dwarf-start=N        Display DIEs starting with N, at the same depth\n                             or deeper\n      --dwarf-check          Make additional dwarf internal consistency checks.      \n\n"\n                               ,5)" identifier (argument_list "(0,\n                               "      --dwarf-depth=N        Do not display DIEs at depth N or greater\n      --dwarf-start=N        Display DIEs starting with N, at the same depth\n                             or deeper\n      --dwarf-check          Make additional dwarf internal consistency checks.      \n\n"\n                               ,5)" ( number_literal , (string_literal ""      --dwarf-depth=N        Do not display DIEs at depth N or greater\n      --dwarf-start=N        Display DIEs starting with N, at the same depth\n                             or deeper\n      --dwarf-check          Make additional dwarf internal consistency checks.      \n\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence escape_sequence ") , number_literal ))))) ;) (expression_statement "fprintf((FILE *)stream,pcVar1);" (call_expression "fprintf((FILE *)stream,pcVar1)" identifier (argument_list "((FILE *)stream,pcVar1)" ( (cast_expression "(FILE *)stream" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier ))) ;) (expression_statement "list_supported_targets(program_name,stream);" (call_expression "list_supported_targets(program_name,stream)" identifier (argument_list "(program_name,stream)" ( identifier , identifier ))) ;) (expression_statement "list_supported_architectures(program_name,stream);" (call_expression "list_supported_architectures(program_name,stream)" identifier (argument_list "(program_name,stream)" ( identifier , identifier ))) ;) (expression_statement "uVar2 = disassembler_usage(stream);" (assignment_expression "uVar2 = disassembler_usage(stream)" identifier = (call_expression "disassembler_usage(stream)" identifier (argument_list "(stream)" ( identifier )))) ;) (if_statement "if (status == 0) {\n      pcVar1 = (char *)dcgettext(0,"Report bugs to %s.\n",5,uVar2);\n      fprintf((FILE *)stream,pcVar1,"<http://www.sourceware.org/bugzilla/>");\n    }" if (parenthesized_expression "(status == 0)" ( (binary_expression "status == 0" identifier == number_literal) )) (compound_statement "{\n      pcVar1 = (char *)dcgettext(0,"Report bugs to %s.\n",5,uVar2);\n      fprintf((FILE *)stream,pcVar1,"<http://www.sourceware.org/bugzilla/>");\n    }" { (expression_statement "pcVar1 = (char *)dcgettext(0,"Report bugs to %s.\n",5,uVar2);" (assignment_expression "pcVar1 = (char *)dcgettext(0,"Report bugs to %s.\n",5,uVar2)" identifier = (cast_expression "(char *)dcgettext(0,"Report bugs to %s.\n",5,uVar2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"Report bugs to %s.\n",5,uVar2)" identifier (argument_list "(0,"Report bugs to %s.\n",5,uVar2)" ( number_literal , (string_literal ""Report bugs to %s.\n"" " string_content escape_sequence ") , number_literal , identifier ))))) ;) (expression_statement "fprintf((FILE *)stream,pcVar1,"<http://www.sourceware.org/bugzilla/>");" (call_expression "fprintf((FILE *)stream,pcVar1,"<http://www.sourceware.org/bugzilla/>")" identifier (argument_list "((FILE *)stream,pcVar1,"<http://www.sourceware.org/bugzilla/>")" ( (cast_expression "(FILE *)stream" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier , (string_literal ""<http://www.sourceware.org/bugzilla/>"" " string_content ") ))) ;) })) })) comment (expression_statement "exit(status);" (call_expression "exit(status)" identifier (argument_list "(status)" ( identifier ))) ;) })))
(translation_unit "void __regparm3 FUN_00014c60(FILE *param_1,int param_2)\n\n{\n  char *pcVar1;\n  undefined4 uVar2;\n  undefined4 extraout_EDX;\n  \n  uVar2 = DAT_00073ae8;\n  pcVar1 = (char *)dcgettext(0,"Usage: %s <option(s)> <file(s)>\n",5);\n  fprintf(param_1,pcVar1,uVar2);\n  pcVar1 = (char *)dcgettext(0," Display information from object <file(s)>.\n",5);\n  fprintf(param_1,pcVar1);\n  pcVar1 = (char *)dcgettext(0," At least one of the following switches must be given:\n",5);\n  fprintf(param_1,pcVar1);\n  pcVar1 = (char *)dcgettext(0,\n                             "  -a, --archive-headers    Display archive header information\n  -f, --file-headers       Display the contents of the overall file header\n  -p, --private-headers    Display object format specific file header contents\n  -P, --private=OPT,OPT... Display object format specific contents\n  -h, --[section-]headers  Display the contents of the section headers\n  -x, --all-headers        Display the contents of all headers\n  -d, --disassemble        Display assembler contents of executable sections\n  -D, --disassemble-all    Display assembler contents of all sections\n  -S, --source             Intermix source code with disassembly\n  -s, --full-contents      Display the full contents of all sections requested\n  -g, --debugging          Display debug information in object file\n  -e, --debugging-tags     Display debug information using ctags style\n  -G, --stabs              Display (in raw form) any STABS info in the file\n  -W[lLiaprmfFsoRtUuTgAckK] or\n  --dwarf[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,\n          =frames-interp,=str,=loc,=Ranges,=pubtypes,\n          =gdb_index,=trace_info,=trace_abbrev,=trace_aranges,\n          =addr,=cu_index,=links,=follow-links]\n                           Display DWARF info in the file\n  -t, --syms               Display the contents of the symbol table(s)\n  -T, --dynamic-syms       Display the contents of the dynamic symbol table\n  -r, --reloc              Display the relocation entries in the file\n  -R, --dynamic-reloc      Display the dynamic relocation entries in the file\n  @<file>                  Read options from <file>\n  -v, --version            Display this program\'s version number\n  -i, --info               List object formats and architectures supported\n  -H, --help               Display this information\n"\n                             ,5);\n  fprintf(param_1,pcVar1);\n  if (param_2 != 2) {\n    pcVar1 = (char *)dcgettext(0,"\n The following switches are optional:\n",5,extraout_EDX);\n    fprintf(param_1,pcVar1);\n    pcVar1 = (char *)dcgettext(0,\n                               "  -b, --target=BFDNAME           Specify the target object format as BFDNAME\n  -m, --architecture=MACHINE     Specify the target architecture as MACHINE\n  -j, --section=NAME             Only display information for section NAME\n  -M, --disassembler-options=OPT Pass text OPT on to the disassembler\n  -EB --endian=big               Assume big endian format when disassembling\n  -EL --endian=little            Assume little endian format when disassembling\n      --file-start-context       Include context from start of file (with -S)\n  -I, --include=DIR              Add DIR to search list for source files\n  -l, --line-numbers             Include line numbers and filenames in output\n  -F, --file-offsets             Include file offsets when displaying information\n  -C, --demangle[=STYLE]         Decode mangled/processed symbol names\n                                  The STYLE, if specified, can be `auto\', `gnu\',\n                                  `lucid\', `arm\', `hp\', `edg\', `gnu-v3\', `java\'\n                                  or `gnat\'\n  -w, --wide                     Format output for more than 80 columns\n  -z, --disassemble-zeroes       Do not skip blocks of zeroes when disassembling\n      --start-address=ADDR       Only process data whose address is >= ADDR\n      --stop-address=ADDR        Only process data whose address is <= ADDR\n      --prefix-addresses         Print complete address alongside disassembly\n      --[no-]show-raw-insn       Display hex alongside symbolic disassembly\n      --insn-width=WIDTH         Display WIDTH bytes on a single line for -d\n      --adjust-vma=OFFSET        Add OFFSET to all displayed section addresses\n      --special-syms             Include special symbols in symbol dumps\n      --inlines                  Print all inlines for source line (with -l)\n      --prefix=PREFIX            Add PREFIX to absolute paths for -S\n      --prefix-strip=LEVEL       Strip initial directory names for -S\n"\n                               ,5);\n    fprintf(param_1,pcVar1);\n    pcVar1 = (char *)dcgettext(0,\n                               "      --dwarf-depth=N        Do not display DIEs at depth N or greater\n      --dwarf-start=N        Display DIEs starting with N, at the same depth\n                             or deeper\n      --dwarf-check          Make additional dwarf internal consistency checks.      \n\n"\n                               ,5);\n    fprintf(param_1,pcVar1);\n    FUN_000452c0(DAT_00073ae8,param_1);\n    FUN_00045380(DAT_00073ae8,param_1);\n    uVar2 = disassembler_usage(param_1);\n    if (param_2 == 0) {\n      pcVar1 = (char *)dcgettext(0,"Report bugs to %s.\n",5,uVar2);\n      fprintf(param_1,pcVar1,"<http:\n    }\n  }\n                    \n  exit(param_2);\n}\n\n" (ERROR "void __regparm3 FUN_00014c60(FILE *param_1,int param_2)\n\n{\n  char *pcVar1;\n  undefined4 uVar2;\n  undefined4 extraout_EDX;\n  \n  uVar2 = DAT_00073ae8;\n  pcVar1 = (char *)dcgettext(0,"Usage: %s <option(s)> <file(s)>\n",5);\n  fprintf(param_1,pcVar1,uVar2);\n  pcVar1 = (char *)dcgettext(0," Display information from object <file(s)>.\n",5);\n  fprintf(param_1,pcVar1);\n  pcVar1 = (char *)dcgettext(0," At least one of the following switches must be given:\n",5);\n  fprintf(param_1,pcVar1);\n  pcVar1 = (char *)dcgettext(0,\n                             "  -a, --archive-headers    Display archive header information\n  -f, --file-headers       Display the contents of the overall file header\n  -p, --private-headers    Display object format specific file header contents\n  -P, --private=OPT,OPT... Display object format specific contents\n  -h, --[section-]headers  Display the contents of the section headers\n  -x, --all-headers        Display the contents of all headers\n  -d, --disassemble        Display assembler contents of executable sections\n  -D, --disassemble-all    Display assembler contents of all sections\n  -S, --source             Intermix source code with disassembly\n  -s, --full-contents      Display the full contents of all sections requested\n  -g, --debugging          Display debug information in object file\n  -e, --debugging-tags     Display debug information using ctags style\n  -G, --stabs              Display (in raw form) any STABS info in the file\n  -W[lLiaprmfFsoRtUuTgAckK] or\n  --dwarf[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,\n          =frames-interp,=str,=loc,=Ranges,=pubtypes,\n          =gdb_index,=trace_info,=trace_abbrev,=trace_aranges,\n          =addr,=cu_index,=links,=follow-links]\n                           Display DWARF info in the file\n  -t, --syms               Display the contents of the symbol table(s)\n  -T, --dynamic-syms       Display the contents of the dynamic symbol table\n  -r, --reloc              Display the relocation entries in the file\n  -R, --dynamic-reloc      Display the dynamic relocation entries in the file\n  @<file>                  Read options from <file>\n  -v, --version            Display this program\'s version number\n  -i, --info               List object formats and architectures supported\n  -H, --help               Display this information\n"\n                             ,5);\n  fprintf(param_1,pcVar1);\n  if (param_2 != 2) {\n    pcVar1 = (char *)dcgettext(0,"\n The following switches are optional:\n",5,extraout_EDX);\n    fprintf(param_1,pcVar1);\n    pcVar1 = (char *)dcgettext(0,\n                               "  -b, --target=BFDNAME           Specify the target object format as BFDNAME\n  -m, --architecture=MACHINE     Specify the target architecture as MACHINE\n  -j, --section=NAME             Only display information for section NAME\n  -M, --disassembler-options=OPT Pass text OPT on to the disassembler\n  -EB --endian=big               Assume big endian format when disassembling\n  -EL --endian=little            Assume little endian format when disassembling\n      --file-start-context       Include context from start of file (with -S)\n  -I, --include=DIR              Add DIR to search list for source files\n  -l, --line-numbers             Include line numbers and filenames in output\n  -F, --file-offsets             Include file offsets when displaying information\n  -C, --demangle[=STYLE]         Decode mangled/processed symbol names\n                                  The STYLE, if specified, can be `auto\', `gnu\',\n                                  `lucid\', `arm\', `hp\', `edg\', `gnu-v3\', `java\'\n                                  or `gnat\'\n  -w, --wide                     Format output for more than 80 columns\n  -z, --disassemble-zeroes       Do not skip blocks of zeroes when disassembling\n      --start-address=ADDR       Only process data whose address is >= ADDR\n      --stop-address=ADDR        Only process data whose address is <= ADDR\n      --prefix-addresses         Print complete address alongside disassembly\n      --[no-]show-raw-insn       Display hex alongside symbolic disassembly\n      --insn-width=WIDTH         Display WIDTH bytes on a single line for -d\n      --adjust-vma=OFFSET        Add OFFSET to all displayed section addresses\n      --special-syms             Include special symbols in symbol dumps\n      --inlines                  Print all inlines for source line (with -l)\n      --prefix=PREFIX            Add PREFIX to absolute paths for -S\n      --prefix-strip=LEVEL       Strip initial directory names for -S\n"\n                               ,5);\n    fprintf(param_1,pcVar1);\n    pcVar1 = (char *)dcgettext(0,\n                               "      --dwarf-depth=N        Do not display DIEs at depth N or greater\n      --dwarf-start=N        Display DIEs starting with N, at the same depth\n                             or deeper\n      --dwarf-check          Make additional dwarf internal consistency checks.      \n\n"\n                               ,5);\n    fprintf(param_1,pcVar1);\n    FUN_000452c0(DAT_00073ae8,param_1);\n    FUN_00045380(DAT_00073ae8,param_1);\n    uVar2 = disassembler_usage(param_1);\n    if (param_2 == 0) {\n      pcVar1 = (char *)dcgettext(0,"Report bugs to %s.\n",5,uVar2);\n      fprintf(param_1,pcVar1,"<http:\n    }\n  }\n                    \n  exit(param_2);\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_00014c60(FILE *param_1,int param_2)" identifier (parameter_list "(FILE *param_1,int param_2)" ( (parameter_declaration "FILE *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int param_2" primitive_type identifier) ))) { (declaration "char *pcVar1;" primitive_type (pointer_declarator "*pcVar1" * identifier) ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "undefined4 extraout_EDX;" type_identifier identifier ;) (expression_statement "uVar2 = DAT_00073ae8;" (assignment_expression "uVar2 = DAT_00073ae8" identifier = identifier) ;) (expression_statement "pcVar1 = (char *)dcgettext(0,"Usage: %s <option(s)> <file(s)>\n",5);" (assignment_expression "pcVar1 = (char *)dcgettext(0,"Usage: %s <option(s)> <file(s)>\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"Usage: %s <option(s)> <file(s)>\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"Usage: %s <option(s)> <file(s)>\n",5)" identifier (argument_list "(0,"Usage: %s <option(s)> <file(s)>\n",5)" ( number_literal , (string_literal ""Usage: %s <option(s)> <file(s)>\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "fprintf(param_1,pcVar1,uVar2);" (call_expression "fprintf(param_1,pcVar1,uVar2)" identifier (argument_list "(param_1,pcVar1,uVar2)" ( identifier , identifier , identifier ))) ;) (expression_statement "pcVar1 = (char *)dcgettext(0," Display information from object <file(s)>.\n",5);" (assignment_expression "pcVar1 = (char *)dcgettext(0," Display information from object <file(s)>.\n",5)" identifier = (cast_expression "(char *)dcgettext(0," Display information from object <file(s)>.\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0," Display information from object <file(s)>.\n",5)" identifier (argument_list "(0," Display information from object <file(s)>.\n",5)" ( number_literal , (string_literal "" Display information from object <file(s)>.\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "fprintf(param_1,pcVar1);" (call_expression "fprintf(param_1,pcVar1)" identifier (argument_list "(param_1,pcVar1)" ( identifier , identifier ))) ;) (expression_statement "pcVar1 = (char *)dcgettext(0," At least one of the following switches must be given:\n",5);" (assignment_expression "pcVar1 = (char *)dcgettext(0," At least one of the following switches must be given:\n",5)" identifier = (cast_expression "(char *)dcgettext(0," At least one of the following switches must be given:\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0," At least one of the following switches must be given:\n",5)" identifier (argument_list "(0," At least one of the following switches must be given:\n",5)" ( number_literal , (string_literal "" At least one of the following switches must be given:\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "fprintf(param_1,pcVar1);" (call_expression "fprintf(param_1,pcVar1)" identifier (argument_list "(param_1,pcVar1)" ( identifier , identifier ))) ;) (expression_statement "pcVar1 = (char *)dcgettext(0,\n                             "  -a, --archive-headers    Display archive header information\n  -f, --file-headers       Display the contents of the overall file header\n  -p, --private-headers    Display object format specific file header contents\n  -P, --private=OPT,OPT... Display object format specific contents\n  -h, --[section-]headers  Display the contents of the section headers\n  -x, --all-headers        Display the contents of all headers\n  -d, --disassemble        Display assembler contents of executable sections\n  -D, --disassemble-all    Display assembler contents of all sections\n  -S, --source             Intermix source code with disassembly\n  -s, --full-contents      Display the full contents of all sections requested\n  -g, --debugging          Display debug information in object file\n  -e, --debugging-tags     Display debug information using ctags style\n  -G, --stabs              Display (in raw form) any STABS info in the file\n  -W[lLiaprmfFsoRtUuTgAckK] or\n  --dwarf[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,\n          =frames-interp,=str,=loc,=Ranges,=pubtypes,\n          =gdb_index,=trace_info,=trace_abbrev,=trace_aranges,\n          =addr,=cu_index,=links,=follow-links]\n                           Display DWARF info in the file\n  -t, --syms               Display the contents of the symbol table(s)\n  -T, --dynamic-syms       Display the contents of the dynamic symbol table\n  -r, --reloc              Display the relocation entries in the file\n  -R, --dynamic-reloc      Display the dynamic relocation entries in the file\n  @<file>                  Read options from <file>\n  -v, --version            Display this program\'s version number\n  -i, --info               List object formats and architectures supported\n  -H, --help               Display this information\n"\n                             ,5);" (assignment_expression "pcVar1 = (char *)dcgettext(0,\n                             "  -a, --archive-headers    Display archive header information\n  -f, --file-headers       Display the contents of the overall file header\n  -p, --private-headers    Display object format specific file header contents\n  -P, --private=OPT,OPT... Display object format specific contents\n  -h, --[section-]headers  Display the contents of the section headers\n  -x, --all-headers        Display the contents of all headers\n  -d, --disassemble        Display assembler contents of executable sections\n  -D, --disassemble-all    Display assembler contents of all sections\n  -S, --source             Intermix source code with disassembly\n  -s, --full-contents      Display the full contents of all sections requested\n  -g, --debugging          Display debug information in object file\n  -e, --debugging-tags     Display debug information using ctags style\n  -G, --stabs              Display (in raw form) any STABS info in the file\n  -W[lLiaprmfFsoRtUuTgAckK] or\n  --dwarf[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,\n          =frames-interp,=str,=loc,=Ranges,=pubtypes,\n          =gdb_index,=trace_info,=trace_abbrev,=trace_aranges,\n          =addr,=cu_index,=links,=follow-links]\n                           Display DWARF info in the file\n  -t, --syms               Display the contents of the symbol table(s)\n  -T, --dynamic-syms       Display the contents of the dynamic symbol table\n  -r, --reloc              Display the relocation entries in the file\n  -R, --dynamic-reloc      Display the dynamic relocation entries in the file\n  @<file>                  Read options from <file>\n  -v, --version            Display this program\'s version number\n  -i, --info               List object formats and architectures supported\n  -H, --help               Display this information\n"\n                             ,5)" identifier = (cast_expression "(char *)dcgettext(0,\n                             "  -a, --archive-headers    Display archive header information\n  -f, --file-headers       Display the contents of the overall file header\n  -p, --private-headers    Display object format specific file header contents\n  -P, --private=OPT,OPT... Display object format specific contents\n  -h, --[section-]headers  Display the contents of the section headers\n  -x, --all-headers        Display the contents of all headers\n  -d, --disassemble        Display assembler contents of executable sections\n  -D, --disassemble-all    Display assembler contents of all sections\n  -S, --source             Intermix source code with disassembly\n  -s, --full-contents      Display the full contents of all sections requested\n  -g, --debugging          Display debug information in object file\n  -e, --debugging-tags     Display debug information using ctags style\n  -G, --stabs              Display (in raw form) any STABS info in the file\n  -W[lLiaprmfFsoRtUuTgAckK] or\n  --dwarf[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,\n          =frames-interp,=str,=loc,=Ranges,=pubtypes,\n          =gdb_index,=trace_info,=trace_abbrev,=trace_aranges,\n          =addr,=cu_index,=links,=follow-links]\n                           Display DWARF info in the file\n  -t, --syms               Display the contents of the symbol table(s)\n  -T, --dynamic-syms       Display the contents of the dynamic symbol table\n  -r, --reloc              Display the relocation entries in the file\n  -R, --dynamic-reloc      Display the dynamic relocation entries in the file\n  @<file>                  Read options from <file>\n  -v, --version            Display this program\'s version number\n  -i, --info               List object formats and architectures supported\n  -H, --help               Display this information\n"\n                             ,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,\n                             "  -a, --archive-headers    Display archive header information\n  -f, --file-headers       Display the contents of the overall file header\n  -p, --private-headers    Display object format specific file header contents\n  -P, --private=OPT,OPT... Display object format specific contents\n  -h, --[section-]headers  Display the contents of the section headers\n  -x, --all-headers        Display the contents of all headers\n  -d, --disassemble        Display assembler contents of executable sections\n  -D, --disassemble-all    Display assembler contents of all sections\n  -S, --source             Intermix source code with disassembly\n  -s, --full-contents      Display the full contents of all sections requested\n  -g, --debugging          Display debug information in object file\n  -e, --debugging-tags     Display debug information using ctags style\n  -G, --stabs              Display (in raw form) any STABS info in the file\n  -W[lLiaprmfFsoRtUuTgAckK] or\n  --dwarf[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,\n          =frames-interp,=str,=loc,=Ranges,=pubtypes,\n          =gdb_index,=trace_info,=trace_abbrev,=trace_aranges,\n          =addr,=cu_index,=links,=follow-links]\n                           Display DWARF info in the file\n  -t, --syms               Display the contents of the symbol table(s)\n  -T, --dynamic-syms       Display the contents of the dynamic symbol table\n  -r, --reloc              Display the relocation entries in the file\n  -R, --dynamic-reloc      Display the dynamic relocation entries in the file\n  @<file>                  Read options from <file>\n  -v, --version            Display this program\'s version number\n  -i, --info               List object formats and architectures supported\n  -H, --help               Display this information\n"\n                             ,5)" identifier (argument_list "(0,\n                             "  -a, --archive-headers    Display archive header information\n  -f, --file-headers       Display the contents of the overall file header\n  -p, --private-headers    Display object format specific file header contents\n  -P, --private=OPT,OPT... Display object format specific contents\n  -h, --[section-]headers  Display the contents of the section headers\n  -x, --all-headers        Display the contents of all headers\n  -d, --disassemble        Display assembler contents of executable sections\n  -D, --disassemble-all    Display assembler contents of all sections\n  -S, --source             Intermix source code with disassembly\n  -s, --full-contents      Display the full contents of all sections requested\n  -g, --debugging          Display debug information in object file\n  -e, --debugging-tags     Display debug information using ctags style\n  -G, --stabs              Display (in raw form) any STABS info in the file\n  -W[lLiaprmfFsoRtUuTgAckK] or\n  --dwarf[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,\n          =frames-interp,=str,=loc,=Ranges,=pubtypes,\n          =gdb_index,=trace_info,=trace_abbrev,=trace_aranges,\n          =addr,=cu_index,=links,=follow-links]\n                           Display DWARF info in the file\n  -t, --syms               Display the contents of the symbol table(s)\n  -T, --dynamic-syms       Display the contents of the dynamic symbol table\n  -r, --reloc              Display the relocation entries in the file\n  -R, --dynamic-reloc      Display the dynamic relocation entries in the file\n  @<file>                  Read options from <file>\n  -v, --version            Display this program\'s version number\n  -i, --info               List object formats and architectures supported\n  -H, --help               Display this information\n"\n                             ,5)" ( number_literal , (string_literal ""  -a, --archive-headers    Display archive header information\n  -f, --file-headers       Display the contents of the overall file header\n  -p, --private-headers    Display object format specific file header contents\n  -P, --private=OPT,OPT... Display object format specific contents\n  -h, --[section-]headers  Display the contents of the section headers\n  -x, --all-headers        Display the contents of all headers\n  -d, --disassemble        Display assembler contents of executable sections\n  -D, --disassemble-all    Display assembler contents of all sections\n  -S, --source             Intermix source code with disassembly\n  -s, --full-contents      Display the full contents of all sections requested\n  -g, --debugging          Display debug information in object file\n  -e, --debugging-tags     Display debug information using ctags style\n  -G, --stabs              Display (in raw form) any STABS info in the file\n  -W[lLiaprmfFsoRtUuTgAckK] or\n  --dwarf[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,\n          =frames-interp,=str,=loc,=Ranges,=pubtypes,\n          =gdb_index,=trace_info,=trace_abbrev,=trace_aranges,\n          =addr,=cu_index,=links,=follow-links]\n                           Display DWARF info in the file\n  -t, --syms               Display the contents of the symbol table(s)\n  -T, --dynamic-syms       Display the contents of the dynamic symbol table\n  -r, --reloc              Display the relocation entries in the file\n  -R, --dynamic-reloc      Display the dynamic relocation entries in the file\n  @<file>                  Read options from <file>\n  -v, --version            Display this program\'s version number\n  -i, --info               List object formats and architectures supported\n  -H, --help               Display this information\n"" " 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 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 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 string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "fprintf(param_1,pcVar1);" (call_expression "fprintf(param_1,pcVar1)" identifier (argument_list "(param_1,pcVar1)" ( identifier , identifier ))) ;) if (parenthesized_expression "(param_2 != 2)" ( (binary_expression "param_2 != 2" identifier != number_literal) )) { (expression_statement "pcVar1 = (char *)dcgettext(0,"\n The following switches are optional:\n",5,extraout_EDX);" (assignment_expression "pcVar1 = (char *)dcgettext(0,"\n The following switches are optional:\n",5,extraout_EDX)" identifier = (cast_expression "(char *)dcgettext(0,"\n The following switches are optional:\n",5,extraout_EDX)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"\n The following switches are optional:\n",5,extraout_EDX)" identifier (argument_list "(0,"\n The following switches are optional:\n",5,extraout_EDX)" ( number_literal , (string_literal ""\n The following switches are optional:\n"" " escape_sequence string_content escape_sequence ") , number_literal , identifier ))))) ;) (expression_statement "fprintf(param_1,pcVar1);" (call_expression "fprintf(param_1,pcVar1)" identifier (argument_list "(param_1,pcVar1)" ( identifier , identifier ))) ;) (expression_statement "pcVar1 = (char *)dcgettext(0,\n                               "  -b, --target=BFDNAME           Specify the target object format as BFDNAME\n  -m, --architecture=MACHINE     Specify the target architecture as MACHINE\n  -j, --section=NAME             Only display information for section NAME\n  -M, --disassembler-options=OPT Pass text OPT on to the disassembler\n  -EB --endian=big               Assume big endian format when disassembling\n  -EL --endian=little            Assume little endian format when disassembling\n      --file-start-context       Include context from start of file (with -S)\n  -I, --include=DIR              Add DIR to search list for source files\n  -l, --line-numbers             Include line numbers and filenames in output\n  -F, --file-offsets             Include file offsets when displaying information\n  -C, --demangle[=STYLE]         Decode mangled/processed symbol names\n                                  The STYLE, if specified, can be `auto\', `gnu\',\n                                  `lucid\', `arm\', `hp\', `edg\', `gnu-v3\', `java\'\n                                  or `gnat\'\n  -w, --wide                     Format output for more than 80 columns\n  -z, --disassemble-zeroes       Do not skip blocks of zeroes when disassembling\n      --start-address=ADDR       Only process data whose address is >= ADDR\n      --stop-address=ADDR        Only process data whose address is <= ADDR\n      --prefix-addresses         Print complete address alongside disassembly\n      --[no-]show-raw-insn       Display hex alongside symbolic disassembly\n      --insn-width=WIDTH         Display WIDTH bytes on a single line for -d\n      --adjust-vma=OFFSET        Add OFFSET to all displayed section addresses\n      --special-syms             Include special symbols in symbol dumps\n      --inlines                  Print all inlines for source line (with -l)\n      --prefix=PREFIX            Add PREFIX to absolute paths for -S\n      --prefix-strip=LEVEL       Strip initial directory names for -S\n"\n                               ,5);" (assignment_expression "pcVar1 = (char *)dcgettext(0,\n                               "  -b, --target=BFDNAME           Specify the target object format as BFDNAME\n  -m, --architecture=MACHINE     Specify the target architecture as MACHINE\n  -j, --section=NAME             Only display information for section NAME\n  -M, --disassembler-options=OPT Pass text OPT on to the disassembler\n  -EB --endian=big               Assume big endian format when disassembling\n  -EL --endian=little            Assume little endian format when disassembling\n      --file-start-context       Include context from start of file (with -S)\n  -I, --include=DIR              Add DIR to search list for source files\n  -l, --line-numbers             Include line numbers and filenames in output\n  -F, --file-offsets             Include file offsets when displaying information\n  -C, --demangle[=STYLE]         Decode mangled/processed symbol names\n                                  The STYLE, if specified, can be `auto\', `gnu\',\n                                  `lucid\', `arm\', `hp\', `edg\', `gnu-v3\', `java\'\n                                  or `gnat\'\n  -w, --wide                     Format output for more than 80 columns\n  -z, --disassemble-zeroes       Do not skip blocks of zeroes when disassembling\n      --start-address=ADDR       Only process data whose address is >= ADDR\n      --stop-address=ADDR        Only process data whose address is <= ADDR\n      --prefix-addresses         Print complete address alongside disassembly\n      --[no-]show-raw-insn       Display hex alongside symbolic disassembly\n      --insn-width=WIDTH         Display WIDTH bytes on a single line for -d\n      --adjust-vma=OFFSET        Add OFFSET to all displayed section addresses\n      --special-syms             Include special symbols in symbol dumps\n      --inlines                  Print all inlines for source line (with -l)\n      --prefix=PREFIX            Add PREFIX to absolute paths for -S\n      --prefix-strip=LEVEL       Strip initial directory names for -S\n"\n                               ,5)" identifier = (cast_expression "(char *)dcgettext(0,\n                               "  -b, --target=BFDNAME           Specify the target object format as BFDNAME\n  -m, --architecture=MACHINE     Specify the target architecture as MACHINE\n  -j, --section=NAME             Only display information for section NAME\n  -M, --disassembler-options=OPT Pass text OPT on to the disassembler\n  -EB --endian=big               Assume big endian format when disassembling\n  -EL --endian=little            Assume little endian format when disassembling\n      --file-start-context       Include context from start of file (with -S)\n  -I, --include=DIR              Add DIR to search list for source files\n  -l, --line-numbers             Include line numbers and filenames in output\n  -F, --file-offsets             Include file offsets when displaying information\n  -C, --demangle[=STYLE]         Decode mangled/processed symbol names\n                                  The STYLE, if specified, can be `auto\', `gnu\',\n                                  `lucid\', `arm\', `hp\', `edg\', `gnu-v3\', `java\'\n                                  or `gnat\'\n  -w, --wide                     Format output for more than 80 columns\n  -z, --disassemble-zeroes       Do not skip blocks of zeroes when disassembling\n      --start-address=ADDR       Only process data whose address is >= ADDR\n      --stop-address=ADDR        Only process data whose address is <= ADDR\n      --prefix-addresses         Print complete address alongside disassembly\n      --[no-]show-raw-insn       Display hex alongside symbolic disassembly\n      --insn-width=WIDTH         Display WIDTH bytes on a single line for -d\n      --adjust-vma=OFFSET        Add OFFSET to all displayed section addresses\n      --special-syms             Include special symbols in symbol dumps\n      --inlines                  Print all inlines for source line (with -l)\n      --prefix=PREFIX            Add PREFIX to absolute paths for -S\n      --prefix-strip=LEVEL       Strip initial directory names for -S\n"\n                               ,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,\n                               "  -b, --target=BFDNAME           Specify the target object format as BFDNAME\n  -m, --architecture=MACHINE     Specify the target architecture as MACHINE\n  -j, --section=NAME             Only display information for section NAME\n  -M, --disassembler-options=OPT Pass text OPT on to the disassembler\n  -EB --endian=big               Assume big endian format when disassembling\n  -EL --endian=little            Assume little endian format when disassembling\n      --file-start-context       Include context from start of file (with -S)\n  -I, --include=DIR              Add DIR to search list for source files\n  -l, --line-numbers             Include line numbers and filenames in output\n  -F, --file-offsets             Include file offsets when displaying information\n  -C, --demangle[=STYLE]         Decode mangled/processed symbol names\n                                  The STYLE, if specified, can be `auto\', `gnu\',\n                                  `lucid\', `arm\', `hp\', `edg\', `gnu-v3\', `java\'\n                                  or `gnat\'\n  -w, --wide                     Format output for more than 80 columns\n  -z, --disassemble-zeroes       Do not skip blocks of zeroes when disassembling\n      --start-address=ADDR       Only process data whose address is >= ADDR\n      --stop-address=ADDR        Only process data whose address is <= ADDR\n      --prefix-addresses         Print complete address alongside disassembly\n      --[no-]show-raw-insn       Display hex alongside symbolic disassembly\n      --insn-width=WIDTH         Display WIDTH bytes on a single line for -d\n      --adjust-vma=OFFSET        Add OFFSET to all displayed section addresses\n      --special-syms             Include special symbols in symbol dumps\n      --inlines                  Print all inlines for source line (with -l)\n      --prefix=PREFIX            Add PREFIX to absolute paths for -S\n      --prefix-strip=LEVEL       Strip initial directory names for -S\n"\n                               ,5)" identifier (argument_list "(0,\n                               "  -b, --target=BFDNAME           Specify the target object format as BFDNAME\n  -m, --architecture=MACHINE     Specify the target architecture as MACHINE\n  -j, --section=NAME             Only display information for section NAME\n  -M, --disassembler-options=OPT Pass text OPT on to the disassembler\n  -EB --endian=big               Assume big endian format when disassembling\n  -EL --endian=little            Assume little endian format when disassembling\n      --file-start-context       Include context from start of file (with -S)\n  -I, --include=DIR              Add DIR to search list for source files\n  -l, --line-numbers             Include line numbers and filenames in output\n  -F, --file-offsets             Include file offsets when displaying information\n  -C, --demangle[=STYLE]         Decode mangled/processed symbol names\n                                  The STYLE, if specified, can be `auto\', `gnu\',\n                                  `lucid\', `arm\', `hp\', `edg\', `gnu-v3\', `java\'\n                                  or `gnat\'\n  -w, --wide                     Format output for more than 80 columns\n  -z, --disassemble-zeroes       Do not skip blocks of zeroes when disassembling\n      --start-address=ADDR       Only process data whose address is >= ADDR\n      --stop-address=ADDR        Only process data whose address is <= ADDR\n      --prefix-addresses         Print complete address alongside disassembly\n      --[no-]show-raw-insn       Display hex alongside symbolic disassembly\n      --insn-width=WIDTH         Display WIDTH bytes on a single line for -d\n      --adjust-vma=OFFSET        Add OFFSET to all displayed section addresses\n      --special-syms             Include special symbols in symbol dumps\n      --inlines                  Print all inlines for source line (with -l)\n      --prefix=PREFIX            Add PREFIX to absolute paths for -S\n      --prefix-strip=LEVEL       Strip initial directory names for -S\n"\n                               ,5)" ( number_literal , (string_literal ""  -b, --target=BFDNAME           Specify the target object format as BFDNAME\n  -m, --architecture=MACHINE     Specify the target architecture as MACHINE\n  -j, --section=NAME             Only display information for section NAME\n  -M, --disassembler-options=OPT Pass text OPT on to the disassembler\n  -EB --endian=big               Assume big endian format when disassembling\n  -EL --endian=little            Assume little endian format when disassembling\n      --file-start-context       Include context from start of file (with -S)\n  -I, --include=DIR              Add DIR to search list for source files\n  -l, --line-numbers             Include line numbers and filenames in output\n  -F, --file-offsets             Include file offsets when displaying information\n  -C, --demangle[=STYLE]         Decode mangled/processed symbol names\n                                  The STYLE, if specified, can be `auto\', `gnu\',\n                                  `lucid\', `arm\', `hp\', `edg\', `gnu-v3\', `java\'\n                                  or `gnat\'\n  -w, --wide                     Format output for more than 80 columns\n  -z, --disassemble-zeroes       Do not skip blocks of zeroes when disassembling\n      --start-address=ADDR       Only process data whose address is >= ADDR\n      --stop-address=ADDR        Only process data whose address is <= ADDR\n      --prefix-addresses         Print complete address alongside disassembly\n      --[no-]show-raw-insn       Display hex alongside symbolic disassembly\n      --insn-width=WIDTH         Display WIDTH bytes on a single line for -d\n      --adjust-vma=OFFSET        Add OFFSET to all displayed section addresses\n      --special-syms             Include special symbols in symbol dumps\n      --inlines                  Print all inlines for source line (with -l)\n      --prefix=PREFIX            Add PREFIX to absolute paths for -S\n      --prefix-strip=LEVEL       Strip initial directory names for -S\n"" " 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 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 string_content escape_sequence string_content escape_sequence escape_sequence 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 string_content escape_sequence string_content escape_sequence string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "fprintf(param_1,pcVar1);" (call_expression "fprintf(param_1,pcVar1)" identifier (argument_list "(param_1,pcVar1)" ( identifier , identifier ))) ;) (expression_statement "pcVar1 = (char *)dcgettext(0,\n                               "      --dwarf-depth=N        Do not display DIEs at depth N or greater\n      --dwarf-start=N        Display DIEs starting with N, at the same depth\n                             or deeper\n      --dwarf-check          Make additional dwarf internal consistency checks.      \n\n"\n                               ,5);" (assignment_expression "pcVar1 = (char *)dcgettext(0,\n                               "      --dwarf-depth=N        Do not display DIEs at depth N or greater\n      --dwarf-start=N        Display DIEs starting with N, at the same depth\n                             or deeper\n      --dwarf-check          Make additional dwarf internal consistency checks.      \n\n"\n                               ,5)" identifier = (cast_expression "(char *)dcgettext(0,\n                               "      --dwarf-depth=N        Do not display DIEs at depth N or greater\n      --dwarf-start=N        Display DIEs starting with N, at the same depth\n                             or deeper\n      --dwarf-check          Make additional dwarf internal consistency checks.      \n\n"\n                               ,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,\n                               "      --dwarf-depth=N        Do not display DIEs at depth N or greater\n      --dwarf-start=N        Display DIEs starting with N, at the same depth\n                             or deeper\n      --dwarf-check          Make additional dwarf internal consistency checks.      \n\n"\n                               ,5)" identifier (argument_list "(0,\n                               "      --dwarf-depth=N        Do not display DIEs at depth N or greater\n      --dwarf-start=N        Display DIEs starting with N, at the same depth\n                             or deeper\n      --dwarf-check          Make additional dwarf internal consistency checks.      \n\n"\n                               ,5)" ( number_literal , (string_literal ""      --dwarf-depth=N        Do not display DIEs at depth N or greater\n      --dwarf-start=N        Display DIEs starting with N, at the same depth\n                             or deeper\n      --dwarf-check          Make additional dwarf internal consistency checks.      \n\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence escape_sequence ") , number_literal ))))) ;) (expression_statement "fprintf(param_1,pcVar1);" (call_expression "fprintf(param_1,pcVar1)" identifier (argument_list "(param_1,pcVar1)" ( identifier , identifier ))) ;) (expression_statement "FUN_000452c0(DAT_00073ae8,param_1);" (call_expression "FUN_000452c0(DAT_00073ae8,param_1)" identifier (argument_list "(DAT_00073ae8,param_1)" ( identifier , identifier ))) ;) (expression_statement "FUN_00045380(DAT_00073ae8,param_1);" (call_expression "FUN_00045380(DAT_00073ae8,param_1)" identifier (argument_list "(DAT_00073ae8,param_1)" ( identifier , identifier ))) ;) (expression_statement "uVar2 = disassembler_usage(param_1);" (assignment_expression "uVar2 = disassembler_usage(param_1)" identifier = (call_expression "disassembler_usage(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (if_statement "if (param_2 == 0) {\n      pcVar1 = (char *)dcgettext(0,"Report bugs to %s.\n",5,uVar2);\n      fprintf(param_1,pcVar1,"<http:\n    }\n  }\n                    \n  exit(param_2);\n}" if (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) (compound_statement "{\n      pcVar1 = (char *)dcgettext(0,"Report bugs to %s.\n",5,uVar2);\n      fprintf(param_1,pcVar1,"<http:\n    }\n  }\n                    \n  exit(param_2);\n}" { (expression_statement "pcVar1 = (char *)dcgettext(0,"Report bugs to %s.\n",5,uVar2);" (assignment_expression "pcVar1 = (char *)dcgettext(0,"Report bugs to %s.\n",5,uVar2)" identifier = (cast_expression "(char *)dcgettext(0,"Report bugs to %s.\n",5,uVar2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"Report bugs to %s.\n",5,uVar2)" identifier (argument_list "(0,"Report bugs to %s.\n",5,uVar2)" ( number_literal , (string_literal ""Report bugs to %s.\n"" " string_content escape_sequence ") , number_literal , identifier ))))) ;) (expression_statement "fprintf(param_1,pcVar1,"<http:\n    }\n  }\n                    \n  exit(param_2);" (call_expression "fprintf(param_1,pcVar1,"<http:\n    }\n  }\n                    \n  exit(param_2)" identifier (argument_list "(param_1,pcVar1,"<http:\n    }\n  }\n                    \n  exit(param_2)" ( identifier , identifier , (ERROR ""<http:\n    }\n  }" " string_content } }) (call_expression "exit(param_2)" identifier (argument_list "(param_2)" ( identifier ))) ))) ;) }))))
(translation_unit (ERROR TYPE (ERROR IDENT) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) ))) { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = 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 , 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 = (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 = (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 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 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 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 ))) ;) if (parenthesized_expression ( (binary_expression IDENT != LIT) )) { (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 , IDENT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , 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 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 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 escape_sequence 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 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 = (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 escape_sequence ") , LIT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (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 , IDENT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (ERROR " string_content } }) (call_expression IDENT (argument_list ( IDENT ))) ))) ;) }))))
(ERROR "void __regparm3 FUN_00014c60(FILE *param_1,int param_2)\n\n{\n  char *pcVar1;\n  undefined4 uVar2;\n  undefined4 extraout_EDX;\n  \n  uVar2 = DAT_00073ae8;\n  pcVar1 = (char *)dcgettext(0,"Usage: %s <option(s)> <file(s)>\n",5);\n  fprintf(param_1,pcVar1,uVar2);\n  pcVar1 = (char *)dcgettext(0," Display information from object <file(s)>.\n",5);\n  fprintf(param_1,pcVar1);\n  pcVar1 = (char *)dcgettext(0," At least one of the following switches must be given:\n",5);\n  fprintf(param_1,pcVar1);\n  pcVar1 = (char *)dcgettext(0,\n                             "  -a, --archive-headers    Display archive header information\n  -f, --file-headers       Display the contents of the overall file header\n  -p, --private-headers    Display object format specific file header contents\n  -P, --private=OPT,OPT... Display object format specific contents\n  -h, --[section-]headers  Display the contents of the section headers\n  -x, --all-headers        Display the contents of all headers\n  -d, --disassemble        Display assembler contents of executable sections\n  -D, --disassemble-all    Display assembler contents of all sections\n  -S, --source             Intermix source code with disassembly\n  -s, --full-contents      Display the full contents of all sections requested\n  -g, --debugging          Display debug information in object file\n  -e, --debugging-tags     Display debug information using ctags style\n  -G, --stabs              Display (in raw form) any STABS info in the file\n  -W[lLiaprmfFsoRtUuTgAckK] or\n  --dwarf[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,\n          =frames-interp,=str,=loc,=Ranges,=pubtypes,\n          =gdb_index,=trace_info,=trace_abbrev,=trace_aranges,\n          =addr,=cu_index,=links,=follow-links]\n                           Display DWARF info in the file\n  -t, --syms               Display the contents of the symbol table(s)\n  -T, --dynamic-syms       Display the contents of the dynamic symbol table\n  -r, --reloc              Display the relocation entries in the file\n  -R, --dynamic-reloc      Display the dynamic relocation entries in the file\n  @<file>                  Read options from <file>\n  -v, --version            Display this program\'s version number\n  -i, --info               List object formats and architectures supported\n  -H, --help               Display this information\n"\n                             ,5);\n  fprintf(param_1,pcVar1);\n  if (param_2 != 2) {\n    pcVar1 = (char *)dcgettext(0,"\n The following switches are optional:\n",5,extraout_EDX);\n    fprintf(param_1,pcVar1);\n    pcVar1 = (char *)dcgettext(0,\n                               "  -b, --target=BFDNAME           Specify the target object format as BFDNAME\n  -m, --architecture=MACHINE     Specify the target architecture as MACHINE\n  -j, --section=NAME             Only display information for section NAME\n  -M, --disassembler-options=OPT Pass text OPT on to the disassembler\n  -EB --endian=big               Assume big endian format when disassembling\n  -EL --endian=little            Assume little endian format when disassembling\n      --file-start-context       Include context from start of file (with -S)\n  -I, --include=DIR              Add DIR to search list for source files\n  -l, --line-numbers             Include line numbers and filenames in output\n  -F, --file-offsets             Include file offsets when displaying information\n  -C, --demangle[=STYLE]         Decode mangled/processed symbol names\n                                  The STYLE, if specified, can be `auto\', `gnu\',\n                                  `lucid\', `arm\', `hp\', `edg\', `gnu-v3\', `java\'\n                                  or `gnat\'\n  -w, --wide                     Format output for more than 80 columns\n  -z, --disassemble-zeroes       Do not skip blocks of zeroes when disassembling\n      --start-address=ADDR       Only process data whose address is >= ADDR\n      --stop-address=ADDR        Only process data whose address is <= ADDR\n      --prefix-addresses         Print complete address alongside disassembly\n      --[no-]show-raw-insn       Display hex alongside symbolic disassembly\n      --insn-width=WIDTH         Display WIDTH bytes on a single line for -d\n      --adjust-vma=OFFSET        Add OFFSET to all displayed section addresses\n      --special-syms             Include special symbols in symbol dumps\n      --inlines                  Print all inlines for source line (with -l)\n      --prefix=PREFIX            Add PREFIX to absolute paths for -S\n      --prefix-strip=LEVEL       Strip initial directory names for -S\n"\n                               ,5);\n    fprintf(param_1,pcVar1);\n    pcVar1 = (char *)dcgettext(0,\n                               "      --dwarf-depth=N        Do not display DIEs at depth N or greater\n      --dwarf-start=N        Display DIEs starting with N, at the same depth\n                             or deeper\n      --dwarf-check          Make additional dwarf internal consistency checks.      \n\n"\n                               ,5);\n    fprintf(param_1,pcVar1);\n    FUN_000452c0(DAT_00073ae8,param_1);\n    FUN_00045380(DAT_00073ae8,param_1);\n    uVar2 = disassembler_usage(param_1);\n    if (param_2 == 0) {\n      pcVar1 = (char *)dcgettext(0,"Report bugs to %s.\n",5,uVar2);\n      fprintf(param_1,pcVar1,"<http:\n    }\n  }\n                    \n  exit(param_2);\n}" (primitive_type "void") (ERROR "__regparm3" (identifier "__regparm3")) (function_declarator "FUN_00014c60(FILE *param_1,int param_2)" (identifier "FUN_00014c60") (parameter_list "(FILE *param_1,int param_2)" (( "(") (parameter_declaration "FILE *param_1" (type_identifier "FILE") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) () ")"))) ({ "{") (declaration "char *pcVar1;" (primitive_type "char") (pointer_declarator "*pcVar1" (* "*") (identifier "pcVar1")) (; ";")) (declaration "undefined4 uVar2;" (type_identifier "undefined4") (identifier "uVar2") (; ";")) (declaration "undefined4 extraout_EDX;" (type_identifier "undefined4") (identifier "extraout_EDX") (; ";")) (expression_statement "uVar2 = DAT_00073ae8;" (assignment_expression "uVar2 = DAT_00073ae8" (identifier "uVar2") (= "=") (identifier "DAT_00073ae8")) (; ";")) (expression_statement "pcVar1 = (char *)dcgettext(0,"Usage: %s <option(s)> <file(s)>\n",5);" (assignment_expression "pcVar1 = (char *)dcgettext(0,"Usage: %s <option(s)> <file(s)>\n",5)" (identifier "pcVar1") (= "=") (cast_expression "(char *)dcgettext(0,"Usage: %s <option(s)> <file(s)>\n",5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext(0,"Usage: %s <option(s)> <file(s)>\n",5)" (identifier "dcgettext") (argument_list "(0,"Usage: %s <option(s)> <file(s)>\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""Usage: %s <option(s)> <file(s)>\n"" (" """) (string_content "Usage: %s <option(s)> <file(s)>") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")"))))) (; ";")) (expression_statement "fprintf(param_1,pcVar1,uVar2);" (call_expression "fprintf(param_1,pcVar1,uVar2)" (identifier "fprintf") (argument_list "(param_1,pcVar1,uVar2)" (( "(") (identifier "param_1") (, ",") (identifier "pcVar1") (, ",") (identifier "uVar2") () ")"))) (; ";")) (expression_statement "pcVar1 = (char *)dcgettext(0," Display information from object <file(s)>.\n",5);" (assignment_expression "pcVar1 = (char *)dcgettext(0," Display information from object <file(s)>.\n",5)" (identifier "pcVar1") (= "=") (cast_expression "(char *)dcgettext(0," Display information from object <file(s)>.\n",5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext(0," Display information from object <file(s)>.\n",5)" (identifier "dcgettext") (argument_list "(0," Display information from object <file(s)>.\n",5)" (( "(") (number_literal "0") (, ",") (string_literal "" Display information from object <file(s)>.\n"" (" """) (string_content " Display information from object <file(s)>.") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")"))))) (; ";")) (expression_statement "fprintf(param_1,pcVar1);" (call_expression "fprintf(param_1,pcVar1)" (identifier "fprintf") (argument_list "(param_1,pcVar1)" (( "(") (identifier "param_1") (, ",") (identifier "pcVar1") () ")"))) (; ";")) (expression_statement "pcVar1 = (char *)dcgettext(0," At least one of the following switches must be given:\n",5);" (assignment_expression "pcVar1 = (char *)dcgettext(0," At least one of the following switches must be given:\n",5)" (identifier "pcVar1") (= "=") (cast_expression "(char *)dcgettext(0," At least one of the following switches must be given:\n",5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext(0," At least one of the following switches must be given:\n",5)" (identifier "dcgettext") (argument_list "(0," At least one of the following switches must be given:\n",5)" (( "(") (number_literal "0") (, ",") (string_literal "" At least one of the following switches must be given:\n"" (" """) (string_content " At least one of the following switches must be given:") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")"))))) (; ";")) (expression_statement "fprintf(param_1,pcVar1);" (call_expression "fprintf(param_1,pcVar1)" (identifier "fprintf") (argument_list "(param_1,pcVar1)" (( "(") (identifier "param_1") (, ",") (identifier "pcVar1") () ")"))) (; ";")) (expression_statement "pcVar1 = (char *)dcgettext(0,\n                             "  -a, --archive-headers    Display archive header information\n  -f, --file-headers       Display the contents of the overall file header\n  -p, --private-headers    Display object format specific file header contents\n  -P, --private=OPT,OPT... Display object format specific contents\n  -h, --[section-]headers  Display the contents of the section headers\n  -x, --all-headers        Display the contents of all headers\n  -d, --disassemble        Display assembler contents of executable sections\n  -D, --disassemble-all    Display assembler contents of all sections\n  -S, --source             Intermix source code with disassembly\n  -s, --full-contents      Display the full contents of all sections requested\n  -g, --debugging          Display debug information in object file\n  -e, --debugging-tags     Display debug information using ctags style\n  -G, --stabs              Display (in raw form) any STABS info in the file\n  -W[lLiaprmfFsoRtUuTgAckK] or\n  --dwarf[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,\n          =frames-interp,=str,=loc,=Ranges,=pubtypes,\n          =gdb_index,=trace_info,=trace_abbrev,=trace_aranges,\n          =addr,=cu_index,=links,=follow-links]\n                           Display DWARF info in the file\n  -t, --syms               Display the contents of the symbol table(s)\n  -T, --dynamic-syms       Display the contents of the dynamic symbol table\n  -r, --reloc              Display the relocation entries in the file\n  -R, --dynamic-reloc      Display the dynamic relocation entries in the file\n  @<file>                  Read options from <file>\n  -v, --version            Display this program\'s version number\n  -i, --info               List object formats and architectures supported\n  -H, --help               Display this information\n"\n                             ,5);" (assignment_expression "pcVar1 = (char *)dcgettext(0,\n                             "  -a, --archive-headers    Display archive header information\n  -f, --file-headers       Display the contents of the overall file header\n  -p, --private-headers    Display object format specific file header contents\n  -P, --private=OPT,OPT... Display object format specific contents\n  -h, --[section-]headers  Display the contents of the section headers\n  -x, --all-headers        Display the contents of all headers\n  -d, --disassemble        Display assembler contents of executable sections\n  -D, --disassemble-all    Display assembler contents of all sections\n  -S, --source             Intermix source code with disassembly\n  -s, --full-contents      Display the full contents of all sections requested\n  -g, --debugging          Display debug information in object file\n  -e, --debugging-tags     Display debug information using ctags style\n  -G, --stabs              Display (in raw form) any STABS info in the file\n  -W[lLiaprmfFsoRtUuTgAckK] or\n  --dwarf[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,\n          =frames-interp,=str,=loc,=Ranges,=pubtypes,\n          =gdb_index,=trace_info,=trace_abbrev,=trace_aranges,\n          =addr,=cu_index,=links,=follow-links]\n                           Display DWARF info in the file\n  -t, --syms               Display the contents of the symbol table(s)\n  -T, --dynamic-syms       Display the contents of the dynamic symbol table\n  -r, --reloc              Display the relocation entries in the file\n  -R, --dynamic-reloc      Display the dynamic relocation entries in the file\n  @<file>                  Read options from <file>\n  -v, --version            Display this program\'s version number\n  -i, --info               List object formats and architectures supported\n  -H, --help               Display this information\n"\n                             ,5)" (identifier "pcVar1") (= "=") (cast_expression "(char *)dcgettext(0,\n                             "  -a, --archive-headers    Display archive header information\n  -f, --file-headers       Display the contents of the overall file header\n  -p, --private-headers    Display object format specific file header contents\n  -P, --private=OPT,OPT... Display object format specific contents\n  -h, --[section-]headers  Display the contents of the section headers\n  -x, --all-headers        Display the contents of all headers\n  -d, --disassemble        Display assembler contents of executable sections\n  -D, --disassemble-all    Display assembler contents of all sections\n  -S, --source             Intermix source code with disassembly\n  -s, --full-contents      Display the full contents of all sections requested\n  -g, --debugging          Display debug information in object file\n  -e, --debugging-tags     Display debug information using ctags style\n  -G, --stabs              Display (in raw form) any STABS info in the file\n  -W[lLiaprmfFsoRtUuTgAckK] or\n  --dwarf[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,\n          =frames-interp,=str,=loc,=Ranges,=pubtypes,\n          =gdb_index,=trace_info,=trace_abbrev,=trace_aranges,\n          =addr,=cu_index,=links,=follow-links]\n                           Display DWARF info in the file\n  -t, --syms               Display the contents of the symbol table(s)\n  -T, --dynamic-syms       Display the contents of the dynamic symbol table\n  -r, --reloc              Display the relocation entries in the file\n  -R, --dynamic-reloc      Display the dynamic relocation entries in the file\n  @<file>                  Read options from <file>\n  -v, --version            Display this program\'s version number\n  -i, --info               List object formats and architectures supported\n  -H, --help               Display this information\n"\n                             ,5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext(0,\n                             "  -a, --archive-headers    Display archive header information\n  -f, --file-headers       Display the contents of the overall file header\n  -p, --private-headers    Display object format specific file header contents\n  -P, --private=OPT,OPT... Display object format specific contents\n  -h, --[section-]headers  Display the contents of the section headers\n  -x, --all-headers        Display the contents of all headers\n  -d, --disassemble        Display assembler contents of executable sections\n  -D, --disassemble-all    Display assembler contents of all sections\n  -S, --source             Intermix source code with disassembly\n  -s, --full-contents      Display the full contents of all sections requested\n  -g, --debugging          Display debug information in object file\n  -e, --debugging-tags     Display debug information using ctags style\n  -G, --stabs              Display (in raw form) any STABS info in the file\n  -W[lLiaprmfFsoRtUuTgAckK] or\n  --dwarf[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,\n          =frames-interp,=str,=loc,=Ranges,=pubtypes,\n          =gdb_index,=trace_info,=trace_abbrev,=trace_aranges,\n          =addr,=cu_index,=links,=follow-links]\n                           Display DWARF info in the file\n  -t, --syms               Display the contents of the symbol table(s)\n  -T, --dynamic-syms       Display the contents of the dynamic symbol table\n  -r, --reloc              Display the relocation entries in the file\n  -R, --dynamic-reloc      Display the dynamic relocation entries in the file\n  @<file>                  Read options from <file>\n  -v, --version            Display this program\'s version number\n  -i, --info               List object formats and architectures supported\n  -H, --help               Display this information\n"\n                             ,5)" (identifier "dcgettext") (argument_list "(0,\n                             "  -a, --archive-headers    Display archive header information\n  -f, --file-headers       Display the contents of the overall file header\n  -p, --private-headers    Display object format specific file header contents\n  -P, --private=OPT,OPT... Display object format specific contents\n  -h, --[section-]headers  Display the contents of the section headers\n  -x, --all-headers        Display the contents of all headers\n  -d, --disassemble        Display assembler contents of executable sections\n  -D, --disassemble-all    Display assembler contents of all sections\n  -S, --source             Intermix source code with disassembly\n  -s, --full-contents      Display the full contents of all sections requested\n  -g, --debugging          Display debug information in object file\n  -e, --debugging-tags     Display debug information using ctags style\n  -G, --stabs              Display (in raw form) any STABS info in the file\n  -W[lLiaprmfFsoRtUuTgAckK] or\n  --dwarf[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,\n          =frames-interp,=str,=loc,=Ranges,=pubtypes,\n          =gdb_index,=trace_info,=trace_abbrev,=trace_aranges,\n          =addr,=cu_index,=links,=follow-links]\n                           Display DWARF info in the file\n  -t, --syms               Display the contents of the symbol table(s)\n  -T, --dynamic-syms       Display the contents of the dynamic symbol table\n  -r, --reloc              Display the relocation entries in the file\n  -R, --dynamic-reloc      Display the dynamic relocation entries in the file\n  @<file>                  Read options from <file>\n  -v, --version            Display this program\'s version number\n  -i, --info               List object formats and architectures supported\n  -H, --help               Display this information\n"\n                             ,5)" (( "(") (number_literal "0") (, ",") (string_literal ""  -a, --archive-headers    Display archive header information\n  -f, --file-headers       Display the contents of the overall file header\n  -p, --private-headers    Display object format specific file header contents\n  -P, --private=OPT,OPT... Display object format specific contents\n  -h, --[section-]headers  Display the contents of the section headers\n  -x, --all-headers        Display the contents of all headers\n  -d, --disassemble        Display assembler contents of executable sections\n  -D, --disassemble-all    Display assembler contents of all sections\n  -S, --source             Intermix source code with disassembly\n  -s, --full-contents      Display the full contents of all sections requested\n  -g, --debugging          Display debug information in object file\n  -e, --debugging-tags     Display debug information using ctags style\n  -G, --stabs              Display (in raw form) any STABS info in the file\n  -W[lLiaprmfFsoRtUuTgAckK] or\n  --dwarf[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,\n          =frames-interp,=str,=loc,=Ranges,=pubtypes,\n          =gdb_index,=trace_info,=trace_abbrev,=trace_aranges,\n          =addr,=cu_index,=links,=follow-links]\n                           Display DWARF info in the file\n  -t, --syms               Display the contents of the symbol table(s)\n  -T, --dynamic-syms       Display the contents of the dynamic symbol table\n  -r, --reloc              Display the relocation entries in the file\n  -R, --dynamic-reloc      Display the dynamic relocation entries in the file\n  @<file>                  Read options from <file>\n  -v, --version            Display this program\'s version number\n  -i, --info               List object formats and architectures supported\n  -H, --help               Display this information\n"" (" """) (string_content "  -a, --archive-headers    Display archive header information") (escape_sequence "\n") (string_content "  -f, --file-headers       Display the contents of the overall file header") (escape_sequence "\n") (string_content "  -p, --private-headers    Display object format specific file header contents") (escape_sequence "\n") (string_content "  -P, --private=OPT,OPT... Display object format specific contents") (escape_sequence "\n") (string_content "  -h, --[section-]headers  Display the contents of the section headers") (escape_sequence "\n") (string_content "  -x, --all-headers        Display the contents of all headers") (escape_sequence "\n") (string_content "  -d, --disassemble        Display assembler contents of executable sections") (escape_sequence "\n") (string_content "  -D, --disassemble-all    Display assembler contents of all sections") (escape_sequence "\n") (string_content "  -S, --source             Intermix source code with disassembly") (escape_sequence "\n") (string_content "  -s, --full-contents      Display the full contents of all sections requested") (escape_sequence "\n") (string_content "  -g, --debugging          Display debug information in object file") (escape_sequence "\n") (string_content "  -e, --debugging-tags     Display debug information using ctags style") (escape_sequence "\n") (string_content "  -G, --stabs              Display (in raw form) any STABS info in the file") (escape_sequence "\n") (string_content "  -W[lLiaprmfFsoRtUuTgAckK] or") (escape_sequence "\n") (string_content "  --dwarf[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,") (escape_sequence "\n") (string_content "          =frames-interp,=str,=loc,=Ranges,=pubtypes,") (escape_sequence "\n") (string_content "          =gdb_index,=trace_info,=trace_abbrev,=trace_aranges,") (escape_sequence "\n") (string_content "          =addr,=cu_index,=links,=follow-links]") (escape_sequence "\n") (string_content "                           Display DWARF info in the file") (escape_sequence "\n") (string_content "  -t, --syms               Display the contents of the symbol table(s)") (escape_sequence "\n") (string_content "  -T, --dynamic-syms       Display the contents of the dynamic symbol table") (escape_sequence "\n") (string_content "  -r, --reloc              Display the relocation entries in the file") (escape_sequence "\n") (string_content "  -R, --dynamic-reloc      Display the dynamic relocation entries in the file") (escape_sequence "\n") (string_content "  @<file>                  Read options from <file>") (escape_sequence "\n") (string_content "  -v, --version            Display this program") (escape_sequence "\'") (string_content "s version number") (escape_sequence "\n") (string_content "  -i, --info               List object formats and architectures supported") (escape_sequence "\n") (string_content "  -H, --help               Display this information") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")"))))) (; ";")) (expression_statement "fprintf(param_1,pcVar1);" (call_expression "fprintf(param_1,pcVar1)" (identifier "fprintf") (argument_list "(param_1,pcVar1)" (( "(") (identifier "param_1") (, ",") (identifier "pcVar1") () ")"))) (; ";")) (if "if") (parenthesized_expression "(param_2 != 2)" (( "(") (binary_expression "param_2 != 2" (identifier "param_2") (!= "!=") (number_literal "2")) () ")")) ({ "{") (expression_statement "pcVar1 = (char *)dcgettext(0,"\n The following switches are optional:\n",5,extraout_EDX);" (assignment_expression "pcVar1 = (char *)dcgettext(0,"\n The following switches are optional:\n",5,extraout_EDX)" (identifier "pcVar1") (= "=") (cast_expression "(char *)dcgettext(0,"\n The following switches are optional:\n",5,extraout_EDX)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext(0,"\n The following switches are optional:\n",5,extraout_EDX)" (identifier "dcgettext") (argument_list "(0,"\n The following switches are optional:\n",5,extraout_EDX)" (( "(") (number_literal "0") (, ",") (string_literal ""\n The following switches are optional:\n"" (" """) (escape_sequence "\n") (string_content " The following switches are optional:") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") (, ",") (identifier "extraout_EDX") () ")"))))) (; ";")) (expression_statement "fprintf(param_1,pcVar1);" (call_expression "fprintf(param_1,pcVar1)" (identifier "fprintf") (argument_list "(param_1,pcVar1)" (( "(") (identifier "param_1") (, ",") (identifier "pcVar1") () ")"))) (; ";")) (expression_statement "pcVar1 = (char *)dcgettext(0,\n                               "  -b, --target=BFDNAME           Specify the target object format as BFDNAME\n  -m, --architecture=MACHINE     Specify the target architecture as MACHINE\n  -j, --section=NAME             Only display information for section NAME\n  -M, --disassembler-options=OPT Pass text OPT on to the disassembler\n  -EB --endian=big               Assume big endian format when disassembling\n  -EL --endian=little            Assume little endian format when disassembling\n      --file-start-context       Include context from start of file (with -S)\n  -I, --include=DIR              Add DIR to search list for source files\n  -l, --line-numbers             Include line numbers and filenames in output\n  -F, --file-offsets             Include file offsets when displaying information\n  -C, --demangle[=STYLE]         Decode mangled/processed symbol names\n                                  The STYLE, if specified, can be `auto\', `gnu\',\n                                  `lucid\', `arm\', `hp\', `edg\', `gnu-v3\', `java\'\n                                  or `gnat\'\n  -w, --wide                     Format output for more than 80 columns\n  -z, --disassemble-zeroes       Do not skip blocks of zeroes when disassembling\n      --start-address=ADDR       Only process data whose address is >= ADDR\n      --stop-address=ADDR        Only process data whose address is <= ADDR\n      --prefix-addresses         Print complete address alongside disassembly\n      --[no-]show-raw-insn       Display hex alongside symbolic disassembly\n      --insn-width=WIDTH         Display WIDTH bytes on a single line for -d\n      --adjust-vma=OFFSET        Add OFFSET to all displayed section addresses\n      --special-syms             Include special symbols in symbol dumps\n      --inlines                  Print all inlines for source line (with -l)\n      --prefix=PREFIX            Add PREFIX to absolute paths for -S\n      --prefix-strip=LEVEL       Strip initial directory names for -S\n"\n                               ,5);" (assignment_expression "pcVar1 = (char *)dcgettext(0,\n                               "  -b, --target=BFDNAME           Specify the target object format as BFDNAME\n  -m, --architecture=MACHINE     Specify the target architecture as MACHINE\n  -j, --section=NAME             Only display information for section NAME\n  -M, --disassembler-options=OPT Pass text OPT on to the disassembler\n  -EB --endian=big               Assume big endian format when disassembling\n  -EL --endian=little            Assume little endian format when disassembling\n      --file-start-context       Include context from start of file (with -S)\n  -I, --include=DIR              Add DIR to search list for source files\n  -l, --line-numbers             Include line numbers and filenames in output\n  -F, --file-offsets             Include file offsets when displaying information\n  -C, --demangle[=STYLE]         Decode mangled/processed symbol names\n                                  The STYLE, if specified, can be `auto\', `gnu\',\n                                  `lucid\', `arm\', `hp\', `edg\', `gnu-v3\', `java\'\n                                  or `gnat\'\n  -w, --wide                     Format output for more than 80 columns\n  -z, --disassemble-zeroes       Do not skip blocks of zeroes when disassembling\n      --start-address=ADDR       Only process data whose address is >= ADDR\n      --stop-address=ADDR        Only process data whose address is <= ADDR\n      --prefix-addresses         Print complete address alongside disassembly\n      --[no-]show-raw-insn       Display hex alongside symbolic disassembly\n      --insn-width=WIDTH         Display WIDTH bytes on a single line for -d\n      --adjust-vma=OFFSET        Add OFFSET to all displayed section addresses\n      --special-syms             Include special symbols in symbol dumps\n      --inlines                  Print all inlines for source line (with -l)\n      --prefix=PREFIX            Add PREFIX to absolute paths for -S\n      --prefix-strip=LEVEL       Strip initial directory names for -S\n"\n                               ,5)" (identifier "pcVar1") (= "=") (cast_expression "(char *)dcgettext(0,\n                               "  -b, --target=BFDNAME           Specify the target object format as BFDNAME\n  -m, --architecture=MACHINE     Specify the target architecture as MACHINE\n  -j, --section=NAME             Only display information for section NAME\n  -M, --disassembler-options=OPT Pass text OPT on to the disassembler\n  -EB --endian=big               Assume big endian format when disassembling\n  -EL --endian=little            Assume little endian format when disassembling\n      --file-start-context       Include context from start of file (with -S)\n  -I, --include=DIR              Add DIR to search list for source files\n  -l, --line-numbers             Include line numbers and filenames in output\n  -F, --file-offsets             Include file offsets when displaying information\n  -C, --demangle[=STYLE]         Decode mangled/processed symbol names\n                                  The STYLE, if specified, can be `auto\', `gnu\',\n                                  `lucid\', `arm\', `hp\', `edg\', `gnu-v3\', `java\'\n                                  or `gnat\'\n  -w, --wide                     Format output for more than 80 columns\n  -z, --disassemble-zeroes       Do not skip blocks of zeroes when disassembling\n      --start-address=ADDR       Only process data whose address is >= ADDR\n      --stop-address=ADDR        Only process data whose address is <= ADDR\n      --prefix-addresses         Print complete address alongside disassembly\n      --[no-]show-raw-insn       Display hex alongside symbolic disassembly\n      --insn-width=WIDTH         Display WIDTH bytes on a single line for -d\n      --adjust-vma=OFFSET        Add OFFSET to all displayed section addresses\n      --special-syms             Include special symbols in symbol dumps\n      --inlines                  Print all inlines for source line (with -l)\n      --prefix=PREFIX            Add PREFIX to absolute paths for -S\n      --prefix-strip=LEVEL       Strip initial directory names for -S\n"\n                               ,5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext(0,\n                               "  -b, --target=BFDNAME           Specify the target object format as BFDNAME\n  -m, --architecture=MACHINE     Specify the target architecture as MACHINE\n  -j, --section=NAME             Only display information for section NAME\n  -M, --disassembler-options=OPT Pass text OPT on to the disassembler\n  -EB --endian=big               Assume big endian format when disassembling\n  -EL --endian=little            Assume little endian format when disassembling\n      --file-start-context       Include context from start of file (with -S)\n  -I, --include=DIR              Add DIR to search list for source files\n  -l, --line-numbers             Include line numbers and filenames in output\n  -F, --file-offsets             Include file offsets when displaying information\n  -C, --demangle[=STYLE]         Decode mangled/processed symbol names\n                                  The STYLE, if specified, can be `auto\', `gnu\',\n                                  `lucid\', `arm\', `hp\', `edg\', `gnu-v3\', `java\'\n                                  or `gnat\'\n  -w, --wide                     Format output for more than 80 columns\n  -z, --disassemble-zeroes       Do not skip blocks of zeroes when disassembling\n      --start-address=ADDR       Only process data whose address is >= ADDR\n      --stop-address=ADDR        Only process data whose address is <= ADDR\n      --prefix-addresses         Print complete address alongside disassembly\n      --[no-]show-raw-insn       Display hex alongside symbolic disassembly\n      --insn-width=WIDTH         Display WIDTH bytes on a single line for -d\n      --adjust-vma=OFFSET        Add OFFSET to all displayed section addresses\n      --special-syms             Include special symbols in symbol dumps\n      --inlines                  Print all inlines for source line (with -l)\n      --prefix=PREFIX            Add PREFIX to absolute paths for -S\n      --prefix-strip=LEVEL       Strip initial directory names for -S\n"\n                               ,5)" (identifier "dcgettext") (argument_list "(0,\n                               "  -b, --target=BFDNAME           Specify the target object format as BFDNAME\n  -m, --architecture=MACHINE     Specify the target architecture as MACHINE\n  -j, --section=NAME             Only display information for section NAME\n  -M, --disassembler-options=OPT Pass text OPT on to the disassembler\n  -EB --endian=big               Assume big endian format when disassembling\n  -EL --endian=little            Assume little endian format when disassembling\n      --file-start-context       Include context from start of file (with -S)\n  -I, --include=DIR              Add DIR to search list for source files\n  -l, --line-numbers             Include line numbers and filenames in output\n  -F, --file-offsets             Include file offsets when displaying information\n  -C, --demangle[=STYLE]         Decode mangled/processed symbol names\n                                  The STYLE, if specified, can be `auto\', `gnu\',\n                                  `lucid\', `arm\', `hp\', `edg\', `gnu-v3\', `java\'\n                                  or `gnat\'\n  -w, --wide                     Format output for more than 80 columns\n  -z, --disassemble-zeroes       Do not skip blocks of zeroes when disassembling\n      --start-address=ADDR       Only process data whose address is >= ADDR\n      --stop-address=ADDR        Only process data whose address is <= ADDR\n      --prefix-addresses         Print complete address alongside disassembly\n      --[no-]show-raw-insn       Display hex alongside symbolic disassembly\n      --insn-width=WIDTH         Display WIDTH bytes on a single line for -d\n      --adjust-vma=OFFSET        Add OFFSET to all displayed section addresses\n      --special-syms             Include special symbols in symbol dumps\n      --inlines                  Print all inlines for source line (with -l)\n      --prefix=PREFIX            Add PREFIX to absolute paths for -S\n      --prefix-strip=LEVEL       Strip initial directory names for -S\n"\n                               ,5)" (( "(") (number_literal "0") (, ",") (string_literal ""  -b, --target=BFDNAME           Specify the target object format as BFDNAME\n  -m, --architecture=MACHINE     Specify the target architecture as MACHINE\n  -j, --section=NAME             Only display information for section NAME\n  -M, --disassembler-options=OPT Pass text OPT on to the disassembler\n  -EB --endian=big               Assume big endian format when disassembling\n  -EL --endian=little            Assume little endian format when disassembling\n      --file-start-context       Include context from start of file (with -S)\n  -I, --include=DIR              Add DIR to search list for source files\n  -l, --line-numbers             Include line numbers and filenames in output\n  -F, --file-offsets             Include file offsets when displaying information\n  -C, --demangle[=STYLE]         Decode mangled/processed symbol names\n                                  The STYLE, if specified, can be `auto\', `gnu\',\n                                  `lucid\', `arm\', `hp\', `edg\', `gnu-v3\', `java\'\n                                  or `gnat\'\n  -w, --wide                     Format output for more than 80 columns\n  -z, --disassemble-zeroes       Do not skip blocks of zeroes when disassembling\n      --start-address=ADDR       Only process data whose address is >= ADDR\n      --stop-address=ADDR        Only process data whose address is <= ADDR\n      --prefix-addresses         Print complete address alongside disassembly\n      --[no-]show-raw-insn       Display hex alongside symbolic disassembly\n      --insn-width=WIDTH         Display WIDTH bytes on a single line for -d\n      --adjust-vma=OFFSET        Add OFFSET to all displayed section addresses\n      --special-syms             Include special symbols in symbol dumps\n      --inlines                  Print all inlines for source line (with -l)\n      --prefix=PREFIX            Add PREFIX to absolute paths for -S\n      --prefix-strip=LEVEL       Strip initial directory names for -S\n"" (" """) (string_content "  -b, --target=BFDNAME           Specify the target object format as BFDNAME") (escape_sequence "\n") (string_content "  -m, --architecture=MACHINE     Specify the target architecture as MACHINE") (escape_sequence "\n") (string_content "  -j, --section=NAME             Only display information for section NAME") (escape_sequence "\n") (string_content "  -M, --disassembler-options=OPT Pass text OPT on to the disassembler") (escape_sequence "\n") (string_content "  -EB --endian=big               Assume big endian format when disassembling") (escape_sequence "\n") (string_content "  -EL --endian=little            Assume little endian format when disassembling") (escape_sequence "\n") (string_content "      --file-start-context       Include context from start of file (with -S)") (escape_sequence "\n") (string_content "  -I, --include=DIR              Add DIR to search list for source files") (escape_sequence "\n") (string_content "  -l, --line-numbers             Include line numbers and filenames in output") (escape_sequence "\n") (string_content "  -F, --file-offsets             Include file offsets when displaying information") (escape_sequence "\n") (string_content "  -C, --demangle[=STYLE]         Decode mangled/processed symbol names") (escape_sequence "\n") (string_content "                                  The STYLE, if specified, can be `auto") (escape_sequence "\'") (string_content ", `gnu") (escape_sequence "\'") (string_content ",") (escape_sequence "\n") (string_content "                                  `lucid") (escape_sequence "\'") (string_content ", `arm") (escape_sequence "\'") (string_content ", `hp") (escape_sequence "\'") (string_content ", `edg") (escape_sequence "\'") (string_content ", `gnu-v3") (escape_sequence "\'") (string_content ", `java") (escape_sequence "\'") (escape_sequence "\n") (string_content "                                  or `gnat") (escape_sequence "\'") (escape_sequence "\n") (string_content "  -w, --wide                     Format output for more than 80 columns") (escape_sequence "\n") (string_content "  -z, --disassemble-zeroes       Do not skip blocks of zeroes when disassembling") (escape_sequence "\n") (string_content "      --start-address=ADDR       Only process data whose address is >= ADDR") (escape_sequence "\n") (string_content "      --stop-address=ADDR        Only process data whose address is <= ADDR") (escape_sequence "\n") (string_content "      --prefix-addresses         Print complete address alongside disassembly") (escape_sequence "\n") (string_content "      --[no-]show-raw-insn       Display hex alongside symbolic disassembly") (escape_sequence "\n") (string_content "      --insn-width=WIDTH         Display WIDTH bytes on a single line for -d") (escape_sequence "\n") (string_content "      --adjust-vma=OFFSET        Add OFFSET to all displayed section addresses") (escape_sequence "\n") (string_content "      --special-syms             Include special symbols in symbol dumps") (escape_sequence "\n") (string_content "      --inlines                  Print all inlines for source line (with -l)") (escape_sequence "\n") (string_content "      --prefix=PREFIX            Add PREFIX to absolute paths for -S") (escape_sequence "\n") (string_content "      --prefix-strip=LEVEL       Strip initial directory names for -S") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")"))))) (; ";")) (expression_statement "fprintf(param_1,pcVar1);" (call_expression "fprintf(param_1,pcVar1)" (identifier "fprintf") (argument_list "(param_1,pcVar1)" (( "(") (identifier "param_1") (, ",") (identifier "pcVar1") () ")"))) (; ";")) (expression_statement "pcVar1 = (char *)dcgettext(0,\n                               "      --dwarf-depth=N        Do not display DIEs at depth N or greater\n      --dwarf-start=N        Display DIEs starting with N, at the same depth\n                             or deeper\n      --dwarf-check          Make additional dwarf internal consistency checks.      \n\n"\n                               ,5);" (assignment_expression "pcVar1 = (char *)dcgettext(0,\n                               "      --dwarf-depth=N        Do not display DIEs at depth N or greater\n      --dwarf-start=N        Display DIEs starting with N, at the same depth\n                             or deeper\n      --dwarf-check          Make additional dwarf internal consistency checks.      \n\n"\n                               ,5)" (identifier "pcVar1") (= "=") (cast_expression "(char *)dcgettext(0,\n                               "      --dwarf-depth=N        Do not display DIEs at depth N or greater\n      --dwarf-start=N        Display DIEs starting with N, at the same depth\n                             or deeper\n      --dwarf-check          Make additional dwarf internal consistency checks.      \n\n"\n                               ,5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext(0,\n                               "      --dwarf-depth=N        Do not display DIEs at depth N or greater\n      --dwarf-start=N        Display DIEs starting with N, at the same depth\n                             or deeper\n      --dwarf-check          Make additional dwarf internal consistency checks.      \n\n"\n                               ,5)" (identifier "dcgettext") (argument_list "(0,\n                               "      --dwarf-depth=N        Do not display DIEs at depth N or greater\n      --dwarf-start=N        Display DIEs starting with N, at the same depth\n                             or deeper\n      --dwarf-check          Make additional dwarf internal consistency checks.      \n\n"\n                               ,5)" (( "(") (number_literal "0") (, ",") (string_literal ""      --dwarf-depth=N        Do not display DIEs at depth N or greater\n      --dwarf-start=N        Display DIEs starting with N, at the same depth\n                             or deeper\n      --dwarf-check          Make additional dwarf internal consistency checks.      \n\n"" (" """) (string_content "      --dwarf-depth=N        Do not display DIEs at depth N or greater") (escape_sequence "\n") (string_content "      --dwarf-start=N        Display DIEs starting with N, at the same depth") (escape_sequence "\n") (string_content "                             or deeper") (escape_sequence "\n") (string_content "      --dwarf-check          Make additional dwarf internal consistency checks.      ") (escape_sequence "\n") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")"))))) (; ";")) (expression_statement "fprintf(param_1,pcVar1);" (call_expression "fprintf(param_1,pcVar1)" (identifier "fprintf") (argument_list "(param_1,pcVar1)" (( "(") (identifier "param_1") (, ",") (identifier "pcVar1") () ")"))) (; ";")) (expression_statement "FUN_000452c0(DAT_00073ae8,param_1);" (call_expression "FUN_000452c0(DAT_00073ae8,param_1)" (identifier "FUN_000452c0") (argument_list "(DAT_00073ae8,param_1)" (( "(") (identifier "DAT_00073ae8") (, ",") (identifier "param_1") () ")"))) (; ";")) (expression_statement "FUN_00045380(DAT_00073ae8,param_1);" (call_expression "FUN_00045380(DAT_00073ae8,param_1)" (identifier "FUN_00045380") (argument_list "(DAT_00073ae8,param_1)" (( "(") (identifier "DAT_00073ae8") (, ",") (identifier "param_1") () ")"))) (; ";")) (expression_statement "uVar2 = disassembler_usage(param_1);" (assignment_expression "uVar2 = disassembler_usage(param_1)" (identifier "uVar2") (= "=") (call_expression "disassembler_usage(param_1)" (identifier "disassembler_usage") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (if_statement "if (param_2 == 0) {\n      pcVar1 = (char *)dcgettext(0,"Report bugs to %s.\n",5,uVar2);\n      fprintf(param_1,pcVar1,"<http:\n    }\n  }\n                    \n  exit(param_2);\n}" (if "if") (parenthesized_expression "(param_2 == 0)" (( "(") (binary_expression "param_2 == 0" (identifier "param_2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      pcVar1 = (char *)dcgettext(0,"Report bugs to %s.\n",5,uVar2);\n      fprintf(param_1,pcVar1,"<http:\n    }\n  }\n                    \n  exit(param_2);\n}" ({ "{") (expression_statement "pcVar1 = (char *)dcgettext(0,"Report bugs to %s.\n",5,uVar2);" (assignment_expression "pcVar1 = (char *)dcgettext(0,"Report bugs to %s.\n",5,uVar2)" (identifier "pcVar1") (= "=") (cast_expression "(char *)dcgettext(0,"Report bugs to %s.\n",5,uVar2)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext(0,"Report bugs to %s.\n",5,uVar2)" (identifier "dcgettext") (argument_list "(0,"Report bugs to %s.\n",5,uVar2)" (( "(") (number_literal "0") (, ",") (string_literal ""Report bugs to %s.\n"" (" """) (string_content "Report bugs to %s.") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") (, ",") (identifier "uVar2") () ")"))))) (; ";")) (expression_statement "fprintf(param_1,pcVar1,"<http:\n    }\n  }\n                    \n  exit(param_2);" (call_expression "fprintf(param_1,pcVar1,"<http:\n    }\n  }\n                    \n  exit(param_2)" (identifier "fprintf") (argument_list "(param_1,pcVar1,"<http:\n    }\n  }\n                    \n  exit(param_2)" (( "(") (identifier "param_1") (, ",") (identifier "pcVar1") (, ",") (ERROR ""<http:\n    }\n  }" (" """) (string_content "<http:") (} "}") (} "}")) (call_expression "exit(param_2)" (identifier "exit") (argument_list "(param_2)" (( "(") (identifier "param_2") () ")"))) () ""))) (; ";")) (} "}"))))

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

void __regparm3 function_1(type_1 *stream,int var_3)

{
  char *__format;
  char *pcVar1;
  type_2 uVar2;
  type_2 extraout_EDX;
  
  pcVar1 = program_name;
  __format = (char *)var_1(0,"Usage: %s <option(s)> <file(s)>\n",5);
  var_2((type_1 *)stream,__format,pcVar1);
  pcVar1 = (char *)var_1(0," Display information from object <file(s)>.\n",5);
  var_2((type_1 *)stream,pcVar1);
  pcVar1 = (char *)var_1(0," At least one of the following switches must be given:\n",5);
  var_2((type_1 *)stream,pcVar1);
  pcVar1 = (char *)var_1(0,
                             "  -a, --archive-headers    Display archive header information\n  -f, --file-headers       Display the contents of the overall file header\n  -p, --private-headers    Display object format specific file header contents\n  -P, --private=OPT,OPT... Display object format specific contents\n  -h, --[section-]headers  Display the contents of the section headers\n  -x, --all-headers        Display the contents of all headers\n  -d, --disassemble        Display assembler contents of executable sections\n  -D, --disassemble-all    Display assembler contents of all sections\n  -S, --source             Intermix source code with disassembly\n  -s, --full-contents      Display the full contents of all sections requested\n  -g, --debugging          Display debug information in object file\n  -e, --debugging-tags     Display debug information using ctags style\n  -G, --stabs              Display (in raw form) any STABS info in the file\n  -W[lLiaprmfFsoRtUuTgAckK] or\n  --dwarf[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,\n          =frames-interp,=str,=loc,=Ranges,=pubtypes,\n          =gdb_index,=trace_info,=trace_abbrev,=trace_aranges,\n          =addr,=cu_index,=links,=follow-links]\n                           Display DWARF info in the file\n  -t, --syms               Display the contents of the symbol table(s)\n  -T, --dynamic-syms       Display the contents of the dynamic symbol table\n  -r, --reloc              Display the relocation entries in the file\n  -R, --dynamic-reloc      Display the dynamic relocation entries in the file\n  @<file>                  Read options from <file>\n  -v, --version            Display this program\'s version number\n  -i, --info               List object formats and architectures supported\n  -H, --help               Display this information\n"
                             ,5);
  var_2((type_1 *)stream,pcVar1);
  if (var_3 != 2) {
    pcVar1 = (char *)var_1(0,"\n The following switches are optional:\n",5,extraout_EDX);
    var_2((type_1 *)stream,pcVar1);
    pcVar1 = (char *)var_1(0,
                               "  -b, --target=BFDNAME           Specify the target object format as BFDNAME\n  -m, --architecture=MACHINE     Specify the target architecture as MACHINE\n  -j, --section=NAME             Only display information for section NAME\n  -M, --disassembler-options=OPT Pass text OPT on to the disassembler\n  -EB --endian=big               Assume big endian format when disassembling\n  -EL --endian=little            Assume little endian format when disassembling\n      --file-start-context       Include context from start of file (with -S)\n  -I, --include=DIR              Add DIR to search list for source files\n  -l, --line-numbers             Include line numbers and filenames in output\n  -F, --file-offsets             Include file offsets when displaying information\n  -C, --demangle[=STYLE]         Decode mangled/processed symbol names\n                                  The STYLE, if specified, can be `auto\', `gnu\',\n                                  `lucid\', `arm\', `hp\', `edg\', `gnu-v3\', `java\'\n                                  or `gnat\'\n  -w, --wide                     Format output for more than 80 columns\n  -z, --disassemble-zeroes       Do not skip blocks of zeroes when disassembling\n      --start-address=ADDR       Only process data whose address is >= ADDR\n      --stop-address=ADDR        Only process data whose address is <= ADDR\n      --prefix-addresses         Print complete address alongside disassembly\n      --[no-]show-raw-insn       Display hex alongside symbolic disassembly\n      --insn-width=WIDTH         Display WIDTH bytes on a single line for -d\n      --adjust-vma=OFFSET        Add OFFSET to all displayed section addresses\n      --special-syms             Include special symbols in symbol dumps\n      --inlines                  Print all inlines for source line (with -l)\n      --prefix=PREFIX            Add PREFIX to absolute paths for -S\n      --prefix-strip=LEVEL       Strip initial directory names for -S\n"
                               ,5);
    var_2((type_1 *)stream,pcVar1);
    pcVar1 = (char *)var_1(0,
                               "      --dwarf-depth=N        Do not display DIEs at depth N or greater\n      --dwarf-start=N        Display DIEs starting with N, at the same depth\n                             or deeper\n      --dwarf-check          Make additional dwarf internal consistency checks.      \n\n"
                               ,5);
    var_2((type_1 *)stream,pcVar1);
    var_4(program_name,stream);
    var_5(program_name,stream);
    uVar2 = var_6(stream);
    if (var_3 == 0) {
      pcVar1 = (char *)var_1(0,"Report bugs to %s.\n",5,uVar2);
      var_2((type_1 *)stream,pcVar1,"<http://www.sourceware.org/bugzilla/>");
    }
  }
                    /* WARNING: Subroutine does not return */
  var_7(var_3);
}


(translation_unit (ERROR type: (primitive_type) (ERROR (identifier)) (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (primitive_type) declarator: (identifier)))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (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) (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: (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: (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) (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) (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) (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)))) (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) (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) (identifier)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (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) (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) (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) (escape_sequence) (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) (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: (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) (escape_sequence)) (number_literal)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (number_literal) (string_literal (string_content) (escape_sequence)) (number_literal) (identifier)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (ERROR (string_content)) (call_expression function: (identifier) arguments: (argument_list (identifier))) (MISSING ")"))))))))

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

void __regparm3 MASKED(FILE *param_1,int param_2)

{
  char *pcVar1;
  undefined4 uVar2;
  undefined4 extraout_EDX;
  
  uVar2 = DAT_00073ae8;
  pcVar1 = (char *)dcgettext(0,"Usage: %s <option(s)> <file(s)>\n",5);
  fprintf(param_1,pcVar1,uVar2);
  pcVar1 = (char *)dcgettext(0," Display information from object <file(s)>.\n",5);
  fprintf(param_1,pcVar1);
  pcVar1 = (char *)dcgettext(0," At least one of the following switches must be given:\n",5);
  fprintf(param_1,pcVar1);
  pcVar1 = (char *)dcgettext(0,
                             "  -a, --archive-headers    Display archive header information\n  -f, --file-headers       Display the contents of the overall file header\n  -p, --private-headers    Display object format specific file header contents\n  -P, --private=OPT,OPT... Display object format specific contents\n  -h, --[section-]headers  Display the contents of the section headers\n  -x, --all-headers        Display the contents of all headers\n  -d, --disassemble        Display assembler contents of executable sections\n  -D, --disassemble-all    Display assembler contents of all sections\n  -S, --source             Intermix source code with disassembly\n  -s, --full-contents      Display the full contents of all sections requested\n  -g, --debugging          Display debug information in object file\n  -e, --debugging-tags     Display debug information using ctags style\n  -G, --stabs              Display (in raw form) any STABS info in the file\n  -W[lLiaprmfFsoRtUuTgAckK] or\n  --dwarf[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,\n          =frames-interp,=str,=loc,=Ranges,=pubtypes,\n          =gdb_index,=trace_info,=trace_abbrev,=trace_aranges,\n          =addr,=cu_index,=links,=follow-links]\n                           Display DWARF info in the file\n  -t, --syms               Display the contents of the symbol table(s)\n  -T, --dynamic-syms       Display the contents of the dynamic symbol table\n  -r, --reloc              Display the relocation entries in the file\n  -R, --dynamic-reloc      Display the dynamic relocation entries in the file\n  @<file>                  Read options from <file>\n  -v, --version            Display this program\'s version number\n  -i, --info               List object formats and architectures supported\n  -H, --help               Display this information\n"
                             ,5);
  fprintf(param_1,pcVar1);
  if (param_2 != 2) {
    pcVar1 = (char *)dcgettext(0,"\n The following switches are optional:\n",5,extraout_EDX);
    fprintf(param_1,pcVar1);
    pcVar1 = (char *)dcgettext(0,
                               "  -b, --target=BFDNAME           Specify the target object format as BFDNAME\n  -m, --architecture=MACHINE     Specify the target architecture as MACHINE\n  -j, --section=NAME             Only display information for section NAME\n  -M, --disassembler-options=OPT Pass text OPT on to the disassembler\n  -EB --endian=big               Assume big endian format when disassembling\n  -EL --endian=little            Assume little endian format when disassembling\n      --file-start-context       Include context from start of file (with -S)\n  -I, --include=DIR              Add DIR to search list for source files\n  -l, --line-numbers             Include line numbers and filenames in output\n  -F, --file-offsets             Include file offsets when displaying information\n  -C, --demangle[=STYLE]         Decode mangled/processed symbol names\n                                  The STYLE, if specified, can be `auto\', `gnu\',\n                                  `lucid\', `arm\', `hp\', `edg\', `gnu-v3\', `java\'\n                                  or `gnat\'\n  -w, --wide                     Format output for more than 80 columns\n  -z, --disassemble-zeroes       Do not skip blocks of zeroes when disassembling\n      --start-address=ADDR       Only process data whose address is >= ADDR\n      --stop-address=ADDR        Only process data whose address is <= ADDR\n      --prefix-addresses         Print complete address alongside disassembly\n      --[no-]show-raw-insn       Display hex alongside symbolic disassembly\n      --insn-width=WIDTH         Display WIDTH bytes on a single line for -d\n      --adjust-vma=OFFSET        Add OFFSET to all displayed section addresses\n      --special-syms             Include special symbols in symbol dumps\n      --inlines                  Print all inlines for source line (with -l)\n      --prefix=PREFIX            Add PREFIX to absolute paths for -S\n      --prefix-strip=LEVEL       Strip initial directory names for -S\n"
                               ,5);
    fprintf(param_1,pcVar1);
    pcVar1 = (char *)dcgettext(0,
                               "      --dwarf-depth=N        Do not display DIEs at depth N or greater\n      --dwarf-start=N        Display DIEs starting with N, at the same depth\n                             or deeper\n      --dwarf-check          Make additional dwarf internal consistency checks.      \n\n"
                               ,5);
    fprintf(param_1,pcVar1);
    FUN_000452c0(DAT_00073ae8,param_1);
    FUN_00045380(DAT_00073ae8,param_1);
    uVar2 = disassembler_usage(param_1);
    if (param_2 == 0) {
      pcVar1 = (char *)dcgettext(0,"Report bugs to %s.\n",5,uVar2);
      fprintf(param_1,pcVar1,"<http://www.sourceware.org/bugzilla/>");
    }
  }
                    /* WARNING: Subroutine does not return */
  exit(param_2);
}

